Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OpenCL中定义函数?_Opencl - Fatal编程技术网

如何在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);

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

您不需要为每个函数创建一个程序,而是为标记有
\uuu kernel
(或
kernel
)的一组函数和可能的辅助函数(例如
AddVectors
函数)创建一个程序,例如使用
clCreateProgramWithSource
调用


查看苹果、AMD、NVIDIA的基本教程。

可能是重复的?是的,搜索过,但之前没有找到。我刚刚测试了这个。未收到任何错误,因此它可能正在工作。还刚刚发现clBuildProgram不是线程安全的。所以我们将所有程序放在一个cl文件中是有原因的。