Cuda 6.0/PyCuda。'ImportError'

Cuda 6.0/PyCuda。'ImportError'

Cuda 5.5 では pycuda が問題なく動作していましたが、その後 CUDA 6.0 にアップグレードする必要がありました。

サンプルの PyCuda プログラムを実行しようとすると、次のメッセージが表示されます。

ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory

そのファイルへのパスを見つけましたが、このライブラリを何らかの方法でリンクする必要がありますか? そうであれば、方法は? どこにリンクすればよいですか?

答え1

これは、lib のパスが LD_LIBRARY_PATH 変数に存在しないために発生します。

このパスをLD_LIBRARY_PATH変数に追加するには、次のコマンド~/.bashrcを使用してファイルを開きます。

gedit ~/.bashrc

次の行を追加します。 を<path_to_your_lib>ファイルへのパスに置き換えます。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>

答え2

解決:CUDA ライブラリへのパスを$LD_LIBRARY_PATH環境変数に追加する必要があります。

説明:

CUDA プログラムを実行する場合、CUDA ランタイム ライブラリに動的にリンクする必要があります。デフォルトでは、これらのライブラリはディレクトリにあります/usr/local/cuda/lib。これらのライブラリを検索する場合、オペレーティング システムは環境変数で指定されたディレクトリを検索します$LD_LIBRARY_PATH。ここで CUDA ライブラリ ディレクトリが指定されていない場合、プログラムは上記のエラーで失敗します。

解決策は 2 つあります (これらは、CS 部門のデフォルトのシェルである bash シェルを使用していることを前提としています)。

  1. 次のコマンドを実行します。

     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
    

    この変更は永続的ではなく、ログインするたびに再実行する必要があります。

  2. ファイルを編集します.profile( にあります~/.profile)。変数を設定する行を見つけます$LD_LIBRARY_PATH。次のような行があるはずです。

     LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
    

    その行を変更して、CUDA ライブラリへのパスを追加します。

     LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib:/usr/local/cuda/lib"
    

    ファイルを編集した後は、ログアウトして再度ログインするか、次のコマンドを実行する必要があります。

     source ~/.profile
    

このソリューションは永続的であり、一度だけ実行する必要があります。

ソース

関連情報