PyTorchの実行とGPUでの計算は別々に確認できます。ROCm 10.1では、AMDが示すフレームワーク対応表とPython環境の実際のホイールを合わせてから、GPU認識を確認します。ここでは確認する値と、CPU実行になった場合の切り分け順を説明します。
ROCmとPyTorchの版数
AMDの10.1リリースノートには、ROCm 10.1向けに検証されたPyTorch版とPython版がOS別に載っています。LinuxとWindowsでは対応するPython版の範囲が異なります。AMDのPyTorch導入ページで、OS、GPU系列、インストール方式を選んでからコマンドを採用します。10.1の環境には、同じ系列向けのホイールを揃えます。
PyTorchは複数の配布経路を持ちます。PyTorch本家の導入ページは一般のインストール候補を表示し、AMDはROCm 10.1と組み合わせた検証済みのホイールを案内します。目的がROCm 10.1の利用なら、まずAMDが指定する組み合わせを基準にすると、ドライバー・SDK・フレームワーク間の版数を合わせやすくなります。
GPU認識の三段階
第一段階はOSがカードを認識しているかです。次にROCmランタイムが製品のgfx番号を列挙できるかを調べます。最後にPyTorchが演算デバイスとして使えるかを確認します。LinuxではAMDの導入資料がrocminfoやamd-smiを例示します。Windowsなら対応ドライバーが入っているかと、Python環境のパッケージ情報を先に確かめます。
Radeon RX 9070 XTはgfx1201です。AMDのPythonパッケージでは、GPU向けコードを選ぶdevice-gfx1201のような指定が出てきます。パッケージに対応アーキテクチャのコードが無ければ、ドライバーがカードを認識してもアプリ側の実行に進めません。
PyTorchの確認コード
PyTorch本家は、ROCm版でもtorch.cuda.is_available()のAPIを使うと説明します。次のコードは現在の仮想環境でGPUが見えるかを調べる最小の確認です。cudaという名前はPyTorchのAPI名で、ROCm版がNVIDIAのドライバーを使っている意味ではありません。
import torch
print(torch.__version__)
print(torch.version.hip)
print(torch.cuda.is_available())
if torch.cuda.is_available():
print(torch.cuda.get_device_name(0))
torch.version.hipはROCmビルドの情報を知る手掛かりです。Falseが出た場合は、導入したPyTorchがCPU向けのホイールになっていないかを先に調べます。Windowsでpipを別のPythonに向けて実行した、仮想環境を有効にしていなかった、といった状態も結果に表れます。
演算までの確認
GPU名の表示だけでは、実際のテンソル演算を試していません。小さなテンソルをGPUへ置き、演算の結果を読むと、デバイス転送と計算の両方を確認できます。PyTorchのROCm版ではデバイス表記にcudaを使うため、GPUが利用できる場合の実行は次の形です。
x = torch.ones(4, device="cuda")
print((x * 2).cpu())
ここでエラーになれば、表示されたメッセージと最初の認識結果を合わせて確認します。たとえばGPU列挙は成功しているのに演算で失敗するなら、ドライバーとランタイム、GPU向けコードの版数の組み合わせに焦点を当てられます。大きな画像生成ワークフローを最初に実行するより、原因が限定されます。
アプリ導入への接続
PyTorchのGPU演算が通った後にComfyUIを入れるなら、ComfyUI側が要求するPyTorch版を照合します。公式READMEが別のROCm系列を固定している時は、同じ仮想環境に上書きしない方が版数関係を追えます。vLLMにも独自のホイールとPython版の条件があります。ComfyUIの版数整理とvLLMの導入条件でそれぞれ扱います。
フレームワークごとのPython環境
AMDの10.1対応表ではPyTorchの検証版と、vLLMが要求するPyTorch版が同じ行にありません。PyTorch単体で学習や推論を試す環境と、vLLMのサーバーを動かす環境は仮想環境を分けると版数を固定できます。どちらかの依存パッケージを更新した結果、もう一方の起動条件から外れる問題も避けられます。
GPUを複数枚搭載したPCでは、最初のデバイス名だけで全GPUの状態は判断できません。torch.cuda.device_count()で件数を表示し、各番号の名称を列挙すれば、期待するカードがPythonから見えるかを確認できます。実際の演算に使う番号を選んだ後に、対象のGPUへ小さなテンソルを置くのが次の段階です。
まとめ
ROCm 10.1でのPyTorch確認は、対応表、ランタイムのGPU列挙、PyTorchのGPU認識、短いテンソル演算の順です。結果がCPU実行なら、仮想環境内のホイールとドライバーを優先して調べます。環境をこれから作る場合はWindowsまたはUbuntuの導入条件から始めてください。
