如何在OpenCL中定义函数?
如何在OpenCL中定义函数?我尝试为每个函数构建一个程序。但它没有起作用如何在OpenCL中定义函数?,opencl,Opencl,如何在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);
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]);
}
您不需要为每个函数创建一个程序,而是为标记有
\uuu kernel
(或kernel
)的一组函数和可能的辅助函数(例如AddVectors
函数)创建一个程序,例如使用clCreateProgramWithSource
调用
查看苹果、AMD、NVIDIA的基本教程。可能是重复的?是的,搜索过,但之前没有找到。我刚刚测试了这个。未收到任何错误,因此它可能正在工作。还刚刚发现clBuildProgram不是线程安全的。所以我们将所有程序放在一个cl文件中是有原因的。