要旨
AMD ROCm 環境(特に gfx1151 をターゲットとした PyTorch)で 公式安定版 及び nightly/最新版(TheRock 系) の PyTorch をインストール/更新するための手順メモである。
すでに ROCm がインストール済み であり、特定の仮想環境(venv あるいは conda)内でPytorch系パッケージのバージョンを切り替えるためのメモである。
1. 安定版(推奨)
出典
- 常に最新版の手順が掲示されるURL:
https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installryz/native_linux/install-pytorch.html
PyTorch の公式 ROCm サポートは AMD のドキュメントに手順が載っている。スクリプト内にある
Enter the commands to install Torch and Torchvision for ROCm AMD GPU support
の部分のみを対象環境内で実行すれば良い。
1.1 仮想環境を有効にする
すでに仮想環境を構築している場合、その環境に入る。
例(venv):
source .venv/bin/activate
1.2 PyTorch wheel をインストール
AMD が公式に提供する ROCm 7.2 用の安定版 wheel を指定してインストールする。
※ 具体的な wheel の URL は前述した AMD のドキュメントに記載されている。
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.25.0%2Brocm7.2.0.gitaa35ca19-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.9.0%2Brocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
pip uninstall -y torch torchvision torchaudio triton
pip install torch-*.whl torchvision-*.whl torchaudio-*.whl triton-*.whl
1.3 GPU での動作確認(任意)
python3 - << 'EOF'
import torch
print('CUDA 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))
EOF
正常に GPU が検出されればインストール成功である。
2. nightly / 最新版(性能向上や問題解消を試す場合)
通常は安定版で運用するのが望ましいが、
- 動作に問題があり改善したい
- 最新のパッケージを試したい
というケースでは nightly 版(TheRock 系もしくは AMD nightly index)を試す。
この手順では 対象仮想環境を有効にした状態で実行 する。
2.1 既存パッケージの削除
pip uninstall -y torch torchvision torchaudio triton
現状の PyTorch 系を完全に削除する。
2.2 nightly インデックスからインストール
以下のコマンドで gfx1151 向けの nightly パッケージを直接インデックス指定してインストールする。
この手法では --pre オプションを付けることで pre-release(alpha/nightly)パッケージも対象 にインストールされる。
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx1151/ --pre torch torchvision torchaudio triton
実行すると、現在インデックスにある最新版ビルド(例: rocm7.11 タグ付き nightly など)が仮想環境に入り、安定版では存在しない最新機能や修正が含まれる場合がある。
ただし nightly は開発版であるため、ROCmではなくthe rockの方を対象としてビルドされている模様。
ROCm を使っている場合、そのバージョンと pytorch系パッケージ側の tag は不一致になるため、動作に問題が起きる可能性はある。。
2.3 動作確認(nightly)
python3 - << 'EOF'
import torch
print('Torch version:', torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('Device 0:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'none')
EOF
実績としてROCm7.2.0において7.11向けpytorch系パッケージはある程度動作したので、絶対に動かない、ということはない模様