【AMD RX 9070】ROCm 6.x AI開発環境構築ガイド(PyTorch対応)

はじめに

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(ディープラーニングプリミティブライブラリ)等が利用されます。多くの主要フレームワークはこれらを内部で使用するように既に適応されています。
  • ツールチェイン: プロファイリングツールはrocprofrocgdbなど、ROCm固有のものを使用します。nvidia-smiに相当するのはrocm-smiです。

トラブルシューティング

環境構築中によく遭遇する問題とその解決策です。

問題1: rocm-smihipinfo が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サービスも検討してみてください:

  • RunPod — すぐ使えるクラウドGPU
  • Vast.ai — 格安GPUマーケットプレイス

⚡ GPU環境をすぐに使いたいなら

ハードウェアの購入・セットアップなしで、すぐにGPU環境を使えるクラウドサービスがおすすめです。

  • RunPod — RTX 4090/A100/H100を即座に利用可能
  • Vast.ai — 最安のGPUクラウド、オークション方式で低コスト
  • RTX 5090をAmazonで見る — 自宅GPU環境を構築するなら
この記事は役に立ちましたか?