【问题标题】:PyOpenCL Ubuntu Nvidia - Platform Not FoundPyOpenCL Ubuntu Nvidia - 未找到平台
【发布时间】:2014-06-14 01:22:37
【问题描述】:

使用 Ubuntu python-pyopencl 软件包安装后,PyOpenCL 无法访问我的 Nvidia 设备。这种安装 PyOpenCL 的方法曾经适用于相同的硬件和相同版本的 Ubuntu (14.10)。

当我运行pyopencl.get_platforms() 时,错误消息是:

LogicError: clGetPlatformIDs failed: platform not found khr

我尝试了不同的驱动程序、不同的软件包组合以及全新安装的操作系统。

如何在 Ubuntu 上为 Nvidia 卡安装 PyOpenCl?

更新 1

全新安装操作系统后,get_platforms() 显示两个平台:AMD 和 Intel (beignet)。英伟达还是不行。

更新 2

http://wiki.tiker.net/OpenCLHowTo 尝试了更多操作后,python-pyopencl 包现在抛出错误。

The following packages have unmet dependencies:

python-pyopencl: Depends: libgcc1 (>= 1:4.1.1) but 1:4.9.0-6ubuntu1 is to be installed
                 Depends: libopencl-1.1-1 but it is a virtual package
                 Depends: libopencl-1.2-1 but it is a virtual package
                 Depends: python-numpy (>= 1:1.8.0) but 1:1.8.1-1ubuntu1 is to be installed
                 Depends: python-numpy-abi9 but it is a virtual package
                 Depends: python (< 2.8) but 2.7.6-2 is to be installed
                 Depends: python-pytools (>= 2013.5.2) but 2014.2.1-1 is to be installed

【问题讨论】:

  • 您使用的是哪个 nvidia 显卡驱动程序?我认为Ubuntu默认使用'nouveau'开源驱动程序,我不确定是否支持opencl。您可以通过查看 /var/log/Xorg.0.log 找到驱动程序,其中会出现类似 'Loading /usr/lib64/xorg/modules/drivers/ ...' 这样的行
  • 现在我已经安装了 Nvidia 331-updates 驱动程序
  • 我遇到了同样的问题。看起来 nvidia-libopencl1-346(我正在使用的驱动程序)与 pyopencl 依赖关系树中的某些内容冲突。

标签: ubuntu pyopencl


【解决方案1】:

确保您对 /dev/nvidia* 拥有正确的权限,默认情况下只能以 root 身份访问。或者,只需使用 sudo 运行。

【讨论】:

  • 这个答案帮助我找到了解决方案 - 我对正在运行的 脚本本身 没有正确的权限。为我解决这个问题的是输入sudo chmod u+x myscript.py
【解决方案2】:

尝试以 root 身份运行您的 python 脚本。如果cl.get_platforms() 在 root 下没有抛出任何错误,那么您的用户没有足够的权限来执行该操作。要解决这个问题,请安装nvidia-modprobe 包:

sudo apt-get install nvidia-modprobe

如需进一步解释,您可以read this blog

【讨论】:

    【解决方案3】:

    这个命令解决了我在 Ubuntu(英特尔显卡)上的问题

        sudo apt-get install opencl-headers
    

    【讨论】:

      猜你喜欢
      • 2015-12-07
      • 2023-03-21
      • 1970-01-01
      • 2012-11-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      相关资源
      最近更新 更多