仮想環境のUbuntuからのGPU利用【WSL on Windows 11】

仮想環境のUbuntuからのGPU利用【WSL on Windows 11】 サーバー

「仮想環境上の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における作業を説明しました。

タイトルとURLをコピーしました