我想在Ubuntu 10.04中运行这个OpenCL的例子 。 我的显卡是NVIDIA GeForce GTX 480.我已经手动安装了最新的NVIDIA驱动程序和CUDA工具包。
该程序编译没有任何错误。 因此,与libOpenCL链接工程。 应用程序也运行,但输出是非常奇怪的(大多是零和一些随机数)。 debugging显示
clGetPlatformIDs(1, &platform_id, &ret_num_platforms);
返回-1001。
谷歌和堆栈告诉我,原因可能是在/ etc / OpenCL /供应商缺lessnvidia.icd。 这是不是所以我已经添加/etc/OpenCL/vendors/nvidia.icd以下行
libnvidia-opencl.so.1
我也尝试了一些变体(绝对path等)。 但没有解决问题。 现在我不知道还有什么我可以尝试。 有什么build议么?
编辑:我已经安装了英特尔OpenCL SDK,我已经复制其icd到/ etc / OpenCL /供应商和应用程序工作正常
clGetDeviceIDs( platform_id, CL_DEVICE_TYPE_DEFAULT, 1, &device_id, &ret_num_devices);
对于
clGetDeviceIDs( platform_id, CL_DEVICE_TYPE_GPU, 1, &device_id, &ret_num_devices);
我得到错误-1。
编辑:
执行应用程序时,我注意到了控制台中的一件事情。 线执行后
cl_int ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms);
应用程序给我的输出
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_331_uvm' modprobe: ERROR: could not insert 'nvidia_331_uvm': Function not implemented
自从我使用340版本之后,似乎与旧版本的驱动程序版本有冲突。
cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 340.32 Tue Aug 5 20:58:26 PDT 2014
也许我应该尝试再次删除Ubuntu自己的NVIDIA驱动程序,并再次手动重新安装最新版本?
编辑:
老司机是这个问题。 不知何故,它没有被正确地删除,因此我又一次做了
apt-get remove nvidia-331 nvidia-opencl-icd-331 nvidia-libopencl1-331
现在它工作。 我希望这可以帮助有类似问题的人。
上述问题是由于司机冲突而发生的。 如果您有类似的问题,请阅读上述编辑以获得解决方案。