
我一直在嘗試讓 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 配置完全損壞,機器無法啟動到登入畫面。我無法修復這個問題。