Opencl clGetPlatformIDs调用中出现错误-1001!

Opencl clGetPlatformIDs调用中出现错误-1001!,opencl,nvidia,Opencl,Nvidia,我正试图开始与OpenCL合作。我有两个NVidia图形卡,我安装了“开发者驱动程序”以及NVidia网站上的SDK。我编译了演示,但是当我运行 /办公室设备 我明白了: OpenCL软件信息: clGetPlatformIDs调用中出现错误-1001 !!! 我怎样才能修好它?这是否意味着无法检测到我的nvidia卡?我运行的是Ubuntu10.10,X服务器可以与nvidia驱动程序正常工作 我很确定这个问题与文件权限无关,因为它也不适用于sudo。这是因为没有安装Nvidia openCL

我正试图开始与OpenCL合作。我有两个NVidia图形卡,我安装了“开发者驱动程序”以及NVidia网站上的SDK。我编译了演示,但是当我运行

/办公室设备

我明白了:

OpenCL软件信息:

clGetPlatformIDs调用中出现错误-1001 !!!

我怎样才能修好它?这是否意味着无法检测到我的nvidia卡?我运行的是Ubuntu10.10,X服务器可以与nvidia驱动程序正常工作


我很确定这个问题与文件权限无关,因为它也不适用于sudo。

这是因为没有安装Nvidia openCL运行时的ICD部分。ICD配置文件将指导您应用系统上安装的不同openCL实现,因为来自不同供应商的多个实现可以共存。当您的应用程序没有找到ICD信息时,它会给出错误-1001。

您应该获取平台数量,为平台分配内存,再次获取此平台,然后从此平台创建上下文。有一个很好的例子:

因为我只花了几个小时在这上面,我想我会分享: 我收到错误,因为我是通过远程桌面(mstsc)连接到机器的。这台机器本身运转良好


顺便说一句,我被告知它应该与TeamViewer配合使用。

在Linux系统上我也遇到同样的问题。解决方案是将用户添加到视频组:

# sudo usermod -aG video your-user-name

我不知道你是否解决过这个问题,但我也遇到了同样的问题,并在这篇文章中解决了这个问题:


希望有帮助

我已经通过创建链接在Ubuntu 13.10 saucy for intel opencl中解决了这个问题:

sudo ln -s /opt/intel/opencl-1.2-3.2.1.16712/etc/intel64.icd /etc/OpenCL/vendors/nvidia.icd

在我的例子中,我通过安装ubuntu(utopic/multiverse)中提供的nvidia modprobe包解决了这个问题。而驱动程序本身(v346)是从



具体来说,我安装了nvidia-opencl-icd-346、nvidia-LIBONECL1-346、nvidia-346-uvm、nvidia-346和libcuda1-346。不确定OpenCL是否都需要这些工具。

我在ubuntu 14.04上遇到了这个问题,我在网上找不到任何有用的答案,包括这个线程(尽管这是第一次出现在谷歌上)。为我工作的是删除所有以前的NVIDIA软件,然后使用英伟达网站上提供的.run文件重新安装它。由于某种原因,通过apt get安装组件似乎失败了

1) 下载CUDA.run文件:

2) 清除所有以前的nvidia软件包

sudo apt-get purge nvidia-*
3) 安装所有运行文件组件(您可能必须停止X或在恢复模式下重新启动才能运行此组件)


这可能是由于多个线程同时查询CLGetPlatformid

以root用户身份运行程序。如果成功:您在使用cl_khr_icd扩展加载供应商驱动程序时遇到问题。 如果未运行X11,则必须手动或通过(启动)脚本创建设备文件:

你能告诉我更多关于到底缺少什么吗?我有/etc/OpenCL/vendors/nvidia.icd文件,它引用libcuda.so库。库本身存在并且在LD_library_路径上。这没有帮助!至少对我来说不是这样,我也有同样的问题。就我而言,nvidia modprobe就是问题所在。现在它甚至可以与旧驱动程序(331)一起工作。谢谢让它在Ubuntu 15.10上为我工作,确切的设置解释为:这个问题第一次被问到已经7年了。我仍然有同样的问题。你找到解决办法了吗
sudo sh cuda_X.X.XX_linux.run