GPU
CuPy

Cupy のインストールログ

More than 1 year has passed since last update.

はじめに

Preferred Network が開発を主導するNumpy互換GPU計算を行うライブラリ Cupy を使う必要があったのでインストールしました。

いくつかはまりポイントがあったので、備忘録を兼ねてここに書きます。
なお、この情報は執筆時のものです。
(執筆日時:2017/11/21)
すぐに古くなると思いますので、気をつけてください。

現象

  • グラフィックカードが認識されない
  • import cupy としたときに CuPy is not correctly installed. と言われる

というようなことが起こりました。

CUDAのインストール

まず、 Cupy をインストールするのに CUDA が必要です。
Cupyはnumpy互換なので、CUDAをインストールしなかった場合はNumpyが使われるのかなと
勝手に思っていましたが、そうではないみたいでした。

CPU, GPU両方で動くコードを作るためには、明示的に実装しないといけないみたいです。

環境

私の研究室には、GPUマシンが2台あります。

  • ml-server1 : GeForce GTX 1070 を2機搭載 Ubuntu 16.04
  • ml-server2 : GeForce GTX 1070 を1機搭載 Ubuntu 16.04

条件として、Tensorflow, Cupyともに同じマシンで動かすことがあります。
現在のCUDAの最新バージョンは 9.0 ですが、
現状 Tensorflow master はまだCUDA8.0にしか対応していません。
CupyはCUDA8.0にも対応しているため、ダウングレードしてインストールする必要があります。

NVIDIA ドライバのダウンロード

NVIDIA のドライバダウンロードサイト

http://www.nvidia.com/Download/index.aspx

から、OS・グラフィックカードに対応するドライバをダウンロードします。

現在は、384.98 というバージョンが最新です。
NVIDIA-Linux-x86_64-384.98.run というようなファイルがダウンロードされます。

デフォルトでUbuntuはグラフィックドライバを用いる lightdm というサービスを実行しています。
これを止めてからインストールを始めます。

sudo service lightdm stop
chmod +x NVIDIA-Linux-x86_64-384.98.run
sudo ./NVIDIA-Linux-x86_64-384.98.run

色々聞かれますが、とりあえずデフォルトの選択肢を選んでおけばよいです。

CUDA のインストール

Google で CUDA と検索してたどり着く先はCUDA9.0のダウンロードサイトなので、
頑張って8.0が置いてあるサイトを探します。

過去のアーカイブはここにあるようです。

https://developer.nvidia.com/cuda-toolkit-archive

ここでCUDA8.0 ga2をダウンロードします。
いくつかの形式を選ぶことができますが、とりあえずは実行ファイル形式の run ファイルをダウンロードすることにしました。

cuda_8.0.61_375.26_linux.run というファイルがダウンロードされます。

これも実行権限をつけて実行します。

chmod +x cuda_8.0.61_375.26_linux.run
sudo ./cuda_8.0.61_375.26_linux.run

色々聞かれるので、全てデフォルトを選んで…とするとハマります。

CUDA にはグラッフィクドライバも同梱されています。
cuda_8.0.61_375.26_linux.run の 375.26 はドライバのバージョンを指しているのですが
上でインストールしたバージョン 384.98 と異なります。

インストールダイアログの中で

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?

と聞かれるのですが、これで yes を選択すると、せっかくインストールしたドライバが上書きされ、
グラフィックカードを認識しなくなります。

ここは No を選ぶ必要があります。
CUDA toolkit をインストールするか聞かれますので、これは yes を選択してください。

最後に、Path にCudaを追加すれば完成です。

インストールの確認

インストールがうまくいっていれば

nvidia-smi

を実行するとGPUの使用状況が表示されます。

NCCLのインストール

Cupy のドキュメントでは、NCCL はなくてもよいと書かれています。
しかし、GPUが2機以上ある環境ではないと動かないようです。

Cupy のインストール

あとはドキュメントに従ってインストールを進めてください。