Kernel 使用传递值的概念从opencl内核调用函数
如果我想使用传递值的概念呢。例如:Kernel 使用传递值的概念从opencl内核调用函数,kernel,opencl,pass-by-value,Kernel,Opencl,Pass By Value,如果我想使用传递值的概念呢。例如: void sum(int &u, int &v) { return u+v; } __kernel void testing(__global int *a, __global int *b, __global int *c) { int i = get_global_id(0); int u = max(a,b); int v = min(b,c); int x = sum(u,v); } 现在
void sum(int &u, int &v)
{ return u+v; }
__kernel void testing(__global int *a, __global int *b, __global int *c)
{ int i = get_global_id(0);
int u = max(a,b);
int v = min(b,c);
int x = sum(u,v);
}
现在,我的错误在“&”符号处。我无法使用“按引用传递”概念传递参数。怎么办?C不支持通过引用传递变量,Opencl(v1.x)内核与C99一样工作。您需要使用直接指针(这是一个传递值)
opcl v2.x可以编译C++,但仍然需要首先由驱动程序和硬件来支持。我想知道如何从空返回类型函数返回一个值。
int sum(int *u, int *v)
{ return (*u)+(*v); }