|
static std::string | skepu::UnaryMapKernel_CL ("__kernel void UnaryMapKernel_KERNELNAME(__global TYPE* input, __global TYPE* output, size_t numElements, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < numElements)\n"" {\n"" output[i] = FUNCTIONNAME(input[i], const1);\n"" i += gridSize;\n"" }\n""}\n") |
|
static std::string | skepu::BinaryMapKernel_CL ("__kernel void BinaryMapKernel_KERNELNAME(__global TYPE* input1, __global TYPE* input2, __global TYPE* output, size_t n, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < n)\n"" {\n"" output[i] = FUNCTIONNAME(input1[i], input2[i], const1);\n"" i += gridSize;\n"" }\n""}\n") |
|
static std::string | skepu::TrinaryMapKernel_CL ("__kernel void TrinaryMapKernel_KERNELNAME(__global TYPE* input1, __global TYPE* input2, __global TYPE* input3, __global TYPE* output, size_t n, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < n)\n"" {\n"" output[i] = FUNCTIONNAME(input1[i], input2[i], input3[i], const1);\n"" i += gridSize;\n"" }\n""}\n") |
|
template<typename T , typename UnaryFunc > |
__global__ void | skepu::MapKernelUnary_CU (UnaryFunc mapFunc, T *input, T *output, size_t n) |
|
template<typename T , typename BinaryFunc > |
__global__ void | skepu::MapKernelBinary_CU (BinaryFunc mapFunc, T *input1, T *input2, T *output, size_t n) |
|
template<typename T , typename TrinaryFunc > |
__global__ void | skepu::MapKernelTrinary_CU (TrinaryFunc mapFunc, T *input1, T *input2, T *input3, T *output, size_t n) |
|
Definitions of CUDA and OpenCL kernels for the Map skeleton.
static std::string skepu::BinaryMapKernel_CL |
( |
"__kernel void BinaryMapKernel_KERNELNAME(__global TYPE* input1, __global TYPE* input2, __global TYPE* output, size_t n, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < n)\n"" {\n"" output[i] = FUNCTIONNAME(input1[i], input2[i], const1);\n"" i += gridSize;\n"" }\n""}\n" |
| ) |
|
|
static |
OpenCL Map kernel for binary user functions.
template<typename T , typename BinaryFunc >
__global__ void skepu::MapKernelBinary_CU |
( |
BinaryFunc |
mapFunc, |
|
|
T * |
input1, |
|
|
T * |
input2, |
|
|
T * |
output, |
|
|
size_t |
n |
|
) |
| |
template<typename T , typename TrinaryFunc >
__global__ void skepu::MapKernelTrinary_CU |
( |
TrinaryFunc |
mapFunc, |
|
|
T * |
input1, |
|
|
T * |
input2, |
|
|
T * |
input3, |
|
|
T * |
output, |
|
|
size_t |
n |
|
) |
| |
template<typename T , typename UnaryFunc >
__global__ void skepu::MapKernelUnary_CU |
( |
UnaryFunc |
mapFunc, |
|
|
T * |
input, |
|
|
T * |
output, |
|
|
size_t |
n |
|
) |
| |
static std::string skepu::TrinaryMapKernel_CL |
( |
"__kernel void TrinaryMapKernel_KERNELNAME(__global TYPE* input1, __global TYPE* input2, __global TYPE* input3, __global TYPE* output, size_t n, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < n)\n"" {\n"" output[i] = FUNCTIONNAME(input1[i], input2[i], input3[i], const1);\n"" i += gridSize;\n"" }\n""}\n" |
| ) |
|
|
static |
OpenCL Map kernel for trinary user functions.
static std::string skepu::UnaryMapKernel_CL |
( |
"__kernel void UnaryMapKernel_KERNELNAME(__global TYPE* input, __global TYPE* output, size_t numElements, CONST_TYPE const1)\n""{\n"" int i = get_global_id(0);\n"" size_t gridSize = get_local_size(0)*get_num_groups(0);\n"" while(i < numElements)\n"" {\n"" output[i] = FUNCTIONNAME(input[i], const1);\n"" i += gridSize;\n"" }\n""}\n" |
| ) |
|
|
static |
OpenCL Map kernel for unary user functions.