デスクトップPCでROCmを導入してAMD GPUでAI開発を始める方法(2025.08時点)
はじめに
AI開発といえばNVIDIA GPUが主流ですが、最近はAMD GPUでも十分実用的な開発ができるようになってきました。私自身、普段はNVIDIAとAMDの両方でAI関連の開発を行っているのですが、AMDの環境も思った以上に使えるので、その導入方法と実際に使ってみた感想をまとめてみます。
AMDのROCmで実際にできること
CUDAコードの互換実行
ROCmの大きな魅力の一つが、既存のCUDAコードをある程度そのまま動かせることです。HIPコンパイラー(hipcc)を使うことで、CUDAカーネルをHIPコードに変換して、AMD GPU上で実行できます。
PyTorchなどのメジャーなフレームワークの基本機能は、ほぼすべて問題なく動作します。特にTritonの存在が大きくて、これがあるおかげでNVIDIA・AMD両方の環境で開発を進められるようになりました。正直、Tritonを使えばほとんどのケースで困ることはないというのが実感です。
制限もある
ただし、完璧ではありません。HIPCCの互換性には限界があって、NVIDIA TensorCoreを直接使うようなコードや、Shared Memoryを極限まで最適化したようなコードは動かないことがあります。
実際に使ってみて困ったこと
一番困ったのがFlash Attentionの対応状況です。AMD InstinctやRadeonの最上位モデルでは使えるのですが、Navi32などの下位モデルではデフォルトでFlash Attentionカーネルが使えません。
とはいえ、vLLMなどのFlash Attention Triton実装を使うことで回避はできるので、完全に詰むわけではありません。
マルチGPU環境での注意点
デスクトップPCでROCmを使う際に一番気をつけたいのが、PCI Express Atomicsの対応状況です。ROCmはCPU-GPU間のメモリ管理でこの機能を使っているため、サポートされていないPCIスロットに刺すと動作しません。
最近のマザーボードのメインGPUスロットは、大抵CPU直結レーンなので問題ないのですが、マルチGPU構成にする場合は要注意です。一般的なマザーボードでは、メインスロット以外はチップセット経由になることが多く、この場合PCI Atomicsがサポートされていません。
実際に私も知らずにマザーボードを買い直す羽目になったので、マルチGPU環境を考えている方は事前に確認することをおすすめします。( PCI Express x8が2本にできるモノを探す)
Ubuntu 24.04での導入手順
ROCmはLinux環境での動作を前提に設計されているので、今回はUbuntu 24.04での導入方法を説明します。
1. 事前準備
まずはAMD ROCmの公式サイトで前提条件を確認しましょう。Ubuntuを選択して、prerequisitesの内容に従って環境を整備します。
2. ROCmのインストール
パッケージマネージャーでのインストール手順に従って、リポジトリの登録とインストールを行います。
ここで重要なのが、単純に sudo apt install rocm
だけだとhip-sdkが含まれないため、hipccの恩恵を受けられません。必ず以下のようにインストールしてください:
sudo apt install rocm rocm-hip-sdk
3. 動作確認
インストール後は再起動して、ターミナルから rocm-smi
と入力してGPUが認識されているか確認しましょう。
PyTorchの導入
ROCm版のPyTorchを使えば、面倒な設定なしでPyTorchが使えるようになります:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.4
バージョン番号(6.4の部分)は、対象のROCmバージョンに合わせて変更してください。
注意点として、hipccを併用してCUDA(HIP)カーネルをPyTorchで使用する場合は、インストールされているROCmのバージョンとPyTorchのバージョンを一致させる必要があります。
まとめ
AMD GPUでのAI開発は、以前と比べて格段に環境が整ってきました。完璧ではないものの、実用的なレベルで開発ができるようになっています。特にTritonの存在が大きく、ほとんどのケースで、NVIDIA,AMD両対応な開発が行えるようになりました。
みんな、Rocmつかおうね。
P.S
AMD InstinctをデスクトップPCに入れるのはかなり難儀でした
Discussion