ROCm のアンインストール・再インストール
前説
ネットの記事やAMDのクソわかりにくいドキュメントを参照しながら右往左往しつつなんとかROCm6.4.4を入れたはいいものの、程なくしてROCm7が発表されるわ少し立つと7.0.2になるわ、なんだ肝心要のgfx1151はサポートされてねーじゃねーかと思っていたらいつの間にかしれっとサポート対象に追加されているわで、自分が結局どういう手順でROCmを入れたのかもよくわからないま7.0.2に正しくアップデートしたいし、pytorch関連のpythonパッケージもROCm7系対応版に入れ替えたいし、となったときの私的ガイド。
恐らく今後7.0.2以降のバージョンがでてきたときにもこのやり方は通用するだろう。するといいな。してくれ(懇願)
前提環境
- OS : Ubuntu 24.04 (Noble)
- CPU/GPU : Ryzen AI Max+ 395 (つまりGPUはgfx1151)
- 筆者の環境は上記だが、恐らくROCmがサポートしているRadeon系GPU環境ならCPUがなんであれ後述の手順は有効なのではないか、と思われる
1. 現在インストールされている ROCm のバージョン確認
# HIP コンパイラのバージョン
hipcc --version
# パッケージ情報 (複数バージョンが残っている場合は -a オプションで全一覧)
sudo apt show rocm-libs -a
2. ROCm の完全アンインストール
2‑1. amdgpu-install がインストールされているケース
# 全リリースの ROCm を削除
sudo amdgpu-install --uninstall --rocmrelease=all
# インストーラ自体を削除
sudo apt purge amdgpu-install
# 依存パッケージのクリーンアップ
sudo apt autoremove
出典
2‑2. amdgpu-install が無い(つまり apt 経由で ROCm を入れた可能性が高い)ケース
APT パッケージマネージャでインストールされた ROCm 関連パッケージをすべて削除する。
# rocm 系メタパッケージとコアライブラリ
sudo apt autoremove rocm rocm-core
# AMDGPU の DKMS モジュール(残っている場合)
sudo apt autoremove amdgpu-dkms
出典
- https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/install-methods/package-manager/package-manager-ubuntu.html
- https://instinct.docs.amd.com/projects/amdgpu-docs/en/latest/install/detailed-install/package-manager/package-manager-ubuntu.html
3. ROCm の再インストール
3‑1. バージョン 6.4.4を入れる場合
-
AMD の公式ダウンロードページから
amdgpu-install_6.4.60404-1_all.debを取得
URL : https://www.amd.com/ja/support/download/linux-drivers.html -
パッケージをローカルインストールし、ROCm 用にセットアップ
sudo apt install ./amdgpu-install_6.4.60404-1_all.deb
# DKMS を使わずに ROCm のみインストール
sudo amdgpu-install -y --usecase=rocm --no-dkms
3‑2. バージョン7.0.2を apt リポジトリ経由で入れる場合
(a) ROCm 本体だけインストールする手順
# 1) AMD の GPG 鍵とリポジトリ設定
sudo mkdir -p /etc/apt/keyrings
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
# 2) ROCm 用 APT ソースリストを作成
sudo tee /etc/apt/sources.list.d/rocm.list <<'EOF'
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/7.0.2 noble main
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/graphics/7.0.2/ubuntu noble main
EOF
# 3) パッケージ優先度設定(衝突回避)
sudo tee /etc/apt/preferences.d/rocm-pin-600 <<'EOF'
Package: *
Pin: release o=repo.radeon.com
Pin-Priority: 600
EOF
# 4) リポジトリ更新 & ROCm 本体インストール(要再起動。DKMSもやる場合はまとめて1回の再起動でよい)
sudo apt update
sudo apt install rocm
(b) 同時に AMDGPU ドライバ(DKMS)もインストールする場合は以下を追加実施
# AMDGPU 用リポジトリ追加
sudo tee /etc/apt/sources.list.d/amdgpu.list <<'EOF'
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/30.10.2/ubuntu noble main
EOF
sudo apt update
# DKMS カーネルモジュールをインストール(再起動が必要)
sudo apt install amdgpu-dkms
出典
- https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/install-methods/package-manager/package-manager-ubuntu.html
- https://instinct.docs.amd.com/projects/amdgpu-docs/en/latest/install/detailed-install/package-manager/package-manager-ubuntu.html
どうやら、AMD公式としては上記のようなapt利用での導入はInstinctその他、純粋な計算機としてGPUを使う場合を想定しているっぽい。
他のインストール方法として、amdgpu-installコマンドのインストールを含めた手順の案内もある。
ただし以下のように「install-on-linux」の場合はamdgpu-installを入れた上でapt install rocmを実行する手順になっているが「radeon-ryzen」の手順の方だとROCmの導入はamdgpu-installコマンドに寄って実施するようになっている。(aptでのインストールとamdgpu-installでのインストールは混在させるな、というのはAMD自身がアナウンスしてませんでしたかねぇ…という混乱もある。マジでガイドがクソ)
- https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html
- https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installryz/native_linux/install-ryzen.html
結局どれが正しいんだ、という混乱が生じるので本当にクソなガイドであると思うが、実機で試した結果としては以下のような差異になるように思われる。
- ROCm6.4.4以前のものはamdgpu-install経由でのインストールしかできない
- ROCm7.0.2以降のものはamdgpu-installとaptどちらの経路からもインストールできる
ただし、ROCm7.0.2現在においてもUbuntuのカーネルのバージョンは特定のもの(6.14 OEM kernel)であることが前提として要求されているので、完全にゼロから始める初期構築段階においては以下のカーネル導入から始まるamdgpu-install手順での導入が望ましいかもしれない。
理屈の上では、ここに記載されているように6.14 OEM kernelを導入したら、後は本文に前述したaptを使ったインストール手順の方でやってしまって問題ない、ということのようである。筆者は結果的にそういうやり方で7.0.2の導入に成功した。(指定カーネルのaptインストールした上で、7.0.2とドライバもaptインストール)
Python 仮想環境内の PyTorch(ROCm 版)再インストール
重要:Nightly ビルドを
pip installした場合、.whlに HIP/ROCm ツールチェーンが展開されて仮想環境内部に 独自 ROCm バイナリ が配置される。
この状態で別バージョンへ切り替えると、pytorchは6.4.4用なのに使われるHIP/ROCm系バイナリは7系のまま、といったズレが生じて動作不良を起こす。またOS上に入れているROCmをきちんと最新化しているのにそれを使ってくれない、といった挙動にもなる。この状況の場合、まず仮想環境の丸ごとの削除(リセット)を行う ことを推奨する。
2‑1.仮想環境全体のリセット手順(最終手段)
目的:
pip uninstallが追いつかない余計な ROCm バイナリや壊れた依存関係を一掃する。
実行タイミング:Nightly ビルドをインストールした後、別バージョン(6.4.4 もしくは 7.0.2)へ切り替えるとき。
# (1) 仮想環境ディレクトリを削除
rm -rf /path/to/your/.venv # ← 実際のパスに置き換えてください
# (2) 再作成 & アクティベート
python3 -m venv /path/to/your/.venv
source /path/to/your/.venv/bin/activate
備考:
この手順で仮想環境内に残っていたhipcc・rocminfoなどの実行ファイルもすべて削除される。他のパッケージも巻き込まれて全部消えるが、仮想環境再作成後にrequirements.txtを実行するなりして適当に再インストールしてやればよい。
ただしその前に、というか真っ先に、pytorch系パッケージを後述の手順に書くような、意図したバージョンでインストールしておいたほうがよい。requirements.txtの中にpytorchのインストールも指定されているはずなので、使えないバージョンが導入されてしまい、一旦pip uninstallする、という一手間が増えてしまう。
2‑2.目的別 PyTorch (ROCm) のインストール例
| バージョン | ダウンロード URL(whl) | インストールコマンド |
|---|---|---|
| 6.4.4 (安定版) | - https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.4/ | wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.4/torch-2.8.0%2Brocm6.4.4.git36fa4b24-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.4/torchvision-0.23.0%2Brocm6.4.4.git824e8c87-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.4/pytorch_triton_rocm-3.4.0%2Brocm6.4.4.gitf9e5bf54-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.4/torchaudio-2.8.0%2Brocm6.4.4.git6e1c7fe9-cp312-cp312-linux_x86_64.whl pip install torch-2.8.0+rocm6.4.4.git36fa4b24-cp312-cp312-linux_x86_64.whl torchvision-0.23.0+rocm6.4.4.git824e8c87-cp312-cp312-linux_x86_64.whl torchaudio-2.8.0+rocm6.4.4.git6e1c7fe9-cp312-cp312-linux_x86_64.whl pytorch_triton_rocm-3.4.0+rocm6.4.4.gitf9e5bf54-cp312-cp312-linux_x86_64.whl |
| 7.0.2 (最新安定) | - https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0.2/ | wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0.2/torch-2.8.0%2Bgitc497508-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0.2/torchvision-0.23.0%2Brocm7.0.2.git824e8c87-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0.2/torchaudio-2.8.0%2Brocm7.0.2.git6e1c7fe9-cp312-cp312-linux_x86_64.whl wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0.2/triton-3.4.0%2Brocm7.0.2.gitf9e5bf54-cp312-cp312-linux_x86_64.whl pip uninstall -y torch torchvision torchaudio triton pip install torch-2.8.0+gitc497508-cp312-cp312-linux_x86_64.whl torchvision-0.23.0+rocm7.0.2.git824e8c87-cp312-cp312-linux_x86_64.whl torchaudio-2.8.0+rocm7.0.2.git6e1c7fe9-cp312-cp312-linux_x86_64.whl triton-3.4.0+rocm7.0.2.gitf9e5bf54-cp312-cp312-linux_x86_64.whl |
| Nightly (最新開発版) | - https://rocm.nightlies.amd.com/v2/gfx1151/ | pip install --index-url https://rocm.nightlies.amd.com/v2/gfx1151/ --pre torch torchaudio torchvision --upgrade |
出典
-
6.4.4用バイナリインストール手順:
https://rocm.docs.amd.com/projects/radeon-ryzen/en/docs-6.4.4/docs/install/installryz/native_linux/install-pytorch.html -
7.0.2用バイナリインストール手順:
https://rocm.docs.amd.com/projects/radeon-ryzen/en/docs-7.0.2/docs/install/installryz/native_linux/install-pytorch.html -
たぶん常に最新版の手順が掲示されるURL:
https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installryz/native_linux/install-pytorch.html -
Nightly インデックス: https://rocm.nightlies.amd.com/v2/gfx1151/
2‑3.Nightly ビルド使用時の注意点とリセットフロー
-
Nightly をインストール → 仮想環境内部に
hipcc等が展開され、ROCm バイナリが混入。 - 別バージョン(6.4.4 か 7.0.2)へ切り替える必要が出たら、以下の手順で環境をクリーンにする。
# (A) 仮想環境リセット(上記 2‑1 の手順)
rm -rf /path/to/.venv
python3 -m venv /path/to/.venv && source /path/to/.venv/bin/activate
pip install --upgrade pip setuptools wheel
# (B) 目的の PyTorch バージョンをインストール(6.4.4 または 7.0.2 の手順参照)
# (C) 元々プロジェクトで使用していた他パッケージを再導入
# 多くの場合は requirements.txt があるので以下だけで完了
pip install -r /path/to/requirements.txt