【问题标题】:Error -1001 in clGetPlatformIDs Call !clGetPlatformIDs 调用中的错误 -1001!
【发布时间】:2011-06-24 23:34:35
【问题描述】:

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

./oclDeviceQuery

我明白了:

OpenCL 软件信息:

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

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

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

【问题讨论】:

  • 这个问题被问到已经 7 年了。我仍然有同样的问题。你找到解决方案了吗

标签: opencl nvidia


【解决方案1】:

就我而言,我通过安装 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 是否都需要它们。

【讨论】:

  • 就我而言,nvidia-modprobe 是问题所在。现在它甚至可以与旧驱动程序(331)一起使用。谢谢!
  • 让它在 Ubuntu 15.10 上为我工作,确切的设置解释在:stackoverflow.com/a/33483311/895245
【解决方案2】:

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

【讨论】:

  • 你能告诉我更多关于究竟缺少什么吗?我有 /etc/OpenCL/vendors/nvidia.icd 文件,它引用 libcuda.so 库。库本身存在并且位于 LD_LIBRARY_PATH 上。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    # sudo usermod -aG video your-user-name
    

    【讨论】:

    • 这没有用!至少不适合我,我也有同样的问题。
    【解决方案5】:

    由于我只花了几个小时在这上面,我想我会分享: 我收到错误是因为我通过远程桌面 (mstsc) 连接到机器。在机器本身上一切正常。

    有人告诉我,它应该可以与 TeamViewer 一起使用。

    【讨论】:

      【解决方案6】:

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

      希望对你有帮助!

      【讨论】:

        【解决方案7】:

        我已经通过创建的链接在 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
        

        【讨论】:

          【解决方案8】:

          我刚刚在 ubuntu 14.04 上遇到了这个问题,我在网上的任何地方都找不到任何有效的答案,包括这个线程(尽管这是第一个出现在 google 上的)。最终对我有用的是删除所有以前的 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
          

          【讨论】:

            【解决方案9】:

            这可能是由于多个线程同时查询 clGetPlatformID 造成的

            【讨论】:

              【解决方案10】:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-12-18
                • 2015-09-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多