LoginSignup
1
2

More than 3 years have passed since last update.

Linuxで任意のCUDA環境を構築するときの予備知識の備忘録、トラブルシュート

Last updated at Posted at 2020-09-21

事前知識

CUDA環境を作るときには必要なものの組み合わせが重要になってくる。
例えばCuPyを動かす際に必要になるのは

  • CuPy
  • CUDA Toolkit(SDK, ツール群)
  • CUDA
  • Nvidia Driver

で、これらのソフトウェア間のバージョンの互換性があっていないといけない。
CuPy, cuDNN, cuBLASなどはCUDA Toolkitと、
CUDA ToolkitはCUDAと
CUDAはNvidia Driverとの互換性が重要になる。

Nvidia Driverのインストール

まずはNvidia Driverをインストールする。
これはGPUの種類によってある程度上のバージョンからしかインストールすることができない。
セキュアブートを切ってインストールする方法が一番簡単。
セキュアブートを切ってインストールするのはボチボチ大変、アップデートが怖い。
手順は今回は割愛。

確認

スクリーンショット 2020-09-21 12.35.27.png
インストール後にnvidia-smiコマンドでDriverのVersionを確認。

トラブルシュート

Failed to initialize NVML: Driver/library version mismatch
と出る場合とりあえず再起動してみる。再起動してダメならGPUとDriverの相性やその他の問題の可能性も。

スクリーンショット 2020-09-21 12.20.05.png
正常にインストールできているとGPUの情報などが見られるコンソールが出てくるDriver Version: 450.51.06 がドライバのバージョン。

CUDA, CUDA Toolkitのインストール

Nvidiaドライバーがちゃんと動作していれば、最大の難関は突破したと言ってよい。
Dockerをつかって任意の環境を作ることが可能。

Python2で使えるバージョンのCuPyはCUDA 10.1までにしか対応していないので、現時点最新の11ではなく任意のバージョン、今回はv10.1をインストールしてみる。NvidiaのCUDA Toolkitのインストール手順を解説するページの説明に従ってCUDAをインストールするとCUDA, CUDA Toolkit, cuBLASなどのCUDAを使ったライブラリがいくつかインストールされる。

https://developer.nvidia.com/cuda-downloads?target_os=Linux
スクリーンショット 2020-09-21 12.08.17.png
今回は最新バージョンをインストールしないのでLegacy Releasesを選ぶ。

スクリーンショット 2020-09-21 12.14.02.png
CUDA Toolkit10.1を選ぶ。

スクリーンショット 2020-09-21 12.07.08.png
任意の環境を選ぶとインストール手順が表示される。今回はUbuntu18.04を使用。

ポイント

最後のsudo apt-get -y install cudaのみsudo apt install cuda-10-1と明示的にバージョンを指定したパッケージをインストールしたほうが良い。

トラブルシュート

スクリーンショット 2020-09-21 12.27.44.png

dpkg: アーカイブ /tmp/apt-dpkg-install-T6Cu3b/25-libcublas-dev_10.2.2.89-1_amd64.deb の処理中にエラーが発生しました (--unpack):
 '/usr/include/nvblas.h' を上書きしようとしています。これはパッケージ nvidia-cuda-dev 9.1.85-3ubuntu1 にも存在します
dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe)

別記事で環境構築に失敗するなどして、きれいにインストールができていない場合、別バージョンとバッティングすることがある。当該パッケージや、sudo apt uninstall cuda, 当該バージョンをsudo apt uninstall cuda-9-1などで削除してみる。バッティングが解消されればインストール可能。

確認

スクリーンショット 2020-09-21 12.53.23.png
nvcc -VでPATHが通っているCUDA Toolkitのバージョンを確認することができる。別記事で環境構築に失敗するなどして、きれいにインストールができていない場合、別のバージョンのCUDA Toolkitが表示されたりする。

トラブルシュート

スクリーンショット 2020-09-21 12.23.34.png
Ubuntuの場合は/usr/localにインストールしたCUDAのディレクトリがある。

.bashrc

export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib:$LD_LIBRARY_PATH"
export LIBRARY_PATH="/usr/local/cuda-10.1/include:$LIBRARY_PATH"

source ~/.bashrc
当該バージョンのインストールディレクトリを環境変数に追加するとちゃんと指定したCUDAバージョンを利用することができる。

CuPyのインストール

Python2ではCuPyの10.1までが利用できます。こちらも明示的にインストール。
pip install cupy-cuda101
正常に利用できない場合はライブラリが正常に読み込まれていない場合が多いので、前項を確認してみる。CuPyを自前でビルドしているなどで利用が省かれていなければCuPyを再インストールする必要はないはず。

これでCuPyが動作すると思われる。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2