diff options
Diffstat (limited to 'external/clBLAS/src/library/blas/generic/matrix_dims.c')
-rw-r--r-- | external/clBLAS/src/library/blas/generic/matrix_dims.c | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/external/clBLAS/src/library/blas/generic/matrix_dims.c b/external/clBLAS/src/library/blas/generic/matrix_dims.c deleted file mode 100644 index f340c032..00000000 --- a/external/clBLAS/src/library/blas/generic/matrix_dims.c +++ /dev/null @@ -1,186 +0,0 @@ -/* ************************************************************************ - * Copyright 2013 Advanced Micro Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ************************************************************************/ - - -#include <matrix_dims.h> - -static __inline bool -isRightSide(BlasFunctionID funcID, clblasSide side) -{ - return ((funcID == CLBLAS_TRMM || funcID == CLBLAS_TRSM) && - side == clblasRight); -} - -void VISIBILITY_HIDDEN -swapDimXY(SubproblemDim *dim) -{ - size_t tmp; - - tmp = dim->itemX; - dim->itemX = dim->itemY; - dim->itemY = tmp; - tmp = dim->x; - dim->x = dim->y; - dim->y = tmp; -} - -size_t VISIBILITY_HIDDEN -matrBlockPitch( - const SubproblemDim *dim, - MatrixRole mrole, - DataType dtype, - clblasSide side) -{ - size_t tsize = dtypeSize(dtype); - size_t nfloats = tsize / sizeof(cl_float); - size_t rowLen = 0; - - switch (mrole) { - case MATRIX_A: - case MATRIX_B: - rowLen = dim->bwidth; - break; - case MATRIX_C: - rowLen = (side == clblasLeft) ? dim->x : dim->y; - break; - default: - break; - } - - rowLen = fl4RowWidth(rowLen, tsize) * FLOAT4_VECLEN / nfloats; - - return rowLen; -} - -cl_ulong VISIBILITY_HIDDEN -matrBlockSize( - SubproblemDim *dim, - MatrixRole mrole, - DataType dtype, - clblasSide side) -{ - size_t height, pitch; - - pitch = matrBlockPitch(dim, mrole, dtype, side); - height = matrBlockHeight(dim, mrole, side); - - return (cl_ulong)height * pitch; -} - -size_t VISIBILITY_HIDDEN -matrBlockHeight( - SubproblemDim *dim, - MatrixRole mrole, - clblasSide side) -{ - size_t ret = 0; - - switch (mrole) { - case MATRIX_A: - ret = dim->y; - break; - case MATRIX_B: - ret = dim->x; - break; - case MATRIX_C: - ret = (side == clblasLeft) ? dim->y : dim->x; - break; - default: - break; - } - - return ret; -} - -void VISIBILITY_HIDDEN -kargsToProbDims( - SubproblemDim *probDim, - BlasFunctionID funcID, - const CLBlasKargs *kargs, - bool offset) -{ - - if (funcID == CLBLAS_SYMV) { - if (offset) { - probDim->y = kargs->offsetN; - probDim->x = 0; - probDim->bwidth = 0; - } - else { - probDim->y = kargs->N; - probDim->x = kargs->N; - probDim->bwidth = kargs->K; - } - } - else { - if (offset) { - probDim->y = kargs->offsetM; - probDim->x = kargs->offsetN; - } - else { - probDim->y = kargs->M; - probDim->x = kargs->N; - } - - if (isRightSide(funcID, kargs->side)) { - swapDimXY(probDim); - } - if (funcID == CLBLAS_GEMV) { - if (kargs->transA != clblasNoTrans) { - swapDimXY(probDim); - } - probDim->bwidth = (offset) ? 0 : probDim->x; - } - else { - probDim->bwidth = (offset) ? 0 : kargs->K; - } - } -} - -void VISIBILITY_HIDDEN -probDimsToKargs( - CLBlasKargs *kargs, - BlasFunctionID funcID, - SubproblemDim *probDim, - bool offset) -{ - size_t *m, *n; - SubproblemDim tmpDim; - - if (offset) { - m = &kargs->offsetM; - n = &kargs->offsetN; - } - else { - m = &kargs->M; - n = &kargs->N; - kargs->K = probDim->bwidth; - } - - tmpDim = *probDim; - - if (isRightSide(funcID, kargs->side)) { - swapDimXY(&tmpDim); - } - if (funcID == CLBLAS_GEMV) { - if (kargs->transA != clblasNoTrans) { - swapDimXY(&tmpDim); - } - } - *m = tmpDim.y; - *n = tmpDim.x; -} - |