アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

Windows 10 Home 21H2 + WSL2 + Ubuntu 20.04LTS環境にcudaをインストールする

最近、機械学習をいろいろと触っている。その関係で家のゲーミングPCに機械学習の環境を構築はしたけど、知識不足でcuda(GPUを使うやつ)環境はインストールできていない。
以前に導入を試みた際は、Windows 10ではcuda on WSL2が正式サポートされておらず、Windows Instant Preview版を使う必要があるという情報を見ていたため、チャレンジする前にあきらめた。
docs.microsoft.com

上記の情報により、最新版のバージョン21H2では正式にcuda on WSL2がサポートされたとのことなので、早速導入してみた。
今回の記事は自分が導入のために行った手順をまとめたものである。

現在の環境

Windows 10 Home + WSL2 + Anacondaで機械学習環境を作っている。
conda infoの結果は以下の通り。

 conda info

     active environment : None
            shell level : 0
       user config file : /home/nakajo/.condarc
 populated config files :
          conda version : 4.10.3
    conda-build version : 3.21.4
         python version : 3.8.8.final.0
       virtual packages : __linux=5.10.60.1=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/nakajo/anaconda3  (writable)
      conda av data dir : /home/nakajo/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/nakajo/anaconda3/pkgs
                          /home/nakajo/.conda/pkgs
       envs directories : /home/nakajo/anaconda3/envs
                          /home/nakajo/.conda/envs
               platform : linux-64
             user-agent : conda/4.10.3 requests/2.25.1 CPython/3.8.8 Linux/5.10.60.1-microsoft-standard-WSL2 ubuntu/20.04.2 glibc/2.31
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

※Anacondaはどうやってインストールしたか忘れた。。。何かインストーラー使ってインストールした気がする。

Windowsの情報は以下の通り。

エディション	Windows 10 Home
バージョン	21H2
インストール日	2020/07/05
OS ビルド	19044.1415
エクスペリエンス	Windows Feature Experience Pack 120.2212.3920.0

WSLのバージョン

$ wsl cat /proc/version
Linux version 5.10.60.1-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Wed Aug 25 23:20:18 UTC 2021

nvidiaのドライバを更新する

developer.nvidia.com
から、cuda on WSLに対応したGraphic Driverをダウンロードしてインストールする。自分が使っているグラボはGeforce系なので、Geforceのドライバをインストールした。
ドライバの更新はインストーラーに従って次へを押すだけなのですんなりと終了。
インストール後のドライバ情報は以下の通り。

graphic driver

cudaをインストールする

developer.nvidia.com
上記公式サイトの手順に従って、WSL2のUbuntu 20.04にcudaをインストールする。

以下のコマンドをそれぞれ実行した。ここでも特にエラーが発生して詰まるようなことはなく、すんなりとインストールは完了した。

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda-repo-wsl-ubuntu-11-5-local_11.5.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-5-local_11.5.1-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-5-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

cudaの動作確認

cudaをインストールするとサンプルプログラムもインストールされる。
サンプルプログラムの"deviceQuery"を実行してcudaとGPUの環境が認識できているか確認する。
以下の手順で実行できる。

$  cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$  sudo make
$  ./deviceQuery

自分の環境の実行結果は以下であった。

cuda deviceQuery result
cuda deviceQuery result