web-dev-qa-db-ja.com

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

私はそのファイルへのパスを見つけました、どういうわけかこのライブラリをリンクすることになっていますか?もしそうなら、どのように?そしてどこへ?

4

これは、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>
3
g_p

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

説明:

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
    

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

ソース

3
αғsнιη