【Ubuntu】ROCm対応PyTorchをインストールする方法(AMD GPU向け)

冒頭:どんな問題が発生するか

AMD GPU(例:Radeon RX 6800、Radeon 780Mなど)を使用してPyTorchで深層学習を実行しようとすると、多くのユーザーが次のような問題に直面します。

  • CUDAが認識されない:通常通りtorch.cuda.is_available()を実行するとFalseが返される
  • GPUが認識されないrocm-smirocminfoを実行してもGPUが表示されない
  • PyTorchがROCm対応ではない:pipでインストールした標準のPyTorchではAMD GPUを使用できない
  • バージョン互換性の問題:ROCmのバージョンとPyTorchのバージョンが合わず、エラーが発生する

これらの問題は、PyTorchがデフォルトではNVIDIA CUDA向けにビルドされており、AMD GPUではROCmプラットフォーム用の специальные versionが必要なことが原因です。

結論:解決策

Ubuntu境下でROCm対応PyTorchをインストールするには、ROCmプラットフォームを正しくセットアップしたうえで、AMD提供の wheels ファイルを使用してPyTorchをインストールすることが重要です。公式ドキュメントではWSL Ubuntuまたは直接Ubuntuへのインストールを推奨しており、Windows直接インストールは非推奨です。

具体的な手順

ステップ1:システムの確認と準備

まず、現在のシステム情報を確認します。

# OSバージョンの確認
lsb_release -a

# カーネルバージョンの確認
uname -r

# GPUの確認(AMD GPUが認識されているか)
lspci | grep -i amd

ROCmは以下のUbuntuバージョンをサポートしています:

  • Ubuntu 20.04.3 LTS(GPUサポートが最も安定)
  • Ubuntu 22.04.3 LTS

ステップ2:ROCmリポジトリの追加

ROCm公式リポジトリを追加します。

# ROCmリポジトリの追加(Ubuntu 22.04の場合)
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | sudo apt-key add -

# Ubuntu 20.04の場合
# echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/5.7/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list

# Ubuntu 22.04の場合
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/6.1/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list

# パッケージリストを更新
sudo apt update

ステップ3:ROCmのインストール

# ROCmコアパッケージのインストール
sudo apt install -y rocm-dkms rocm-dev rocm-libs

# 現在のユーザーをvideoグループに追加(重要なステップ)
sudo usermod -aG video $USER

# 再ログインまたはグループを更新
newgrp video

# 確認
groups $USER

ステップ4:ROCmの動作確認

# ROCm Sampler Informationの確認
rocm-smi

# GPU情報の確認
rocminfo | grep -A 10 "GPU"

# 環境変数の設定(~/.bashrcまたは~/.profileに追加)
echo 'export PATH=/opt/rocm/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

GPUが正しく表示されればROCmのセットアップは成功です。

ステップ5:ROCm対応PyTorchのインストール

重要:AMD公式ドキュメントによると、ROCm WHLファイルはrepo.radeon.comから入手することを推奨しています。PyTorch.orgのWHLはAMDによって十分にテストされていません。

# まず既存のPyTorchをアンインストール(ある場合)
pip uninstall torch torchvision torchaudio -y

# ROCm対応PyTorchのインストール(例:ROCm 6.1の場合)
# Ubuntu 22.04 + Python 3.10の場合
pip install --no-cache-dir torch==2.1.0+rocm5.7 torchvision==0.16.0+rocm5.7 --index-url https://repo.radeon.com/rocm/wheels/6.1/ubuntu22.04/x86_64/

# 別のバージョンが必要な場合、repo.radeon.comで、利用可能なバージョンを確認してください

ステップ6:インストール確認

# PythonでPyTorchとROCmの動作を確認
python3 -c "import torch; print(f'PyTorch version: {torch.__version__}'); print(f'CUDA available: {torch.cuda.is_available()}'); print(f'Device count: {torch.cuda.device_count()}'); print(f'Current device: {torch.cuda.current_device() if torch.cuda.is_available() else "N/A"}')"

正常に設定されていれば、CUDA availableTrueとなり、GPU情報が返回されます。

ステップ7:簡単な動作テスト

python3 << 'EOF'
import torch

# GPUが利用可能な場合
if torch.cuda.is_available():
    device = torch.device("cuda")
    print(f"Using device: {torch.cuda.get_device_name(0)}")
    
    # 簡単な計算テスト
    x = torch.randn(1000, 1000).to(device)
    y = torch.randn(1000, 1000).to(device)
    z = torch.matmul(x, y)
    print(f"Matrix multiplication successful!")
    print(f"Result shape: {z.shape}")
else:
    print("CUDA is not available. Please check your ROCm installation.")
EOF

補足・注意点

バージョン互換性

  • ROCmバージョンとPyTorchバージョンの対応:異なるROCmバージョンに対して適切なPyTorchバージョンが必要です。例えば、ROCm 5.7とROCm 6.1では異なるPyTorch wheelsが必要です。
  • Pythonバージョン:Python 3.8〜3.11が動作確認されています。
  • GPUアーキテクチャ:RDNA2(RX 6000シリーズ)、RDNA3(RX 7000シリーズ)などの新しいGPUでは、比較的新しいROCmバージョンが必要です。

Windowsユーザーの場合

WindowsでROCmを使用する場合、AMD公式ではWSL2(Ubuntu)を使用することを強く推奨しています。Windowsに直接ROCmをインストールするのは推奨されず、コミュニティハックが必要な場合があります(参考情報②)。

よく飛ぶ落とし穴

  1. videoグループへの追加を忘れる:これが最も多い原因です。必ずsudo usermod -aG video $USERを実行してください。
  2. 再起動的重要性:ROCmインストール後はシステム再起動が推奨されます。
  3. 的环境変数PATHROCm_PATH(またはROCM_PATH)環境変数を正しく設定してください。
  4. PyTorch.orgのではなくAMDリポジトリから:インストール失敗の多くは、PyTorch.orgの非公式 wheels を使用导致的ことです。

ソースからのビルド

特定のGPUアーキテクチャや最新機能が必要な場合は、ソースからPyTorchをビルドすることも検討してください(参考情報①)。これは時間がかかりますが、カスタマイズ性が高いです。

# ソースビルドが必要な場合(注意:非常に時間ががかかります)
git clone --recursive https://github.com/ROCm/pytorch.git
cd pytorch
export ROCM_HOME=/opt/rocm
export PYTORCH_ROCM_ARCH=gfx1030  # GPUアーキテクチャ指定
python3 setup.py install

参考元

おすすめ環境

💡 この問題を根本的に解決するには

ローカル環境でGPUトラブルが頻発する場合、クラウドGPUサービスの利用も検討してみてください。環境構築の手間なく、すぐにAI開発を始められます。

  • RunPod — RTX 4090が$0.44/h〜、ワンクリックでJupyter環境が起動
  • Vast.ai — コミュニティGPUマーケットプレイス、最安値でGPUレンタル
この記事は役に立ちましたか?