私はLinux MintシステムでPyOpenCLとPyCUDAを実行しようとしてきました。何かをインストールしましたが、デモスクリプトは次のエラーで失敗します。
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リストにある簡単で未解決のメールスレッドです。このスレッドは、検索結果の最初のページに複数のサイトで4回表示されます。/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構成が完全に破損し、システムがログイン画面から起動できなくなりました。私はこれを修正することはできません。