Как определить функции в OpenCL? - PullRequest
4 голосов
/ 02 августа 2010

Как определить функции в OpenCL?Я пытался построить одну программу для каждой функции.И это не сработало.

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]);
}

1 Ответ

5 голосов
/ 02 августа 2010

Вам не нужно создавать одну программу для каждой функции, вместо этого вы создаете программу для набора функций, помеченных __kernel (или kernel) и потенциально вспомогательных функций (например, ваша AddVectors функция) используя, например, clCreateProgramWithSource вызов.

Ознакомьтесь с основными учебными пособиями от Apple, AMD, NVIDIA ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...