みらいテックラボ

音声・画像認識や機械学習など, 週末プログラマである管理人が興味のある技術の紹介や実際にトライしてみた様子などメモしていく.

WSL2を用いたUbuntu環境を構築

この夏(2022年)に, 下記のようなスペックのWindows PCを導入した.

CPU : AMD Ryzen7 5800X
RAM : 16GB
OS : Windows 11 Pro
SSD + HDD : 500GB + 6TB
etc : 水冷クーラー

これまではWindowsマシンでUbuntuを使用する場合, VMPlayerやVirtual Boxを利用していた.
しかし今回は, 以前使用していたGeForce GTX1060-6GBを使い, UbuntuからCUDAを使えるようにしたい.
そこで, WSL2を用いてUbuntu環境を構築し, UbuntuでCUDAが利用できるようにしてみた.
ネット上にすでにいろいろと情報はあるが, 一応メモとして記しておく.


1. Ubuntu 20.04環境構築[1]
Windows 10からWSL(Windows Subsystem for Linux)が使用できるようになったことは知っていたが, Windows 11になってより簡単にWSLをインストールできるようだ.
[手順]
コマンドプロンプトを管理者権限で実行する.
ディストリビューションを確認する.

C:\Windows\system32>wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS

Ubuntu 20.04を指定してインストールする.

C:\Windows\system32>wsl --install -d Ubuntu-20.04


2. 日本語環境構築[2]
こちらのQiita記事で紹介されているスクリプトを利用させてもらう.
スクリプトを実行
Ubuntuを起動し, ダウンロードしたスクリプトを実行する.

$ wget https://astherier.com/static/blog/2021-07-11/japanize-wslg.sh
$ bash japanize-wslg.sh

スクリプト内でやっている処理について知りたい方は, 記事内の「WSL2 & WSLgを日本語化する(ステップ・バイ・ステップ)」でご確認ください.
Ubuntuの再起動
先ほどの設定を反映させるために, Ubuntuを再起動する.
③ 入力メソッドの設定

$ fcitx-config-gtk3

入力メソッドの設定が開くので, 「入力メソッド」タブの左下の「+」をクリックし,

  • Keyboard - 日本語
  • Mozac

を追加する.
「Keyboard - 日本語」が最上位になるように, 位置を修正する.
次に「Keyboard - 英語(US)」を選択し, 「-」をクリックして削除する.
最終的に以下のようになっていればOK.

④ 入力モード切替の設定
「全体の設定」タブで, 入力モードの切り替え「Trigger Input Method」を「Zenkakuhankaku」に指定する.
Emptyになっている場合は, そこをクリックして半角/全角キーを押すと, 半角/全角キーで入力切り替えできるようになる.

⑤ 動作確認
ターミナルソフトなどを起動し, 半角/全角キーで日本語入力モードに切り替え, 日本語入力を試してみる.

$ sudo apt -y install lxterminal
$ lxterminal


3. CUDA/cuDNN導入[3]
WSL2でCUDA/cuDNNをインストールする.
⓵ GTX-1060のドライバソフトインストール
ここから, GTX-1060用のWindowsドライバソフトをダウンロードし, インストールする.

② CUDAインストール
ここから, Ubuntu 20.04用のCUDA Toolkitをダウロードし, インストールする.

$ 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.7.1/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.1-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.1-1_amd64.deb
$ sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda

③ cuDNNインストール
ここから, Ubuntu 20.04用のcuDNNをダウンロードし, インストールする.

$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.5.0.96_1.0-1_amd64.deb

④ 動作確認
Ubuntuを再起動して, GPUを認識しているか確認する.

$ nvidia-smi
Fri Sep 23 10:57:49 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01    Driver Version: 516.94       CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:07:00.0  On |                  N/A |
| 40%   33C    P8     7W / 120W |    893MiB /  6144MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       376      C   /python3.9                      N/A      |
+-----------------------------------------------------------------------------+

とりあえず, Windows上にWSL2を用いたUbuntu環境の構築完了.
あとは, PyTorchやTensorFlow2など, 普段通りに機械学習環境を作ればよい.

----
参照URL:
[1] Windows 11でWSL2がさらに進化、1コマンドで導入可能に
[2] Win11のWSL2 (WSLg)を日本語化 & Mozcで日本語入力
[3] CUDA on WSL :: CUDA Toolkit Documentation