LoginSignup
2
4

More than 1 year has passed since last update.

Windows安定版のDockerでGPUを認識させる

Last updated at Posted at 2021-12-06

本記事は the sense アドベントカレンダー2021の7日分です!

本記事を書くにあたった経緯

2月に Winsows Insider Preview Dev Channel で Docker に GPU を認識させました。

それ以降、 Windows の更新に伴って定期的に実行環境が動かなくなり、その都度 Windows のクリーンインストールを繰り返していました。 2021/12/02 に例によって Docker エンジンが立ち上がらなくなり、クリーンインストールをかけました。その際、ついに Windows 安定版でも Docker コンテナに GPU が認識されたので手順、環境を記事にしておきます。

実行環境

ハードウェア

GPU 、マザーボードあたりは動作が依存していると思います。

項目 型番
CPU Ryzen 7 5800X
メモリ CMK64GX4M2E3200C16
GPU GeForce RTX 3070 VENTUS 2X OC
マザーボード B450 GAMING PLUS MAX

ソフトウェア

項目 バージョン
BIOS 7B86vHA
Windows 21H2(22000.348)
NVIDIA グラフィックスドライバー 510.06
Windows Subsystems for Linux Update 5.10.60.1
Windows Subsystems for Linux WSLg Preview 1.0.26
Docker Desktop 4.2.0

手順

WSL2のインストールと設定

Microsoft Store で Ubuntu 20.04 LTS をインストールします。

インストール後、 Ubuntu 20.04 LTS を起動してユーザ名、パスワードの設定まで行います。

Windows の Powershell などで次を実行して「仮想マシンプラットフォーム」を有効にします。「Windows の機能の有効化または無効化」からでも有効化できます。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

実行後再起動します。「Windows の機能の有効化または無効化」からの場合は再起動するか聞かれます。

NVIDIA Driver のインストール

developer.nvidia.com のページから NVIDIA Driver のインストーラをダウンロードします。

インストーラで「高度な設定」を選んで必要なドライバ以外(一番上のチェックを外せないもの以外全部)のチェックを外さないと余計な NVIDIA のソフトウェア(サウンドドライバなど)がインストールされるので注意してください。

Docker Desktopのインストールと設定

Docker Desktop for Windowsのインストーラをダウンロードしてきてインストールします。 winget にもあるのでそちらでも大丈夫です。

Docker Desktopを起動して 右上のアイコンの設定 > Resources > WSL Integration と進みます。
Enable integration with my default WSL distro のチェックボックスは初期状態でONになっています。
Enable integration with additional distros: の下にあるトグルスイッチをONにしてWSL Integratioを有効化します。この記事の手順だと Ubuntu-20.04 だけがあるはずです。

動作確認

ベンチマークテストです。問題なく動けば環境構築は完了です。

docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --gpus all --rm -it nvcr.io/nvidia/tensorflow:21.08-tf2-py3

まとめ

  • Windows 安定版で Docker が GPU を認識してくれるようになっている
  • 必要な手順は基本的にこれまでと変わらない

参考記事

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4