← Python and ROCm 教室へ戻る

第1章

GPUが見えるか確かめたい

最初の一歩は、「この環境で GPU が使えるのか」を自分の目で確かめることです。

📌 この章を始める前に: Quickstart または 第0章 で ROCm と PyTorch のセットアップが済んでいることを前提にしています。まだの方は先にそちらを終わらせてから戻ってきてください。

今日は何をしたい?

ROCm 版 PyTorch が入っていて、いまの PC から GPU が見えているかを短いコードで確認します。HIPGPU availableDevice count の 3 つが読めればこの章は完了です。

確認コード

import sys
import torch

print("Python:", sys.version.split()[0])
print("Torch:", torch.__version__)
print("HIP:", torch.version.hip)
print("GPU available:", torch.cuda.is_available())
print("Device count:", torch.cuda.device_count())

if torch.cuda.is_available():
    print("Device[0]:", torch.cuda.get_device_name(0))

このコードを check01.py というファイル名で保存して、ターミナルで python check01.py と実行します。

実行すると、たとえばこう表示されます。

Python: 3.14.3 Torch: 2.9.1+rocm6.3 HIP: 6.3.x GPU available: True Device count: 1 Device[0]: AMD Radeon RX Vega

このように出れば、ROCm 版 PyTorch が入っていて、GPU も見えている と考えて大丈夫です。GPU 名まで出ていれば、次の章へ進めます。

Python や Torch のバージョン番号は環境によって異なります。Torch: xxxxxx+rocm... の形式で出ていれば ROCm 版です。

torch.cuda という名前について: ROCm 版 PyTorch でも GPU の入口に torch.cuda という名前が使われています。NVIDIA 専用ではなく、GPU を使う API の名前がそのまま残っていると読んでください。

結果の読み方

うまくいかなかったときの読み方(クリックで開く)
  • HIP あり + False: ROCm 版だが GPU が見えていない。rocminfoamdgpugfx の行が出るか確認。それでも見えない場合は video / render グループへの所属を確認。
  • HIP None + False: ROCm 版ではない可能性。pip show torchVersion:+rocm が付いているか確認。
  • True だが Device 名がおかしい: llvmpipeVirtio GPU のような名前が出たら、which python で意図した Python か確認。

どこがROCm?

ROCm は GPU を動かすためのソフトウェアの集合体で、HIP はその中のプログラミング API です。torch.version.hip に値が返れば「ROCm 環境にいる」と読めます。

torch.cuda と HIP の関係(クリックで開く)

もともと CUDA 用に書かれたコードが AMD GPU でもなるべく動くよう、ROCm 版 PyTorch は torch.cuda という名前をそのまま引き継いでいます。torch.cudatorch.version.hip が混在しているのはそういう理由です。

ここで出てきたPython

sys.version.split()[0] の読み方(クリックで開く)

sys.version"3.11.9 (main, Apr 2024, ...)" のような長い文字列を返します。.split() で空白で分割してリストにし、[0] で先頭の要素(バージョン番号だけ)を取り出しています。

よくあるつまずき

実行前チェック・ワンライナー版(クリックで開く)

pip show torch で torch が入っているか、バージョンに +rocm が付いているかを確認できます。

# ワンライナーで実行
./.venv/bin/python -c 'import sys, torch; print("Python:", sys.version.split()[0]); print("Torch:", torch.__version__); print("HIP:", torch.version.hip); print("GPU available:", torch.cuda.is_available()); print("Device count:", torch.cuda.device_count()); print("Device[0]:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "(skip)")'

python -c '...' は、Python ファイルを作らずに引用符の中のコードを直接実行する書き方です。

1分演習

上のコードを実際に実行して、GPU availableHIPDevice count の 3 つを確認しましょう。

確認できたら、コードの print("Device count:", ...) の行を削除して もう一度実行してみましょう。何が変わりますか? — 行を削除しても他の行は動くことが確認できれば完了です。