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