Я хочу определить функцию внутри функции ядра, чтобы сделать мой код индексации более понятным:
kernel void do_something (const int some_offset,
const int other_offset,
global float* buffer)
{
int index(int x, int y)
{
return some_offset+other_offset*x+y;
}
float value = buffer[index(1,2)];
...
}
В противном случае я должен был бы объявить функцию индекса вне моего ядра и индексировать как
float value = buffer[index(1,2,some_offset,other_offset)];
, что сделало бы это более уродливым и т.д. Есть ли способ сделать это? Компилятор выдает ошибку:
OpenCL Compile Error: clBuildProgram failed (CL_BUILD_PROGRAM_FAILURE).
Line 5: error: expected a ";"
Можно ли делать то, что я хочу, или есть другой способ добиться того же?
Спасибо!