openCL clGetDeviceIds seg fault(在Linux SUSE发行版上使用openCL的imx6(Freescale)(armv7))

时间:2014-07-09 07:43:00

标签: opencl embedded-linux suse

我正在imx6q(freescale - 带有openCL EP的Vivante gc200)上开发一个带有openCL的应用程序,其中一个Linux suse 13.1发行版适用于armv7。

我基于以下教程:https://community.freescale.com/docs/DOC-93984#comment-12585。我安装了以下软件包:gpu-viv-bin-mx6q。

当我尝试示例代码时,它适用于笔记本电脑版本,但在imx6上,它在调用函数clGetDeviceIds时给出了分段错误。

程序编译正确但在运行时不起作用;

我试过在函数中传递不同的空变量。我不确定这是否是由于内存分配(因为我的笔记本电脑上的代码相同,我可以认为这不是问题)。当我在调试模式下启动它时,程序似乎找不到文件:“gc_hal_user_query.c”(hal用于硬件抽象层)。

我在网上找不到足够的文档,而且我在linux和openCL上都很新手,所以如果有人可以帮助我的话。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我猜问题是,当你打电话

clGetPlatformIDs(1, &cpPlatform, NULL); 
如果没有检测到平台,则

cpPlatform收到0。这会在下次调用

期间导致分段错误
clGetDeviceIDs(cpPlatform, CL_DEVICE_TYPE_GPU, 1, &cdDevice, NULL);

我很遗憾无法提供进一步帮助,我遇到了同样的问题。

答案 1 :(得分:0)

您的权限不足。尝试以root身份运行。