概括

概括

我一直在尝试让 PyOpenCL 和 PyCUDA 在 Linux Mint 机器上运行。我已经安装了一些东西,但演示脚本失败并出现错误:

pyopencl.cffi_cl.LogicError: clgetplatformids failed: PLATFORM_NOT_FOUND_KHR

配置

$ uname -a && cat /etc/lsb-release && lspci | grep NV

    Linux 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
    01:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730] (rev a1)

相关安装包:

libcuda1-352-updates
libcudart5.5:amd64
nvidia-352-updates
nvidia-352-updates-dev
nvidia-cuda-dev
nvidia-cuda-toolkit
nvidia-opencl-icd-352-updates
nvidia-profiler
nvidia-settings
ocl-icd-libopencl1:amd64
ocl-icd-opencl-dev:amd64
opencl-headers
python-pycuda
python-pyopencl
python3-pycuda
python3-pyopencl

研究

因为我无法在这里发布所有适当的链接,请参阅相关的堆栈溢出帖子,获取反映我之前解决此问题的尝试的链接。

一篇文章描述了一种场景,其中包管理器安装的 opencl/cuda 实现未正确设置某些符号链接。我的系统上似乎不存在该问题。

图形驱动程序(nvidia-340)和 nvidia-opencl 软件包(352)之间存在版本号不匹配。我更新了显卡驱动程序,nvidia-352-updates-dev但问题仍然存在。

Arch Linux 中有一个错误,似乎与未创建必要的设备文件有关。但是,我已经验证/dev/nvidia0/dev/nvidiactl存在并且具有权限666,因此它们应该可以访问。

另一篇 Stackoverflow 帖子建议以 root 身份运行演示。我已经尝试过,并且行为没有改变。

cuda/opencl 的旧安装说明说直接从 NVidia 网站下载驱动程序。请在帖子末尾查看有关结果的更新(这是灾难性的)

不同 Linux 系统上的 ATI 卡也报告了相同的错误,并通过将正确的文件放入/usr/lib/OpenCL/vendors.该路径未在我的系统上使用,但是,我确实/etc/OpenCL/vendors/nvidia.icd包含该行libnvidia-opencl.so.1,这表明我的问题有所不同。

此错误已在 OSX 上观察到,但原因不相关。 OSX 上的 PyCUDA 的类似错误消息似乎也无关。

在远程访问下可能会发生此错误,因为如果未加载 X,则设备文件不会初始化。不过,我正在桌面环境中对此进行测试。此外,为了确定起见,我已经运行了该线程中建议的手动命令,并且它们是多余的,因为相关/dev条目已经存在。

有些人建议运行这些示例几次,或者作为 sudo 运行它们,以开始工作。这似乎没有帮助。

一篇文章描述了如何cuInit failed: no device因组中没有用户而导致类似的 CUDA 错误video。为了检查,我跑了usermod -a -G video $USER,但它没有解决我的问题。

过去,例行更新已经破坏了 CUDA 支持。我没有花时间探索软件包版本号的每种排列,降级某些软件包可能会改变这种情况。然而,如果没有对问题根源的进一步直觉,我不会投入时间这样做,因为我不知道它是否会起作用。

此错误最常见的 Google 搜索结果是 PyOpenCL 列表上的一个简短且未解决的电子邮件线程,在搜索结果的第一页上从不同站点出现了四次。建议检查/dev/nvidia0和 的权限位。/dev/nvidiactl在我的机器上,user/group/other所有设备都具有对这些设备的读写访问权限,因此我认为这不是问题的根源。

我还尝试从最新源构建和安装 PyOpenCL,而不是使用存储库中的版本。这在早期阶段失败了,这表明它没有正确构建。

概括

问题似乎是 PyCUDA/PyOpenCL 无法找到显卡。有几个已知问题可能会导致此问题,但这些问题似乎都不适用。我错过了一些东西,而且我不知道还能做什么。

进一步更新

我尝试从直接从 NVidia 下载的 deb 重新安装cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb,但它似乎没有安装——我什至找不到命令 deviceQuery。我尝试从运行文件重新安装cuda_7.5.18_linux.run。安装程序指出我的机器的配置不受支持。不管怎样,我还是做了最后的努力。事实上,现在 X 配置完全损坏,机器无法启动到登录屏幕。我无法修复这个问题。

相关内容