我在 OpenCl 编译方面遇到了问题。
例如,当我想启动 SmallptGPU 时:
用法:./smallptGPU
用法:./smallptGPU 0 和 2 的幂)>
OpenCL 平台 0:NVIDIA Corporation
OpenCL 设备 0:类型 = TYPE_GPU
OpenCL 设备 0:名称 = GeForce 840M
OpenCL 设备 0:计算单元 = 3
OpenCL 设备 0:最大工作组大小 = 1024
[已选择] OpenCL 设备 0:类型 = TYPE_GPU
[已选择] OpenCL 设备 0:名称 = GeForce 840M
[已选择] OpenCL 设备 0:计算单元 = 3
[已选择] OpenCL 设备 0:最大工作组大小 = 1024
正在读取文件“rendering_kernel.cl”(大小 3216 字节)
无法构建 OpenCL 内核:-11
OpenCL 程序构建日志:
我尝试使用 OpenCL 启动每个程序时,它都会返回相同的错误。
我安装了 nvidia-346、nvidia-346-uvm、nvidia-modprobe、nvidia-opencl-icd-346 和 opencl-headers,CUDA 运行良好。
我的电脑有两个 GPU(一个是英特尔 GPU,另一个是 nVidia GPU),所以我使用 bumblebee,当我想使用 CUDA 时,我会加载 nvidia-346-uvm 模块,它运行良好。
有人能帮我解决这个问题吗?
谢谢
答案1
现在它能正常工作了。我使用 strace 运行了 smallptGPU,发现程序找不到 libnvidia-compiler.so.346.72
我必须将 /usr/lib/nvidia-346/libnvidia-compiler.so* 复制到 /usr/lib/,现在它就可以正常工作了。
事实上,nvidia-346 和 nvidia-346-uvm 似乎没有将其所需的库复制/链接到 /usr/lib/,例如 libvdpau.so 也是如此。