Kay*_*ano 13
用于创建程序的函数是......
cl_program clCreateProgramWithSource (
cl_context context,
cl_uint count,
const char **strings,
const size_t *lengths,
cl_int *errcode_ret)
Run Code Online (Sandbox Code Playgroud)
您可以将函数放在strings参数中,如下所示,
float AddVector(float a, float b)
{
return a + b;
}
kernel void VectorAdd(
global read_only float* a,
global read_only float* b,
global write_only float* c )
{
int index = get_global_id(0);
//c[index] = a[index] + b[index];
c[index] = AddVector(a[index], b[index]);
}
Run Code Online (Sandbox Code Playgroud)
现在你有一个用户定义的函数"AddVector"和一个内核函数"VectorAdd"
inline int add(int a,int b)
{
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
(例如,查看DXTC中的.cl文件或bitonic排序示例.)
我不知道这是否只是一个nvidia扩展,但OpenCL文档谈到了"辅助功能"以及内核.