Linux Mint上的PyOpenCL:平台没有找到

2024-05-23 16:07:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试让PyOpenCLPyCUDA在linuxmint机器上运行。我已经安装了一些东西,但演示脚本失败,错误如下:

pyopencl.cffi_cl.LogicError: clgetplatformids failed: PLATFORM_NOT_FOUND_KHR

配置

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

^{pr2}$

相关安装包:

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

研究

This post描述了一个场景,其中安装了opencl/cuda实现的包管理器没有正确设置一些simlinks。我的系统似乎没有这个问题。在

<> P>图形驱动程序(NVIDIA340)和英伟达OpenCL包(352)之间存在版本号不匹配。我将图形驱动程序更新为nvidia-352-updates-dev,但问题仍然存在。在

有一个bug in Arch linux似乎围绕着没有创建的必要设备文件。但是,我已经验证了/dev/nvidia0和{}存在并且拥有666权限,因此它们应该是可访问的。在

Another Stackoverflow post建议以根用户身份运行演示。我试过了,但行为没有改变。在

Older installation instructions对于cuda/opencl,请直接从NVidia网站下载驱动程序。我不确定这是否还适用,所以我暂时暂缓,因为似乎有很多相关的包裹在仓库里。在

The same error, but for an ATI card on a different linux system,通过在/usr/lib/OpenCL/vendors中放置适当的文件来解析。我的系统没有使用这个路径,但是,我有/etc/OpenCL/vendors/nvidia.icd,它包含libnvidia-opencl.so.1行,这表明我的问题不同。在

This error has been observed on OSX,但出于不相关的原因。Similar error messages for PyCUDA似乎也不相关。在

This error can occur under remote access since the device files are not initialized if X is not loaded。不过,我正在桌面环境中测试这一点。此外,我运行了该线程中建议的手动命令,只是为了确定,它们是多余的,因为相关的/dev条目已经存在。在

这里有一个注释here是关于简单地运行一个命令几次来解决某个排序临时问题的。这似乎没什么用。在

This post描述了相似的cuInit failed: no deviceCUDA错误是如何由于用户不在video组中而引起的。为了检查,我运行了usermod -a -G video $USER,但它没有解决我的问题。在

In the past, routine updates have broken CUDA support。我并没有花时间去研究软件包版本号的每一种排列方式,而且有可能某些软件包的降级可能会改变这种情况。然而,如果没有对问题根源的进一步直觉,我不会花时间去做这件事,因为我不知道它是否有效。在

这个错误的most common google search result,第一页上的appearingfourtimes,是PyOpenCL列表上的一个短而未解析的电子邮件线程。建议检查/dev/nvidia0和/dev/nvidiactl的权限位。在我的机器上,用户/组/其他人都有对这些设备的读写权限,所以我不认为这是问题的根源。在

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

摘要

问题似乎是PyCUDA/PyOpenCL找不到显卡。有几个已知的问题可能导致这种情况,但它们似乎都不适用于这里。我遗漏了一些东西,我不知道还能做什么。在


Tags: devpycudapyopencl错误驱动程序errorthispost