WSL 2 で DirectML を使った PyTorch を有効にする

DirectML を使用した PyTorch は、開発者が Windows マシン上で最新かつ最高級の AI モデルを試すための使いやすい方法を提供します。 torch-directml PyPi パッケージをインストールすることで、DirectML で PyTorch をダウンロードできます。 設定が完了したら、サンプルから始める、または AI Toolkit for VS Code を使用することができます

Windows のバージョンを確認する

Windows Subsystem for Linux (WSL) 2 の torch-directml パッケージは、Windows 11 (ビルド 22000 以降) 以降で動作します。 ビルド バージョン番号を確認するには、実行コマンド (Windows ロゴ キー + R) を使用して winver を実行します。

GPU ドライバーの更新プログラムを確認する

最新の GPU ドライバーがインストールされていることを確認します。 設定アプリの [Windows Update] セクションで [更新プログラムのチェック] を選択します。

Torch-DirectML を設定する

WSL 2 のインストール

Linux 用 Windows サブシステム (WSL) 2 をインストールするには、「WSL のインストール」の手順を参照してください。

次に、microsoft/wslg GitHub リポジトリの README.md ファイルの手順に従って、WSL GUI ドライバーをインストールします。

Python 環境を設定する

WSL 2 内に仮想 Python 環境を設定することをお勧めします。 仮想 Python 環境の設定に使用できるツールは多数あります — このトピックでは、Anaconda の Miniconda を使用します。 このセットアップの残りの部分では、Miniconda 環境を使用するものとします。

Anaconda のサイトのLinux インストーラー ガイダンスに従うか、WSL 2 で次のコマンドを実行して、Miniconda をインストールします。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 
bash Miniconda3-latest-Linux-x86_64.sh

Miniconda がインストールされたら、pytdml という名前の Python 環境を作成し、次のコマンドでアクティブ化します。

conda create --name pytdml -y
conda activate pytdml

PyTorch と Torch-DirectML をインストールする

Note

torch-directml パッケージは PyTorch 2.2 までをサポートします。

セットアップに必要なのは、次のコマンドを実行して torch-directml の最新リリースをインストールすることのみです。

pip install torch-directml

検証とデバイスの作成

torch-directml パッケージをインストールしたら、2 つのテンソルを追加することで、正常に実行されることを検証できます。 最初に対話型の Python セッションを開始し、次の行で Torch をインポートします。

import torch
import torch_directml
dml = torch_directml.device()

torch-directml プラグインの現在のリリースは、"PrivateUse1" Torch バックエンドにマップされています。 torch_directml.device() API は、テンソルを DirectML デバイスに送信するための便利なラッパーです。

DirectML デバイスを作成したら、2 つの単純なテンソルを定義できるようになりました。1 を含む 1 つのテンソルと 2 を含む別のテンソルです。 テンソルを "dml" デバイスに配置します。

tensor1 = torch.tensor([1]).to(dml) # Note that dml is a variable, not a string!
tensor2 = torch.tensor([2]).to(dml)

テンソルを一緒に追加し、結果を出力します。

dml_algebra = tensor1 + tensor2
dml_algebra.item()

次の例のように、出力される数値 3 が表示されます。

>>> import torch
>>> tensor1 = torch.tensor([1]).to(dml)
>>> tensor2 = torch.tensor([2]).to(dml)
>>> dml_algebra = tensor1 + tensor2
>>> dml_algebra.item()
3

DirectML を使った PyTorch のサンプルとフィードバック

DirectML を用いた PyTorch とのその他の使用方法については、サンプルを参照してください。 問題が発生した場合、または DirectML を使った PyTorch のパッケージに関するフィードバックがある場合は、こちらの Microsoft のチームまでお問い合わせください