このページの本文へ

前へ 1 2 次へ

Windows Info 第233回

WSL2にCUDA on WSLをインストールする

2020年07月19日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

CUDA for WSLのインストール

 次にWindows 10側でNVIDIAが提供する「CUDA on WSL」をインストールする(WSL2側でないことに注意されたい)。なお、ダウンロードには、NVIDIA Developer Program Membershipへの登録が必要である。

 EXEファイルが入手できるので、これを実行してインストールする。インストール後にNVIDA GPU用の「GeforceExpreience」が起動する。これは、NVIDIA提供のGPUドライバーをインストールすると必ずインストールされ、ドライバーのアップデートなどをするものだ。これもデバイスドライバーの更新などにはユーザー登録(Googleアカウントなどが利用できる)が必要となる。NVIDIA、MicrosoftのドキュメントともにGPUドライバーのバージョンについての記述はないが、最新ドライバーにしておくべきだろう。

WSL2側で必要な処理

 WSL2側での処理は大きく以下のとおり。

Docker-CEのインストール
NVIDIA Container Toolkitのインストール
Dockerデーモンの再起動

 それぞれ、Linuxのコマンドだが、ここでは特に意味を説明しない。詳細は、以下のNVIDIAの文書にある。

●CUDA on WSL :: CUDA Toolkit Documentation
 https://docs.nvidia.com/cuda/wsl-user-guide/index.html

 まずは、以下のコマンドでDocker-CEをインストールする。

curl https://get.docker.com | sh

WSL2上でdocker-CEをインストールする。途中、Docker Desktopのインストールを誘惑するような文章が表示されるが、Ctrl+Cを押さず、そのまま待つとスクリプトは進行し続ける

 途中、WSLを見付けたのでDocker Desktopにしませんか的な英語のメッセージが出るが、放っておくと、処理が先に進む。ここで慌てて止めないように。

 次にNVIDIA Container Toolkitをインストールする。面倒だが、以下のリストの6行のコマンドを実行させる。

以下のリストのコマンドを入れると、出力がわーっとでるが、エラーがなければ何もしなくていい

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2

前記NVIDIAの文書に同じものがあるので、そちらをコピーして使うといいだろう。この記事の表示を使うには折り返しなどに注意されたい。

 リストのコマンドの出力が終わって、プロンプトに戻ったら、以下の2つのコマンドを実行する。これでDockerデーモンが再立ち上げされ、準備が整う。

sudo service docker stop
sudo service docker start

 特にエラー表示などがなければ、インストールはうまくいったはずだ。

とりあえず、ホントに動くか試してみる

 では、サンプルのコンテナーを動かして試してみることにしよう。以下のDockerコマンドを入れてみる(記事冒頭の画面)。

sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

 コンテナーのダウンロードが開始され、実行には数分かかる。まあ、表示を見ていればわかると思うが……。コマンド出力の最後に

GPU Device 0: "GeForce GTX 960M" with compute capability 5.0

といった表示が出れば、WSL2側でCUDAが正しく動作していることになる。コマンド出力の最後に実行結果が表示されるが、これは、GPUにより違いが出る。

 コマンドがちょっと面倒だが、WSLやコマンドラインを使い慣れているユーザーなら特に問題なく設定できるはずだ。これで、少なくとも機械学習関係は、Linuxマシンを用意することなく、Windowsマシンで代用が可能になる。あとはDIGITSなり、なんなりを動かすだけだ。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン