「AI日常化挑戦する会社」

現在位置:

Windows Subsystem for Linux Ver2 

5月にリリースされました「Windows 10 May 2020 Update」に搭載されたWSL2(Windows Subsystem for Linux Ver2)

 

今までのWSLとは違い、Linux Kernelが搭載されるようになりました。
この恩恵のおかげでWSLの活用がどんどん増えていくと思います。

現在、WSL2ではGPUを使用するCUDA計算が出来ません。
しかしMicrosoft社が現在開発中ですが将来WSL2上でCUDA計算を行う事が出来るようになります。

今回、一足先にPreview版のWindows Updateを行いWSL2上でDockerを構築しCUDAを実行してみたいと思います。

 

流れは、以下の順になります

1. Windows Updateを行い、「Windows 10 May 2020 Update」まで適用する
2.「Windows Insider Preview」の設定を行う
3.「NVIDIA Drivers for CUDA on WSL」のインストールを行う
4.「WSL2」の設定を行う
5.「WSL2」上で「Docker」の構築を行う
6. 実際にDockerを動かし、GPU計算を行う

 

まず、「Windows 10 May 2020 Update」まで行います。
WindowsのUpdateは、Windowsの設定から「更新とセキュリティ」を開き「Windows Update」を行います。

 

その後Insider Preview の設定を行います。 設定は「更新とセキュリティ」を開き「Windows Insider Preview」を開きます。
そこから「開始する」ボタンを押し設定を行っていきます。

設定の際に、Microsoftアカウントが必要になります。

途中で「Insiderの設定」項目があり「Devチャンネル」「ベータチャンネル(推奨)」「リリースプレビューチャンネル」とありますが「Devチャンネル」を選択します。

 

設定が終わりましたら、「Windows Update」を開きUpdateを行い再起動します。

 

起動しましたら、「コマンドプロンプト」を立ち上げ「ver」と入力し、最新のヴァージョン(20150以降)になっているか確認します。

 

次に、「NVIDIA Drivers for CUDA on WSL」のインストールを行います。nVIDIAサイトより、ドライバをダウンロードしてきます。

(https://developer.nvidia.com/cuda/wsl)

 

「Get CUDA Driver」をクリックし、「GEFORCE DRIVER」「QUADRO DRIVER」のどちらかをダウンロードします。 環境によりどちらかを選択して下さい

今回の環境は「GEFORCE RTX 2080Ti」を搭載していますので「GEFORCE DRIVER」を選びます。ダウンロードする際は、「NVIDIA Developer Program」に参加しログインが必要になります。登録を行っていない場合は「Join now」をクリックし登録を行って下さい。ログインが出来ましたら、ダウンロードを行う事ができます。

ダウンロードしたファイルを実行し、インストールを行います。
WSLに対応したドライバがインストールされます。

 

次に、WSL2の設定を行います。
初めてWSLの設定を行う場合は準備が必要です。
Windowsの設定から「アプリと機能」を開き「オプション機能」をクリックし「Windowsのその他の機能」をクリックします。

 

「Linux用Windowsサブシステム」と「コンテナー」と「仮想マシンプラットフォーム」にチェックを入れ「OK」を押します。

 

ここまでで、WSLの準備ができましたので、今度はWSL2の準備を行います。

管理者モードでコマンドプロンプトを開き、下記のコマンドを入力します。
「wsl --set-default-version 2」

次に「Microsoft Store」よりWSL用のLinuxをインストールします。

ここでは、Ubuntu18.04をインストールしました。

 

長かった、下準備が終わりましたのでここからはWSL2上での設定になります。

インストールしたWSL用のLinuxを起動します。
続いて下記のコマンドを入力します。

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

 

次に、「NVIDIA Container Toolkit」のインストールを行います。
「NVIDIA Drivers for CUDA on WSL」をダウンロードしたサイトにユーザーガイドがあります。
手順はそこにも記載がありますが、下記のコマンドを実行します。

$ 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
$ sudo usermod -aG docker $USER

ここでは、Ubuntu18.04をインストールしました。

 

インストールを行っただけですので、Dockerデーモンが起動していません。
必ず下記のコマンドを実行して下さい。

「sudo service docker start」

実行していない場合は下記のエラーが出ます。

「docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'. 」

その際も、「sudo service docker start」を実行しDockerデーモンを起動させます。

さてここまでで構築が完了しました。

 

次回は、実際に、WSL2上でCUDAを実行してみたいと思います。