DockerコンテナのCUDAをバージョンアップ後、プログラムを実行すると以下のエラーが出た。
ImportError: libcudart.so.12: cannot open shared object file: No such file or directory
原因
CUDAツールキットが存在しないか、正しくインストールされていない。
CUDAは、NVIDIAによって作成された並列コンピューティングプラットフォームとアプリケーションプログラミングインタフェース(API)モデルで、開発者がGPUを汎用処理に使用できるようにする。
CUDAツールキットを使用するプログラムを実行
→ システムがlibcudartライブラリを含む必要な共有ライブラリを探す。
→ システムがライブラリを見つけられない場合、エラーを吐く。
解決
Step1: CUDAがインストールされていることを確認する
次のコマンドを実行
nvcc --version
CUDAがインストールされていれば、CUDAツールキットのバージョン番号が表示される。
CUDAがインストールされていなければ、Command not foundとか出るはず。
Step2:CUDAバージョンの確認
CUDAがインストールされている場合、次のコマンドを実行
ls /usr/local/cuda/lib64/
CUDAライブラリ・ディレクトリの内容が一覧表示される。使用しているCUDAツールキットのバージョン番号が以下フォーマットで書いてある。
libcudart.so.X.X
(X.Xはバージョン番号)
Step3:LD_LIBRARY_PATH環境変数の設定
LD_LIBRARY_PATH環境変数にCUDAライブラリディレクトリへのパスを設定。次のコマンドを実行
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
CUDAライブラリ・ディレクトリへのパスがLD_LIBRARY_PATH環境変数に追加される。
ref