27 #include <kernel_extra.h>
32 typedef int solver_id_t;
46 typedef enum SolverFlags {
52 SF_TOP_INPUT_SQUARE_BLOCKS = 0x04
55 typedef enum PatternPerformance{
56 PPERF_NOT_SUPPORTED = -1,
63 typedef enum CheckCalcPGran{
93 const SubproblemDim *subdims,
94 const PGranularity *pgran,
105 typedef struct SolverOps {
107 SolverKgen genKernel;
111 void (*assignKargs)(KernelArg*,
const void* args,
const void *extra);
125 int (*getPatternPerf)(
134 DecompositionAxis (*innerDecompositionAxis)(
const void *args);
139 const SubproblemDim *subdims,
140 const PGranularity *pgran,
149 const SubproblemDim *subdims,
155 SolverFlags (*getFlags)(void);
161 void (*fixupArgs)(
void *args, SubproblemDim* pSubDims,
void *extra);
164 int ( *getDefaultDecomp)(
166 SubproblemDim *subdims,
167 unsigned int subdimsNum,
175 bool (*checkCalcDecomp)(
177 SubproblemDim *subdims,
178 unsigned int subdimsNum,
186 void (*setBuildOptions)(
char *buildOptsStr,
const void *args);
191 KernelExtraFlags (*selectVectorization)(
void *kargs,
unsigned int vlen);
enum clblasOrder_ clblasOrder