tags:

views:

68

answers:

1

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]);
}
+2  A: 

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..

Stringer Bell