「仮想環境上のUbuntuからGPUを利用したい」
「WSLでGPUパススルーを行いたい」
このような場合には、この記事の内容が参考になります。
この記事では、WSLを使ってGPUパススルーを行う方法を解説しています。
本記事の内容
- WSLを使うメリットはGPUパススルーである
- Windows 11における作業
- Ubuntuにおける作業
それでは、上記に沿って解説していきます。
WSLを使うメリットはGPUパススルーである
正直、WSLは仮想環境としてはイマイチな印象です。
個人的には、VirtualBoxとVagrantの組み合わせが最強だと思います。
しかし、その最強コンビにも弱点があります。
その弱点とは、インストールしたUbuntuなどからGPUが利用できないということです。
正確には、GPUパススルーが非常に困難だと言えます。
それだけのためにBIOSを触ることは、したくありません。
それに対して、WSLの場合は簡単にGPUパススルーが実現できます。
これが、WSLを利用する最大のメリットだと感じます。
何と言っても、NVIDIAが公式にサポートしているのが大きいですね。
ドキュメントも用意してくれています。
CUDA on WSL :: CUDA Toolkit Documentation
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started-with-cuda-on-wsl
このドキュメントをもとに、必要な作業を説明していきます。
やはり、公式のマニュアルというのは安心できます。
特にハードが関係する以上、余計にそう感じます。
ソフトウェアだけの話なら、そこまで公式マニュアルにこだわる必要もありませんけどね。
以上、WSLを使うメリットはGPUパススルーであることについて説明しました。
次は、Windows 11における作業を説明します。
Windows 11における作業
Windows 11での作業から行います。
Ubuntuにはログインしていない状態です。
その状態で以下の作業を進めていきます。
- GPUサポート用NVIDIAドライバのインストール
- WSLのインストール・更新
- WSLによるディストリビューションのインストール
GPUサポート用NVIDIAドライバのインストール
NVIDIAグラフィックドライバーがインストールされている必要があります。
おそらく、GPU搭載マシンであれば真っ先にしているはずです。
ドライバのバージョンが古い場合は、新しいモノにしておいた方がよいでしょう。
いづれの場合でも、次の記事が参考になります。
WSLのインストール・更新
WSLのインストールは、次の記事で説明しています。
WSLがインストール済みなら、最新版に更新する必要があります。
最新にするには、次のオプションを用います。
--update Linux 用 Windows サブシステム パッケージを更新します。
最新であれば、次のように表示されます。
PS C:\Users\win11> wsl --update 更新プログラムを確認しています。 Linux 用 Windows サブシステムの最新バージョンは既にインストールされています。
WSLによるディストリビューションのインストール
WSLを用いてディストリビューションをインストールします。
ディストリビューションのインストールについても、次の記事で解説しています。
まとめ
NVIDIAグラフィックドライバーがインストール済みであれば、ほぼ対応は完了しています。
あとは、WSLでUbuntuなどをインストールすれば終わりです。
もちろん、これはWindows 11でWSL 2というのが前提になります。
Windows 11が動くGPU搭載マシンであれば、大したことをする必要がないということです。
以上、Windows 11における作業を説明しました。
次は、Ubuntuにおける作業を説明します。
Ubuntuにおける作業
Ubuntuにおける作業は、WSL用のCUDAをインストールすることになります。
そして、UbuntuにはNVIDIAドライバのインストールが不要です。
作業を行うUbuntuは以下のバージョンとなります。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal
では、Ubuntuに「wsl」コマンドでログインした状態で作業を進めます。
まず、古いGPGキーを削除します。
キーがあってもなくても、次のコマンドを実行しておきましょう。
sudo apt-key del 7fa2af80
次に、インストール対象のCUDAのパッケージを取得します。
必要であれば、「11.7」を「11.8」などに置き換えてください。
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.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update
ここまで実行すると、「cuda」パッケージが認識できるようになっています。
指定したバージョン通りですね。
$ sudo apt info cuda Package: cuda Version: 11.7.0-1 Priority: optional Section: multiverse/devel Maintainer: cudatools <cudatools@nvidia.com> Installed-Size: 7,168 B Depends: cuda-11-7 (>= 11.7.0) Download-Size: 2,406 B APT-Sources: file:/var/cuda-repo-wsl-ubuntu-11-7-local Packages Description: CUDA meta-package Meta-package containing all the available packages required for native CUDA development. Contains the toolkit, samples, driver and documentation.
バージョンを確認できたら、CUDAをインストールしましょう。
sudo apt-get -y install cuda
インストールが完了したら、「nvidia-smi」コマンドが利用できるようになっています。
$ nvidia-smi --query-gpu=name,memory.total,memory.free --format=csv,noheader NVIDIA GeForce RTX 3090, 24576 MiB, 23599 MiB
ちゃんとGPUが認識されていますね。
Ubuntuでの作業は、Windowsでの作業よりも簡単です。
以上、Ubuntuにおける作業を説明しました。