実行プログラムと拡張機能
ROCmとRadeonでローカルAI:対応構成と実行経路の読み方
Radeonの対応状況はGPU名だけではなく、GPU・OS・ドライバー・ROCm・フレームワークの組み合わせで確認します。
RadeonでローカルAIを実行する前に、ROCm1ソフトウェアスタックとHIP2によるソース移植の意味を区別し、AMDの現行統合ドキュメントでハードウェアとOSの正確な組み合わせを確認する方法を説明します。Windowsネイティブ、WSL、Linuxはそれぞれ異なる実行経路で、VulkanもROCmとは別のバックエンドです。
ROCmはソフトウェアスタック、HIPは移植の経路です
RadeonでPyTorch3の画像処理を一つ実行するには、まず正確なGPU4とOSを確認し、AMDの互換性表で両方を含む対応構成を探します。このガイドでは、手元のRadeon 1枚で公式経路を見つけ、小さな処理を試す手順をたどります。ROCmは処理の実行に使うソフトウェアスタック、HIPはソースコードを移植する経路です。CUDA5実行ファイルをそのままAMD GPUにコピーして実行することはできません。Instinctアクセラレーターは別の製品群のため、ここではコンシューマー向けRadeonを扱います。
ROCmは、AMD GPUで計算を行うためにドライバー、ランタイム6、コンパイラー、数学ライブラリ、フレームワークとの接続部をまとめたソフトウェアスタックです。PyTorchを動かすには、PyTorchのビルド、ROCmコンポーネント、GPUカーネル7の対応も必要です。したがって、文書に「ROCm対応」とあっても、すべてのPyTorchの版やRadeonモデルが対応するという意味ではありません。導入判断の単位は、文書で指定されたGPU、OS、ドライバー、ROCmのリリース、フレームワークの組み合わせです。
ここでCUDAに似た名前のHIPが登場します。HIPはC++のランタイムAPI8およびGPUカーネル言語で、HIPIFY9はCUDAソースの一部のAPI呼び出しや表記をHIP形式へ変換する作業を支援します。ソースコードを移植できることと、すでにコンパイル済みのCUDAプログラムをそのまま実行できることは別です。CUDA実行ファイルにはNVIDIA GPU向けコードやNVIDIAライブラリへのリンクが含まれている場合があります。それをRadeonにコピーしてもAMD用コードには変わりません。ソースが公開されていても、HIPへの移植やROCm用ビルド、必要なライブラリのAMD対応が必要です。自動変換は出発点を助けますが、不足機能やデバイスごとの動作までは検証しません。

対応状況は製品群ごとの表で一つの組み合わせとして確認します
したがって最初に選ぶのはGPU同士の性能比較ではなく、対応文書の対象範囲です。AMDの文書ではRadeon、Instinct、Ryzen APUがそれぞれ別の経路で扱われています。ここで対象とするコンシューマー向けRadeon GPUは、ROCm on Radeonの表を確認します。Instinctはデータセンター向けアクセラレーター製品群であり、サーバー向けディストリビューション、カーネル、ソフトウェア構成が別に整理されています。一方の製品群の表にGPUが載っているからといって、別の製品群でも対応していると推測しないでください。表が示すのは指定されたソフトウェア構成での対応範囲であり、あらゆる作業の速度比較ではありません。
AMDはROCm Core SDK 7.13.0から対応ハードウェアの文書を統合し、現行の10.0文書も統合された互換性情報を案内しています。リリース概要だけを見て特定のRadeonが対応していると判断せず、表で自分のGPU・OS・ドライバー・ROCm・フレームワークが一つの組み合わせとして示されているか確認してください。異なる行や文書の時期から版を寄せ集めないことが重要です。

OSとアプリが実際に提供する経路を先に選びます
OSの選択も重要です。Linuxではディストリビューション、カーネル、ドライバーを自分で合わせます。WindowsネイティブのRadeon経路は、文書に明記されたPyTorch構成やツールに限定される場合があります。WSLはWindowsネイティブと同じではなく、ROCDXGなど別の構成と専用の対応表に従います。三つの経路を互換性のある導入手順として扱わず、使い慣れた開発環境と利用するアプリの公式配布経路が重なるものを選びましょう。たとえばWindowsアプリのROCm対応が特定のPyTorch版だけなら、Linux向けの案内をそのまま適用しないことが大切です。
今使っているWindows PCをそのままにして、PyTorchの画像処理を試したいとします。アプリがWindows用AMDパッケージを提供しているなら、まずその経路を確認します。Linux向けの導入手順しかない場合は、WSL対応も別途確認します。WSLで使えるという案内がないのにLinuxコマンドをコピーするだけでは、同じ環境にはなりません。反対に、すでにLinuxを使っている人が先にWindowsへ切り替える必要もありません。今のOS上でアプリとGPUの両方に対応する組み合わせを探すことが先です。
Dockerイメージがあれば、この手順を省略できるでしょうか。コンテナはアプリやPythonライブラリをまとめられますが、ホストのGPUやドライバーを用意するものではありません。公式コンテナ案内にあるホスト要件とGPUの受け渡し設定も満たす必要があります。パッケージの導入は完了したのにコンテナ内でGPUが見つからない場合は、モデルファイルを再ダウンロードする前にその接続を確認してください。コンテナで実行したからといって、未対応GPUが公式対応になるわけではありません。

PyTorchのCUDAという名前が常にNVIDIAを意味するわけではありません
使いたいプログラムがCUDA専用でも、ROCmが実行ファイルを自動でAMD用に変換するわけではありません。プログラムがソースを公開し、ROCmまたはHIPビルドを提供しているか確認してください。PyTorchのコードに.to("cuda")があるだけで、NVIDIA専用と決めつける必要はありません。API互換性のため、ROCm版PyTorchにはtorch.cuda名前空間や"cuda"というデバイス表記が残っている部分があるので、実際にインストールされたビルドはtorch.version.hipで判別します。反対に、名前にCUDAがあるからといってROCm対応だとも限りません。アプリが公式にサポートする実行経路と導入手順を基準に判断してください。
この違いを知っておくと、エラーを調べる順番も変わります。PyTorchがGPUを検出できない段階なら、まずインストールしたビルドとデバイス接続を確認します。GPUは見えているのに特定の画像アプリだけ動かない場合は、アプリが別の演算や拡張パッケージを必要としていないか確認します。PyTorchの基本演算が成功しても、アプリが直接呼び出すCUDA拡張までAMDで動くとは限りません。アプリの説明でROCmの導入方法と必要な拡張パッケージの対応状況を確認する必要があるのはそのためです。
VulkanはROCmとは別の実行バックエンドです
ROCm以外にVulkanを選べるプログラムもあります。たとえばllama.cppはVulkanバックエンドでビルドできます。ただしVulkanはROCmランタイムではないため、ドライバー、ビルドオプション、機能対応はPyTorch ROCm wheelの導入とは異なります。アプリがVulkan経由でRadeon GPUを使っていても、ROCmが導入済みとは限らず、ROCmの表にあるPyTorch対応をVulkan経路に当てはめることもできません。まず利用するアプリがどのバックエンドに対応しているか確認してください。
そのため、同じRadeonでもアプリによって選択肢は異なります。GGUF10モデルとの対話が目的なら、llama.cppのVulkan経路で必要な機能が使えるか確認できます。一方、PyTorchベースの画像処理を実行したい人にとって、その成功例だけでは答えになりません。実行するモデルファイル、アプリ、必要な機能が先にあり、バックエンドはその作業を実行する経路です。異なるバックエンドの速度を比べる場合も、モデル、量子化11、入力条件をできるだけ合わせてください。
購入前にアプリの導入経路とGPUモデルを照合します
すでにRadeonを持っているなら、まず追加出費をせず、使うアプリの公式対応経路で小さな作業を最後まで実行してください。モデルを読み込んで期待する結果が出るか、アプリを閉じて再起動しても繰り返せるか確認します。ここまで動けば、次の課題は基本的な対応可否ではなくメモリーと実行時間です。入力や解像度を上げて何が不足するかを見て、設定を調整します。最初から最新のグラフィックカードを選ぶより、今の機器でどの段階が制約になっているか確認する方が次の判断に役立ちます。
新しいGPUを買う予定なら、判断の順番を逆にしないことが重要です。まず使うアプリとモデルを決め、そのアプリが文書化しているRadeonの実行経路で購入候補を確認します。VRAM12の多いカードでも、必須の拡張モジュールが動かなければ目的の作業には使えません。公式対応のない組み合わせではコミュニティの成功例を参考にできますが、設定を修正し維持する負担も考慮してください。その作業を引き受けたくないなら、アプリが対応する別のGPUやバックエンドを選ぶのも合理的です。Radeonを買うかどうかより先に、必要な作業をどの経路で実行するかを決めましょう。
用語の注釈
ROCm — AMD GPUでAIや高性能計算を実行するソフトウェア基盤です。対応状況はGPUだけでなく、OS・ドライバー・フレームワークの版の組み合わせで確認します。
本文に戻るHIP — GPU向けC++コードの移植に使うAPIと実行環境です。CUDAコードの移植を支援しますが、すべてのライブラリや演算の互換性、同等の速度を保証するものではありません。
本文に戻るPyTorch — AIモデルを作成・実行するソフトウェアフレームワークです。モデルと合わせて、対応するPyTorchの版やハードウェアも確認します。
本文に戻るGPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻るCUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。
本文に戻るランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあり、GPUランタイムライブラリと完成したサービングアプリは別の構成要素です。
本文に戻るGPUカーネル — GPU上で実行される演算関数です。OSのカーネルとは別の意味で、同じ演算でもGPUの構造や実装により速度が変わります。
本文に戻るAPI — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。APIという言葉だけで外部サーバーへの送信を意味するわけではありません。
本文に戻るHIPIFY — CUDAソースのAPI呼び出しなどをHIP形式へ変換するツールです。自動変換後もビルド、結果の検証、性能調整が必要になる場合があります。
本文に戻るGGUF — モデル情報を格納するファイル形式で、llama.cpp系のツールで広く使われます。形式だけで特定ハードウェアへの対応や速度が保証されるわけではありません。
本文に戻る量子化 — モデルの数値を少ないビット数で表す方法です。メモリ使用量のほか、精度や実行速度も変わることがあり、影響は形式と実装によります。
本文に戻るVRAM — グラフィックカードのGPUが使うメモリです。モデルの重みや計算途中の値を置き、システムRAMとは区別されます。
本文に戻る