Cuda SDKサンプルを実行しようとしていますが、次のエラーが表示されます。
./bandwidthTest: error while loading shared libraries:
libcudart.so.4: cannot open shared object file:
No such file or directory
サンプルを正常にコンパイルできるのに実行できないのはなぜですか? CUDAランタイムライブラリへのパスを手動で指定する方法はありますか?
試してください:
32ビット:Sudo ldconfig /usr/local/cuda/lib
64ビット:Sudo ldconfig /usr/local/cuda/lib64
乾杯
最初に必要なのは、CUDAバイナリとライブラリへのパスを連結することです。これは、.bashrcファイルに次の行を追加することで簡単に実行できます。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=:/usr/local/cuda/lib64
32ビットオペレーティングシステムを使用している場合は、lib64をlibに変更します
次に、オペレーティングシステムに応じて、/ usr/libまたは/ usr/lib64に共有オブジェクトファイルがインストールされている必要があります。これらのオブジェクトファイルは、「nvidia」というディレクトリに含まれている必要があります。関係する2つのファイルは、libcuda.so.drivernumberとlibOpenCL.so.somenumberという名前です。実際の共有オブジェクトファイルを区別するには、ls -l
。シンボリックリンクは、実際にリンクしているものを示します。
Rootとして、次のコマンドを実行します。
ln -s /usr/lib64/nvidia/libcuda.so.somenumber /usr/lib64/libcuda.so
ln -s /usr/lib64/nvidia/libOpenCL.so.somenumber /usr/lib64/libOpenCL.so
これにより、SDKのすべてのソースをコンパイルできます。
Cuda 5.5およびUbuntu 12.04/12.10の時点で、上記のコマンドは64ビットで(UbuntuおよびCudaディレクトリの変更に注意してください)
ln -s /usr/local/cuda/lib64/libcuda.so.5.5 /usr/lib/libcuda.so.5.5
つまり、12.04の時点でUbuntuのlibフォルダーはlib32とlibです。 64は暗黙的であり、cuda 5.5以降は別のディレクトリにインストールされます。
共有ライブラリのロード中に1エラー:libcudart.so.6.0:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
32-bit: Sudo ldconfig /usr/local/cuda/lib
64-bit: Sudo ldconfig /usr/local/cuda/lib64
(参照: http://blog.csdn.net/shenchong721/article/details/21529295 )
私のために働く!
LD_LIBRARY_PATHは非推奨です。他のプログラムを台無しにしたり、他の人がそれをリセットする可能性があります。テスト目的で永続的なパスを一時的にオーバーライドするためにのみ使用する必要があります(Wordを使用しないで、グーグルで検索してください)。
代わりに、既存の行の後に、cuda libディレクトリを含む行を/etc/ld.so.confに追加します。
たとえば、/ usr/local/cudaにインストールした場合、追加する必要があります
32ビット:/ usr/local/cuda/lib
64ビット:/ usr/local/cuda/lib64
保存して、ldconfigを実行します。これにより、問題が完全に修正されます。
シンボリックリンクは、おそらくインストールによって既にセットアップされています。そうでない場合は、アレックスのアドバイスに従って追加します。
注-/ libを参照するエラーを受け取りましたが、lib64を追加して修正する必要がありました。
/etc/ld.so.conf.d/にnvidia_settings.confファイルを作成し、nvidia_settings.confファイルにlibsへのパスを追加します
/usr/local/cuda/lib64
/usr/local/cuda/lib
変更を更新するには、次のコマンドを実行します。
Sudo ldconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
または、64ビットマシンでcuda-5.0を実行している場合
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64
システムは、ldツールを使用してライブラリを検索します。一番上の答えにあるように、64ビット:Sudo ldconfig/usr/local/cuda-xx/lib64 ;; xxはcuda libraryeditionです
私の場合、MPIを使用してアプリケーションを実行していました。エラーは:
libcudart.so.7: cannot open shared object file
CUDAはすべてのノードに適切にインストールされました。また、前の回答のように、変数$ PATHと$ LD_LIBRARY_PATHはそれぞれバイナリとライブラリを指していました。
MPIコマンドで$ PATHおよび$ LD_LIBRARY_PATHを渡すことで問題が解決しました。
mpirun -x PATH=$PATH -x LD_LIBRARY_PATH=$LD_LIBRARY_PATH ...