はじめに
AI開発の分野では、NVIDIA GPUとCUDAが長らくデファクトスタンダードとして利用されてきました。しかし、AMDも自社のGPU向けにROCm(Radeon Open Compute platform)というオープンソースのソフトウェアプラットフォームを提供しており、特に最新のRDNA 3アーキテクチャを採用したRX 9070シリーズのような高性能GPUでは、CUDAに代わる有力な選択肢として注目を集めています。
本記事では、AMD RX 9070シリーズのGPUを搭載したシステムで、最新のROCm 6.xをベースとしたAI開発環境を構築する方法を詳しく解説します。具体的には、ROCmのインストールから、PyTorchのROCm対応版(通常、バックエンドとしてHIPを使用)のセットアップまで、一連の手順をステップバイステップで説明します。NVIDIA環境との主な違いについても触れ、移行時に発生しがちな問題とその解決策(トラブルシューティング)も紹介します。
前提条件・必要な環境
以下の環境を前提として進めます。異なるディストリビューションやバージョンの場合は、適宜読み替えてください。
- GPU: AMD Radeon RX 9070シリーズ(例: RX 9070 XT)。RDNA 3アーキテクチャに対応したROCmドライバが必要です。
- OS: Ubuntu 22.04 LTS または 24.04 LTS(ROCmが公式サポートするディストリビューション)。
- カーネル: 比較的新しいバージョンのLinuxカーネル(5.15以上を推奨)。
- システム要件: 十分なシステムメモリ(16GB以上)、ストレージ空き容量、および安定したインターネット接続。
- 前提ソフトウェア: Git, curl, wget, 基本的な開発ツール(build-essential等)。
注意: RX 9070のような最新GPUは、ROCmの特定のバージョン以降でのみ正式サポートされる場合があります。本稿執筆時点ではROCm 6.xが対象です。必ず公式ドキュメントで最新の互換性情報を確認してください。
手順1: システムの更新と前提パッケージのインストール
まず、システムパッケージを最新の状態に更新し、必要なツールをインストールします。
sudo apt update
sudo apt upgrade -y
sudo apt install -y wget git curl build-essential libnuma-dev
手順2: ROCm 6.x リポジトリの追加とインストール
AMDの公式リポジトリを追加し、ROCmのメタパッケージをインストールします。ここではUbuntu 22.04 (Jammy) を例にします。
# AMD GPUのためのキーを追加
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
# ROCm 6.x リポジトリを追加 (Ubuntu 22.04の場合)
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/6.x jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list
# パッケージリストを更新
sudo apt update
# ROCmのコアパッケージをインストール
# rocm-hip-sdk と rocm-libs はAI開発にほぼ必須です
sudo apt install -y rocm-hip-sdk rocm-libs
# 現在のユーザーを`video`および`render`グループに追加(再起動後反映)
sudo usermod -a -G video,render $USER
echo "Please REBOOT your system to apply group changes."
インストール後、システムを再起動してください。再起動後、以下のコマンドでROCmが認識されているか確認します。
# rocm-smi ツールでGPU情報を確認
rocm-smi
# HIPが認識するデバイスを確認
hipinfo
rocm-smiでRX 9070の情報が表示され、hipinfoでエラーなくデバイスがリストされれば成功です。
手順3: PyTorch (ROCm/HIP版) のインストール
PyTorchのROCm対応版は、PyTorch公式サイトからインストールできます。HIP(AMDのGPUプログラミングプラットフォーム)をバックエンドとして使用します。以下のコマンドは、PyTorch 2.x と torchvision をROCm 6.x用にインストールします。
# 仮想環境の作成と有効化(推奨)
python3 -m venv ~/venv/rocm6
source ~/venv/rocm6/bin/activate
# PyTorch公式のインストールコマンドを使用(バージョンは適宜変更)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
# 必要に応じて、他のライブラリもインストール
pip install numpy pandas matplotlib jupyterlab
重要: PyTorchのバージョンとROCmのバージョンの互換性は非常に重要です。上記のrocm6.0は一例です。PyTorchのGet Startedページで、お使いのROCmバージョンに合った正しいインストールコマンドを確認してください。
手順4: 環境動作確認
PyTorchが正しくインストールされ、AMD GPUを認識しているか確認します。PythonインタプリタまたはJupyter Notebookで以下のスクリプトを実行してください。
import torch
# PyTorchのバージョンとバックエンド確認
print(f"PyTorch version: {torch.__version__}")
print(f"Is HIP available? {torch.cuda.is_available()}") # 注意: CUDA API互換だが、実体はHIP
print(f"Device name: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU'}")
print(f"ROCm/HIP version: {torch.version.hip}")
# 簡単なテンソル演算をGPUで実行
if torch.cuda.is_available():
x = torch.rand(5, 3).to('cuda') # 'cuda' というデバイス指定でHIPデバイスを利用
y = torch.rand(3, 5).to('cuda')
z = torch.mm(x, y)
print(f"Computed result on GPU:\n{z}")
print("Success! AMD GPU with ROCm is working with PyTorch.")
else:
print("Failed to detect AMD GPU. Please check your ROCm installation.")
このスクリプトで、torch.cuda.is_available()がTrueを返し、デバイス名がRX 9070などと表示され、計算がエラーなく実行されれば環境構築は完了です。
手順5: NVIDIA CUDA環境との主な違いと注意点
NVIDIA環境から移行する開発者が特に注意すべき点をまとめます。
- デバイス指定: コード上では
'cuda'または'cuda:0'という文字列をそのまま使用できます。PyTorchのROCm版はCUDA APIをエミュレートするため、多くの場合コード変更は不要です。 - パフォーマンス: 同じモデル、同じバッチサイズでも、CUDAとHIP(ROCm)では実行時間が異なる場合があります。最適化が進んでいるとはいえ、特にカスタムカーネルを使用する場合はパフォーマンスチューニングが必要かもしれません。
- ライブラリ対応: NVIDIA専用のライブラリ(如くcuDNN, TensorRT)は使用できません。代わりにROCmスタック内のMIOpen(ディープラーニングプリミティブライブラリ)等が利用されます。多くの主要フレームワークはこれらを内部で使用するように既に適応されています。
- ツールチェイン: プロファイリングツールは
rocprofやrocgdbなど、ROCm固有のものを使用します。nvidia-smiに相当するのはrocm-smiです。
トラブルシューティング
環境構築中によく遭遇する問題とその解決策です。
問題1: rocm-smi や hipinfo がGPUを認識しない
原因: ドライバが正しくロードされていない、またはユーザーが適切なグループに属していない可能性があります。
解決策:
# 1. カーネルモジュールの確認
lsmod | grep amdgpu
# 2. グループ確認と再追加(再起動が必要)
groups
sudo usermod -a -G video,render $USER
# その後、必ず再起動
# 3. ROCmインストールの再確認
sudo apt install --reinstall rocm-hip-sdk rocm-device-libs
問題2: PyTorchインストール時にバージョン不一致エラー
原因: PyTorchのバージョンとインストール時に指定したROCmバージョンが互換性がない。
解決策: PyTorch公式サイトで、お使いのPythonバージョンとROCmバージョンに合った正確なpip installコマンドを再確認してください。仮想環境の使用を強く推奨します。
問題3: torch.cuda.is_available() が False を返す
原因: PyTorchがHIPライブラリを見つけられていない。
解決策:
# 環境変数でHIPのパスを明示的に指定(仮想環境のactivate後に設定)
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/lib64:$LD_LIBRARY_PATH
# Pythonで確認
python -c "import torch; print(torch.cuda.is_available())"
この設定を恒久化するには、~/.bashrc または仮想環境のactivateスクリプトに上記のexport行を追加します。
問題4: Dockerコンテナ内でROCmを使用したい
解決策: ROCmはDockerを公式サポートしています。rocm/dev-ubuntu-xx.xx:latestのような公式Dockerイメージをベースにすると簡単です。コンテナ実行時には--device=/dev/kfd --device=/dev/dri --group-add=videoなどのオプションが必要です。
まとめ
本記事では、AMD RX 9070シリーズGPU上にROCm 6.xとPyTorchによるAI開発環境を構築するための詳細な手順を解説しました。主要なステップは、(1)システム準備、(2)ROCmリポジトリからのインストール、(3)PyTorchのROCm対応版のインストール、(4)動作確認、です。NVIDIAのCUDA環境との互換性レイヤーがよく整備されているため、多くの既存PyTorchコードは変更なしで動作する可能性が高いです。
しかし、特にカスタムCUDAカーネルを使用した高度なプロジェクトや、特定の最適化ライブラリに強く依存するプロジェクトでは、追加の移植作業が必要になる場合があります。ROCmは活発に開発が進んでいるプラットフォームですので、問題に遭遇した場合はGitHubリポジトリや公式ドキュメント、コミュニティフォーラムを参照することをお勧めします。AMD GPUによるオープンなAI開発環境の選択肢として、ROCmは非常に有力な選択肢となっています。
💡 GPU環境でお困りの方へ
ローカルGPU環境の構築が難しい場合は、クラウドGPUサービスも検討してみてください:
⚡ GPU環境をすぐに使いたいなら
ハードウェアの購入・セットアップなしで、すぐにGPU環境を使えるクラウドサービスがおすすめです。
- RunPod — RTX 4090/A100/H100を即座に利用可能
- Vast.ai — 最安のGPUクラウド、オークション方式で低コスト
- RTX 5090をAmazonで見る — 自宅GPU環境を構築するなら