小编Akh*_*Ali的帖子

从另一个OpenCL内核调用OpenCL内核

我在这里的一篇文章中看到我们可以从OpenCL内核调用一个函数.但在我的情况下,我需要并行化复杂的函数(由所有可用的线程运行),所以我是否必须将该函数作为内核并直接调用它,就像来自主内核的函数一样?或者这种情况可能的解决办法?提前致谢

opencl

10
推荐指数
2
解决办法
7788
查看次数

clBuildProgram失败,错误代码为-11且没有构建日志

我现在在OpenCL中工作不多,但最近"clBuildProgram"在我的一个程序中失败了.我的代码摘录如下:

cl_program program;
program = clCreateProgramWithSource(context, 1, (const char**) &kernel_string, NULL, &err);
if(err != CL_SUCCESS)
{
cout<<"Unable to create Program Object. Error code = "<<err<<endl;
exit(1);
}
if(clBuildProgram(program, 0, NULL, NULL, NULL, NULL) != CL_SUCCESS)
{
cout<<"Program Build failed\n";
size_t length;
char buffer[2048];
clGetProgramBuildInfo(program, device_id[0], CL_PROGRAM_BUILD_LOG, sizeof(buffer), buffer, &length);
cout<<"--- Build log ---\n "<<buffer<<endl;
exit(1);
}
Run Code Online (Sandbox Code Playgroud)

通常早些时候,在"clBuildProgram"失败的情况下,在"clBuildProgram"函数的帮助下,在"clGetProgramBuildInfo()"函数的帮助下,我在内核文件中得到了语法或其他错误,但是当这个程序运行时,在控制台上它只打印:

程序构建失败---构建日志---

当我试图打印"clBuildProgram"返回的错误代码时; 它是"-11"......我的内核文件有什么问题,我没有得到任何构建失败信息?

opencl

8
推荐指数
2
解决办法
1万
查看次数

在OpenCL中选择CPU核心数

我将OpenMP的性能与CPU上的OpenCL的性能进行比较,我的系统有8个内核.但我需要分别对2,4,6和8个核心进行比较.我可以通过"set_num_threads(n)"函数或环境变量激活OpenMP中的核心数量; 但是我不知道我怎么能在OpenCL中做同样的事情,OpenCL中是否有替代的OpenMP set_num_threads API?

opencl

3
推荐指数
1
解决办法
1323
查看次数

标签 统计

opencl ×3