windows10のままでWSL2によるGPGPUを試してみる

windows10は「21H2」までアップグレードされている前提です
物理マシンのスペックは i7-4771(3.5GHz),16GB,NVIDIA T600 x2, windows10Pro です.
2021y11m20d_213520504.png

参照先: https://docs.microsoft.com/en-us/windows/ai/directml/gpu-cuda-in-wsl https://docs.nvidia.com/cuda/wsl-user-guide/index.html

wslコマンドでwindows10の中にLinuxをインストールします

「コントロールパネル」->「プログラムと機能」にある「windowsの機能の有効化または無効化」に関しては
特段操作はしていない。「Linux用Windowsサブシステム」「仮想マシンプラットホーム」は無効のままです。
その状態でコマンドプロンプトを起動させ、インストール可能なLinuxOSを調べてみる

C:\Users\supervisor>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
 
C:\Users\supervisor>

とある。ここではUbuntu-20.04を入れてみる.

C:\Users\supervisor>wsl --install -d Ubuntu-20.04
要求された操作には管理者特権が必要です。
 
C:\Users\supervisor>

っとそのままのコマンドプロンプトからでは無理そうで、「スタート」->「Windowsシステムツール」->「コマンドプロンプト」を右クリックで選択して、そのサブツリーから「その他」->「管理者として実行」を選ぶ。すると下記のようなコマンドプロンプトが現れる
2021y11m20d_215731308.png
そのうえで再度コマンドを実行します

C:\WINDOWS\system32>wsl --install -d Ubuntu-20.04
インストール中: 仮想マシン プラットフォーム               <--「windowsの機能の有効化または無効化」の1つ
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム             <--「windowsの機能の有効化または無効化」の1つ
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu 20.04 LTS
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
 
C:\WINDOWS\system32>

っで再起動を行う. 再起動後にログインを行うとUbuntu20.04のパネルが表示され処理が進められる.
しばらくすると、Ubuntu20.04の中でのアカウントを作るように促される
2021y11m20d_220900862.png
アカウント名はなんでも構わない. ここでは露軍しているwindowsOSと同じアカウントにしてみた.
この段階で「スタート」->「Ubuntu20.04」が登録され、それを選択するとUbuntu20.04のターミナルとなっている
2021y11m20d_221355481.png

GPU

この物理マシンにはNVIDIA T600が2枚搭載されている. だが、まだwindows側へのドライバーのインストールは行っていない.
デバイスマネージャーでは不確かなものとして掲示されている
2021y11m20d_221748641.png

ここでWSL向けのCUDAドライバーを入手する
https://developer.nvidia.com/cuda/wsl
NVIDIA T600がGeforceなのかQuadroなのか微妙なのだが、Quadraのドライバを入手した
「510.06_quadro_win11_win10-dch_64bit_international.exe」(737MB)
っでインストールを開始します
2021y11m20d_232607631.png
途中カスタムインストールを選ぶと何がインストールされるのかがわかり、規定で選ばれているすべてを選択します
2021y11m20d_232730773.png
ビデオドライバーとかが入るのだが、、WSLとか関係ないように見える...

っで再びデバイスマネージャを見ると、問題が解消されている
2021y11m20d_233041294.png

CUDA

これで一応windowsOS管理下にあるGPUがWSL側にも繋ぐようになった.
次にWSLのUbuntu20.04にCUDAライブラリをインストールします.
ただしLinuxのnvidiaドライバーはインストールしません. cuda-toolkitのみ入れます
CUDAダウンロードサイトの「WSL-Ubuntu」はnvidiaドライバーが入らない工夫が入っている. 一応いつものパッケージを入れてもいいが、nvidiaドライバーを外せばいいみたい

supervisor@DESKTOP-IKB1OC9:~$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
supervisor@DESKTOP-IKB1OC9:~$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
supervisor@DESKTOP-IKB1OC9:~$ wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda-repo-ubuntu2004-11-5-local_11.5.0-495.29.05-1_amd64.deb
supervisor@DESKTOP-IKB1OC9:~$ sudo dpkg -i cuda-repo-ubuntu2004-11-5-local_11.5.0-495.29.05-1_amd64.deb
supervisor@DESKTOP-IKB1OC9:~$ sudo apt-key add /var/cuda-repo-ubuntu2004-11-5-local/7fa2af80.pub
supervisor@DESKTOP-IKB1OC9:~$ sudo apt-get update
 
supervisor@DESKTOP-IKB1OC9:~$ sudo apt-get install -y cuda-toolkit-11-5

その後ターミナルにて

supervisor@DESKTOP-IKB1OC9:~$ nvidia-smi
Sun Nov 21 00:05:13 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.00       Driver Version: 510.06       CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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 T600         On   | 00000000:01:00.0 Off |                  N/A |
| 38%   35C    P8    N/A /  41W |    132MiB /  4096MiB |     N/A      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA T600         On   | 00000000:05:00.0 Off |                  N/A |
| 38%   32C    P8    N/A /  41W |    132MiB /  4096MiB |     N/A      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
 
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
supervisor@DESKTOP-IKB1OC9:~$

と表示される。

メモ

...メモリーは潤沢にあったほうがいい. 16GBではwindowsOSは問題ないけどWSLなOS達を考慮すればもっとあっていい.


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-11-21 (日) 00:19:13 (62d)