How to define functions in OpenCL?
How do i define functions in OpenCL? I tried to build one program for each function. And it didn't worked.
float AddVectors(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] = AddVectors(a[index], b[index]);
}
You don't need to create one program for each function, instead you create a program for a set of functions that are marked with __kernel
(or kernel
) and potentially auxiliary functions (like your AddVectors
function) using for example clCreateProgramWithSource
call.
Check out basic tutorials from Apple, AMD, NVIDIA..
精彩评论