前回は、WSL2からGPUが利用可能になったことを紹介したが(「Windows 10のWSL2からGPUが使えるようになった」)、今回はその続きとしてWSL2でGPUを使う設定を実際にしてみる。いくつか条件はあるものの、作業自体はそれほど難しくない。ただし、GPU利用といっても現時点では計算処理、特にNVIDIAのGPUを使った機械学習関係の処理が主な目的となるので、この分野に興味がないとせっかく設定しても使い道に困るかもしれない。
ここでは、NVIDIAのGPUを搭載したマシンに「CUDA on WSL」を、WSL2側にDockerなどをインストールして、NVIDIAが機械学習用に提供しているコンテナーを動かしている。いわゆるAI開発用の環境だが、これまで、Linuxをインストールしたマシンを用意するのが普通だった。しかし、CUDA on WSLを使えば、WindowsマシンのWSL2から同じようにGPUを利用できるようになる。
WSL2における正式なGPU対応は、来春のアップデート(21H1)以降と思われるが、別途Linuxマシンを用意することなく、機械学習の標準的な環境を整備できるというのはかなり有益だ。筆者も3年ぐらい前にNVIDIA GPUを搭載するゲーミングノートにLinuxをインストールしてNVIDIAの機械学習環境を整備したことがあるのだが、かなり苦労した記憶がある。その体験からすると、こんなに“簡単”にできるようになるとは、まさに技術の進歩であると感じた。
まずはDevチャンネルに参加して
最新のプレビュービルドを利用することが必要
今回は、GeForce GTX960Mを内蔵したデルのXPS15 9550で作業を行った。4~5年前に買った機種なのだが、15インチノートなのでちょっと持て余していたところ。ようやくそれらしい使い方ができるようになった。いまのところWSL2上のCUDAは、NVIDIA GPU向けなので、ディスクリートGPU搭載は当然なのだが、前回も少し解説したように、ThunderBold 3接続の外部エンクロージャーにGPUボードを設置しても、同じように設定するだけで大丈夫だ(特に設定上の違いはない)。
WSL2からGPUを使うには、Windows Insider Programに登録、マシンをDevチャンネルに登録して、最新のプレビュービルドを入手する必要がある。正規版のWindows 10 Ver.2004ではまだ動作しない。
現在のDevチャンネルのプレビューなら、デスクトップ右下にビルド番号表示が出ているはずなので、特に確認は不要だろう。なお、蛇足ながら、Devチャンネルに登録してプレビュービルドをインストールしてしまうと、正規版に戻るにはWindowsの再インストールが必要となるので注意してほしい。
大まかな流れとしては、
WSL2のインストール
Windows側でのドライバーインストール
WSL2側でのツールインストール
の3段階となる。なお、WSL2のインストールに関しては、今年3月の記事(「20H1の完成とともにWindows Subsystem for Linux 2が来る」)、にまとめてあるので再度解説しない。
本記事では、Ubuntu-18.04をLinuxディストリビューションとして利用しているとして解説を進める。他のディストリビューションでも可能と思われるが、glibcを使うディストリビューションでないと対応できないようだ。なお、マイクロソフトの文書では、Ubuntu以外にはDebianも挙げられている。
WSL2のインストールは標準でかまわないが、最新のLinuxカーネルをインストールしておく必要がある。WSL2からのGPU利用では、カーネルバージョン4.19.121.1以上が必要とされている。更新は、Windows Updteで行われるため、「設定」→「更新とセキュリティ」→「Windows Update」→「詳細オプション」で「Windowsの更新時に他のMicrosoft製品の更新プログラムを受け取る」をオンにしておく必要がある。
条件を満たせば、Windows Updateで「更新プログラムのチェック」を行ってLinuxカーネルがアップデートできるはずである。なお、wsl.exeのドキュメントによれば、アップデートは、
wsl.exe --update
で確認、実行できるはずである。

この連載の記事
-
第477回
PC
Windowsで2つの文字列を同時に含むテキストファイルを探す方法を考える -
第476回
PC
さらばSkype! Windows&MSのコミュニケーションアプリの30年 -
第475回
PC
Windowsのコマンドラインの補完機能について解説 -
第474回
PC
Windowsでのコマンドラインのヒストリ機能 -
第473回
PC
Windowsは内部的にどうやってインターネットへの接続状態を確認している? -
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? - この連載の一覧へ