summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/include/solver.h
diff options
context:
space:
mode:
Diffstat (limited to 'external/clBLAS/src/include/solver.h')
-rw-r--r--external/clBLAS/src/include/solver.h196
1 files changed, 0 insertions, 196 deletions
diff --git a/external/clBLAS/src/include/solver.h b/external/clBLAS/src/include/solver.h
deleted file mode 100644
index 411519ef..00000000
--- a/external/clBLAS/src/include/solver.h
+++ /dev/null
@@ -1,196 +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 SOLVER_H_
-#define SOLVER_H_
-
-#include <defbool.h>
-
-#include <cltypes.h>
-#include <kerngen.h>
-#include <clkern.h>
-#include <clBLAS.h>
-#include <kernel_extra.h>
-
-struct Kernel;
-
-// OpenCL solver ID
-typedef int solver_id_t;
-
-/**
- * @internal
- * @defgroup SOLVERIF Solver interface
- *
- * This interface binds the library frontend to the library backend
- */
-/*@{*/
-
-/**
- * @internal
- * @brief Solver flags
- */
-typedef enum SolverFlags {
- /** supports 1D work space */
- SF_WSPACE_1D = 0x01,
- /** supports 2D work space */
- SF_WSPACE_2D = 0x02,
- /** input data blocks at the top level must be square */
- SF_TOP_INPUT_SQUARE_BLOCKS = 0x04
-} SolverFlags;
-
-typedef enum PatternPerformance{
- PPERF_NOT_SUPPORTED = -1,
- PPERF_POOR = 0,
- PPERF_AVERAGE,
- PPERF_GOOD,
- PPERF_BEST
-} PatternPerformance;
-
-typedef enum CheckCalcPGran{
- PGRAN_CHECK = 0,
- PGRAN_CALC
-} CheckCalcPGran;
-
-/**
- * @internal
- * @brief type of function generating kernel source for an
- * OpenCL based solver
- *
- * @param[out] buf Pointer to a buffer to store a generated kenrel to
- * @param[in] buflen Length of the buffer
- * @param[in] subdims Subproblem dimensions to generate an optimal kernel
- * @param[in] pgran Data parallelism granularity
- * @param[in] extra Generator extra information depending on the
- * application fields
- *
- * If the pointer to the buffer is NULL, the function should just calculate
- * needed size of the buffer to fit the code in.
- *
- * @return size of the generated kernel source on success; negated error code
- * otherwise
- * - -ENOMEM: enough of memory to allocated internal structures
- * - -EOVERFLOW: generated source exceeds the buffer size
- * - -EINVAL: invalid argument is passed
- */
-typedef ssize_t
-(*SolverKgen)(
- char *buf,
- size_t buflen,
- const SubproblemDim *subdims,
- const PGranularity *pgran,
- void *extra);
-
-/**
- * @internal
- * @brief Solver operations
- *
- * The 'args' parameter for 'calcPrepWorkGroups',
- * and the second parameter for the 'assignKargs' methods plays the role of pointer
- * to a kernel arguments structure depending on the application field.
- */
-typedef struct SolverOps {
- /** Kernel generator */
- SolverKgen genKernel;
-
- /** Assign kernel arguments; the first argument is kernel argument batch
- * passed immediately to a kernel */
- void (*assignKargs)(KernelArg*, const void* args, const void *extra);
-
- /** Check if available LDS size is enough to fit all needed data at such
- * granulation; 'kernelArgs' - kernel arguments depending on the
- * application fields */
- bool (*isFitToLDS)(
- SubproblemDim *dims,
- DataType,
- cl_ulong ldsSize,
- const void *args);
-
- /** Get the pattern`s performance estimation for specified flags,
- * arguments and granulation.
- * Is used for selecting most suitable pattern current problem */
- int (*getPatternPerf)(
- unsigned int kflags,
- const void *args);
-
- /**
- * Inner decomposition axis matching to the fastest moving OpenCL
- * work dimension. Used only for those patterns which use 2 dimensional
- * decomposition
- */
- DecompositionAxis (*innerDecompositionAxis)(const void *args);
-
- /** Calculate number of needed global threads to execute a kernel */
- void (*calcThreads)(
- size_t threads[2],
- const SubproblemDim *subdims,
- const PGranularity *pgran,
- const void *args,
- const void *extra);
-
- /** Set number of lines of the same top level block stored into the image
- * together and the direction of blocks storing. A solver that uses images
- * and stores data to images by blocks must provide the method */
- void (*imgPackMode)(
- const void *extra,
- const SubproblemDim *subdims,
- int dataID,
- unsigned int *rate,
- clblasOrder *order);
-
- /** Get solver flags */
- SolverFlags (*getFlags)(void);
-
- /** Correct problem arguments anr extra kernel parameters
- * depending on solver specifics. Basically, a solver should not
- * change any arguments that come from the API level to avoid any
- * confusing points */
- void (*fixupArgs)(void *args, SubproblemDim* pSubDims, void *extra);
-
- /** Function, returning default decomposition for the pattern */
- int ( *getDefaultDecomp)(
- PGranularity *pgran,
- SubproblemDim *subdims,
- unsigned int subdimsNum,
- void *pArgs);
-
- /** Perform validation of decomposition.
- * If "check" flag set to true: validate specified decomposition and
- * check, if specified granulation is valid for it.
- * If "check" flag set to false: calculate granulation,
- * fitting the specified decomposition, if possible */
- bool (*checkCalcDecomp)(
- PGranularity *pgran,
- SubproblemDim *subdims,
- unsigned int subdimsNum,
- DataType dtype,
- int check);
-
-
- /*
- SetBuildOptions
- */
- void (*setBuildOptions)( char *buildOptsStr, const void *args);
-
- /*
- * selectVectorization
- */
- KernelExtraFlags (*selectVectorization)( void *kargs, unsigned int vlen);
-} SolverOps;
-
-/*@}*/
-
-#endif /* SOLVER_H_ */