summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h
diff options
context:
space:
mode:
Diffstat (limited to 'external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h')
-rw-r--r--external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h195
1 files changed, 0 insertions, 195 deletions
diff --git a/external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h b/external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h
deleted file mode 100644
index cd419db2..00000000
--- a/external/clBLAS/src/library/blas/gens/legacy/blas_kgen_legacy.h
+++ /dev/null
@@ -1,195 +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.
- * ************************************************************************/
-
-
-#ifndef BLAS_KGEN_LEGACY_H_
-#define BLAS_KGEN_LEGACY_H_
-
-#include "../blas_kgen.h"
-
-/**
- * @internal
- * @brief Block multiplier flags
- * @ingroup BLAS_MAJOR_GENS
- */
-typedef enum BlkmulFlags {
- BLKMUL_NO_FLAGS, /**< No flags */
- BLKMUL_TRANSPOSE = 0x01, /**< Transpose result */
- BLKMUL_IMAGE_PACKED = 0x02, /**< Data in image are packed */
- /**
- * Accumulate multiplication results to a
- * private location provided by caller
- */
- BLKMUL_OUTPUT_PRIVATE = 0x04,
- BLKMUL_SKEW_ROW = 0x08, /**< Use skew over block rows */
- BLKMUL_SKEW_COLUMN = 0x10, /**< Use skew over block columns */
- BLKMUL_INLINE = 0x20, /**< Generate an inline version */
- BLKMUL_TRANSPOSED_B = 0x40, /**< Block B is transposed */
- /** Don't use "&" operation in cyclic address evaluation, use always "%" */
- BLKMUL_AVOID_AND = 0x80
-} BlkMulFlags;
-
-/**
- * @internal
- * @brief Block multiplier core
- * @ingroup BLAS_MAJOR_GENS
- */
-typedef enum BlkmulCore {
- /** Use separate multiplication and summation implemented by hand */
- BLKMUL_SEPARATE_MULADD,
- /** Use the 'dot' function */
- BLKMUL_DOT,
- /** Use the 'mad' function */
- BLKMUL_MAD
-} BlkmulCore;
-
-/**
- * @internal
- * @brief Argument names for the inline version of the block
- * multiplier
- * @ingroup BLAS_MAJOR_GENS
- */
-typedef struct BlkmulArgNames {
- const char *coordA; /**< Matrix A start coordinates */
- const char *coordB; /**< Matrix B start coordinates */
- const char *skewRow; /**< Skew over rows */
- const char *skewCol; /**< Skew over columns */
- const char *k; /**< Counter name in the loop over K */
- const char *vectBoundK; /**< Bound in the loop over K */
-} BlkmulArgNames;
-
-/**
- * @internal
- * @brief Options for matrix block multiplication
- * generator
- * @ingroup BLAS_MAJOR_GENS
- */
-typedef struct BlkMulOpts {
- /** OpenCL memory object type storing matrix (whole or its blocks) A */
- CLMemType aMobj;
- /** OpenCL memory object type storing matrix (whole or its blocks) A */
- CLMemType bMobj;
- BlkMulFlags flags; /**< Specific flags */
- BlkmulCore core; /**< Multiply and add core */
- /** List of argument names for the inline version */
- BlkmulArgNames argNames;
-} BlkMulOpts;
-
-void
-declareBlasEnums(struct KgenContext *ctx);
-
-/**
- * @internal
- * @brief Matrix block multiplication generator
- *
- * @param[out] ctx Generator context
- * @param[in] subdims Subproblem dimensions; the first level reflects
- * dimensions of the large blocks processed with the
- * whole work group, and the second level
- * reflects sizes of immediately multiplied small
- * blocks within the single work item
- * @param[in] dtype Data type the multiplying function will be
- * generated for
- * @param[in] opts Block multiplication options
- *
- * Generated functions have the following definitions: \n
- *\n
- * For the buffer based version:
- * @code
- * void
- * funcName(
- * <type> alpha,
- * LPtr A,
- * LPtr B,
- * LPtr C,
- * [,int2 skewRow]
- * [,int skewCol]);
- * @endcode
- *
- * Function naming rule:
- * (type prefix)gemmBlock[Transp]_<width>_<height>
- *\n
- * It's assumed A, B and C point to start of data to be
- * processed during this step.
- *\n
- * For the image based version: \n
- * @code
- * void
- * funcName(
- * <type> alpha,
- * __read_only image2d_t A,
- * int2 coordA,
- * __read_only image2d_t B,
- * int2 coordB,
- * LPtr C,
- * [,int2 skewRow],
- * [,int skewCol]);
- * @endcode
- *
- * Where coordA and coordB mean start image coordinates to fetch data from.
- *\n
- * For the image based version a mixed variant is possible when
- * either A or B blocks are passed through the local memory.
- *\n
- * The 'skewRow' and 'skewCol' are optional arguments if the
- * 'BLKMUL_SKEW_ROW' and "BLKMUL_SKEW_COLUMN" flag is specified
- * respectively. 'y' field of the row skew is for the block A, and the
- * 'x' one is for the block B.
- *\n
- * Output result can be put directly into a private location provided by the
- * caller instead of the local one. It is achieved with 'BLKMUL_OUTPUT_PRIVATE'
- * flag using.
- *\n
- * Pointer to this location should have the following types depending on the type
- * of processed data: \n
- * - float4 - for float
- * - float2 - for complex float
- * - double2 - for double and complex double
- *\n\n
- * Alpha is not taken in this case.
- *\n
- * The multiplier can be generated as well in the form of the dedicated
- * function as in the inline form inserted to a kernel. \n In case of inline
- * version the block multiplier becomes in fact the tile multiplier. In this
- * case the caller should provide iteration over K.
- *
- * @return 0 on success, -EOVERFLOW on source buffer overflowing
- */
-
-/**
- * @internal
- * @defgroup BLAS_MAJOR_GENS BLAS specific generators
- * @ingroup MAJOR_GENS
- */
-/*@{*/
-int
-blkMulGen(
- struct KgenContext *ctx,
- const SubproblemDim subdims[2],
- DataType dtype,
- const BlkMulOpts *opts);
-
-int
-updateResultGenOld(
- struct KgenContext *ctx,
- const BlasGenSettings *gset,
- UpdateResultOp op,
- UpdateResultFlags flags,
- const UpresVarNames *uvarNames);
-
-/*@}*/
-
-#endif /* BLAS_KGEN_LEGACY_H_ */