clGetPlatformIDs中的错误-1001调用!

时间:2011-02-10 16:13:35

标签: opencl nvidia

我正在尝试使用OpenCL。我有两个NVidia显卡,我安装了“开发者驱动程序”以及来自NVidia网站的SDK。我编译了演示,但是当我运行时

./ oclDeviceQuery

我明白了:

  

OpenCL SW信息:

     

clGetPlatformIDs调用中的错误-1001   !!!

我该如何解决?这是否意味着无法检测到我的nvidia卡?我正在运行Ubuntu 10.10和X服务器与nvidia驱动程序正常工作。

我很确定该问题与文件权限无关,因为它也无法与sudo一起使用。

10 个答案:

答案 0 :(得分:8)

在我的情况下,我通过安装ubuntu(utopic / multiverse)中提供的 nvidia-modprobe 包解决了这个问题。并且驱动程序本身(v346)是从https://launchpad.net/~mamarley/+archive/ubuntu/nvidia安装的 具体来说,我安装了nvidia-opencl-icd-346,nvidia-libopencl1-346,nvidia-346-uvm,nvidia-346和libcuda1-346。不确定OpenCL是否都需要它们。

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

# sudo usermod -aG video your-user-name

答案 3 :(得分:2)

以root身份运行您的程序。如果成功:您无法使用cl_khr_icd-扩展来加载供应商驱动程序。 如果您没有运行X11,则必须手动或通过(boot-)脚本创建设备文件: ERROR: clGetPlatformIDs -1001 when running OpenCL code (Linux)

答案 4 :(得分:1)

由于我只花了几个小时,我想我会分享: 我收到了错误,因为我已连接到每台远程桌面(mstsc)的计算机。在机器本身一切正常。

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

答案 5 :(得分:1)

不知道你是否曾解决过这个问题,但我遇到了同样的问题并在这篇文章中解决了这个问题:ERROR: clGetPlatformIDs -1001 when running OpenCL code (Linux)

希望它有所帮助!

答案 6 :(得分:0)

我已经通过创建的链接在Ubuntu 13.10中解决了intel opencl:

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

答案 7 :(得分:0)

我刚刚在ubuntu 14.04上遇到了这个问题,我无法在网上任何地方找到任何合适的答案,包括这个帖子(虽然这是第一个出现在谷歌上)。最终为我工作的是删除所有以前的nvidia软件,然后使用nvidia网站上提供的.run文件重新安装它。通过apt-get安装组件似乎由于某种原因而失败。

1)下载CUDA .run文件:https://developer.nvidia.com/cuda-downloads

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

sudo apt-get purge nvidia-*

3)安装所有运行文件组件(您可能必须停止X或在恢复模式下重新启动才能运行它)

sudo sh cuda_X.X.XX_linux.run

答案 8 :(得分:-1)

这可能是由于多个线程同时查询clGetPlatformID所致

答案 9 :(得分:-2)

您应该获得多个平台,为平台分配内存,再次获取此平台,然后从此平台创建上下文。有很好的例子: http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=71