11 #include <starpu_opencl.h>
19 #include <OpenCL/opencl.h>
29 #include "skepu/matrix.h"
61 template <
typename GenerateFunc>
75 Generate(GenerateFunc* generateFunc);
83 void setConstant(U constant1) {m_generateFunc->setConstant(constant1);}
89 void setExecPlan(
ExecPlan& plan) {m_execPlan = plan;}
92 Environment<int>* m_environment;
93 GenerateFunc* m_generateFunc;
96 struct starpu_codelet *codelet;
98 #ifdef USE_STARPU_HISTORY_MODEL
99 starpu_perfmodel *generate_perf_model;
103 template <
typename T>
104 void operator()(
unsigned int numElements, Vector<T>& output,
int parts=1);
106 template <
typename T>
107 void operator()(
unsigned int numRows,
unsigned int numCols, Matrix<T>& output,
int parts=1);
110 template <
typename T>
111 static void cpu_func(
void *buffers[],
void *arg);
113 template <
typename T>
118 template <
typename T>
119 static void omp_func(
void *buffers[],
void *arg);
121 template <
typename T>
127 template <
typename T>
128 static void cuda_func(
void *buffers[],
void *arg);
130 template <
typename T>
136 template <
typename T>
137 static void opencl_func(
void *buffers[],
void *arg);
139 template <
typename T>
142 struct starpu_opencl_program opencl_program;
143 char kernelNameArray[1024];
145 void replaceText(std::string& text, std::string find, std::string replace);
149 std::string perfmodel_str;
Contains the definitions of CUDA specific functions for the Generate skeleton.
Generate(GenerateFunc *generateFunc)
Definition: generate.inl:21
static void cpu_func_mat(void *buffers[], void *arg)
Definition: generate_cpu.inl:53
Includes the macro files needed for the defined backends.
static void opencl_func_mat(void *buffers[], void *arg)
Definition: generate_cl.inl:182
static void cuda_func_mat(void *buffers[], void *arg)
Definition: generate_cu.inl:74
Contains the definitions of CPU specific functions for the Generate skeleton.
void finishAll()
Definition: environment.inl:119
void setConstant(U constant1)
Definition: generate.h:83
A class representing the Generate skeleton.
Definition: generate.h:62
static void cpu_func(void *buffers[], void *arg)
Definition: generate_cpu.inl:22
static void cuda_func(void *buffers[], void *arg)
Definition: generate_cu.inl:31
Contains a class declaration for the object that represents an OpenCL device.
static void omp_func_mat(void *buffers[], void *arg)
Definition: generate_omp.inl:62
Contains the definitions of non-backend specific member functions for the Generate skeleton...
void finishAll()
Definition: generate.h:88
static void omp_func(void *buffers[], void *arg)
Definition: generate_omp.inl:27
~Generate()
Definition: generate.inl:109
A class that describes an execution plan, not used very much in this case as decision is mostly left ...
Definition: exec_plan.h:75
static void opencl_func(void *buffers[], void *arg)
Definition: generate_cl.inl:106
Contains a class declaration for the Vector container.
Contains a class declaration for Environment class.
void replaceText(std::string &text, std::string find, std::string replace)
Definition: generate_cl.inl:28
void createOpenCLProgram()
Definition: generate_cl.inl:49
Contains a class that stores information about which back ends to use when executing.
Contains the definitions of OpenCL specific functions for the Generate skeleton.
Contains the definitions of OpenMP specific functions for the Generate skeleton.
void operator()(unsigned int numElements, Vector< T > &output, int parts=1)
Definition: generate.inl:132