DEV Community

Cover image for ROCm 10.1.0公開、WSL2テクニカルプレビューと新ライブラリ3本を追加
情報の灯台
情報の灯台

Posted on Originally published at joho-todai.com

ROCm 10.1.0公開、WSL2テクニカルプレビューと新ライブラリ3本を追加

この記事のポイント

  • 何が起きた: AMDがROCm 10.1.0を公開し、WSL2サポートのテクニカルプレビュー、hipThreads・libhipcxx・RPPの3ライブラリ追加、PyTorch 2.14.0やvLLM 0.29.0への更新を含む
  • なぜ重要か: CUDAに対するROCmの弱点だったWindows対応が初めてTheRockビルドに入り、ソースビルドなしでWSL2上のGPUコンピューティングが可能になった
  • 開発者への影響: ROCprofiler-SDKのkernel replayベータとオンデマンドツール設定により、PyTorch・Tritonワークロードのプロファイリングが実運用レベルに近づいた
  • 次に見る点: ROCm 10.0.0から40日で届いた10.1.0の変更幅は、6週間リリースサイクルがROCmの進化速度を変えうる可能性を示している

WSL2がテクニカルプレビューで初搭載

ROCm 10.1.0で最も目を引くのは、WSL2サポートの初搭載にある。

これまでWindowsからROCmのGPUコンピューティング機能を使うには、WSL2向けのドライバインターフェースライブラリ(librocdxg)を自分でソースからビルドする必要があった。10.1.0ではTheRock(ROCm 7.14から採用されたビルド・リリースシステム)のビルド成果物にlibrocdxgが同梱され、追加の手間なくWSL2でROCmワークロードを実行できるようになる。

ROCrランタイムが/dev/dxgデバイスの有無からWSL2環境を自動検出し、librocdxgを読み込む仕組みのため、通常は手動の設定も不要となっている。

テクニカルプレビューの段階であり、いくつかの制約がある。対象はUbuntuの.debパッケージとPythonホイールに限られ、RPMパッケージは対象外。プロファイリング、デバッグ、KFD依存のツール群はWSL2上では動作しない。

あわせてAMD SMI(GPUの監視・管理ツール)にもWSL2バックエンドがテクニカルプレビューとして追加された。温度、電力、メモリ使用量、クロック速度などのテレメトリ(遠隔計測データ)をWSL2環境で取得できる。管理・設定操作やプロセスごとのGPU使用率は取得できないが、GPUの状態監視がWSL2上でも可能になった。

CUDAに対するROCmの弱点として長く指摘されてきた「Windowsで使えない」問題が、ようやく動き始めた格好となる。テクニカルプレビューという注釈付きではあるが、ソースビルドが不要になっただけでも参入障壁は大きく下がる。

新ライブラリ3本がROCm Core SDKに合流

10.1.0では3つのライブラリが新たにROCm Core SDKへ追加された。

hipThreads(バージョン1.0.0)は、C++のstd::threadに似たAPIをGPUカーネル内で使えるようにするライブラリ。hip::wthread、hip::mutex、hip::lock_guard、hip::condition_variableといったプリミティブを提供し、既存のCPUスレッドコードをROCmやCUDAの完全な書き換えなしにGPU上で動かす道を開く。Linux/Windowsの両方に対応し、RadeonおよびRyzen GPUで利用できる。

libhipcxx(バージョン3.0.2)は、C++標準ライブラリをHIPのホスト・デバイスコードの両方で使えるようにしたもの。atomics、型特性、コンテナといった標準ライブラリの機能をHIPカーネル内でそのまま呼べるため、デバイス側の実装を自前で書く手間が減る。Instinct、Radeon、Ryzenの全プラットフォームに対応する。

RPP(ROCm Performance Primitives、バージョン3.2.0)は、AIの学習・推論パイプライン向けに2D/3D画像の拡張処理をGPUで高速化するコンピュータビジョンライブラリ。LinuxのInstinctおよびRadeon GPUで利用できる。

いずれもROCmのエコシステムが「GPUを使うには全部書き直す」という敷居を下げる方向に動いていることを示す追加といえる。

AIフレームワークの更新とTensorFlow 2.19.1の終了

フレームワーク対応は全面的に引き上げられた。PyTorch 2.14.0、JAX 0.11.1、vLLM 0.29.0、SGLang 0.5.18、MIGraphX 2.18がサポートされ、それぞれ前バージョン(PyTorch 2.11.0、vLLM 0.27.0等)を置き換える。

一方、TensorFlow 2.19.1のサポートが終了した。10.0.0時点で含まれていたTF 2.19.1が対象から外れている。ただしAIエコシステムサポート表にはTensorFlow 2.21/2.20が引き続き記載されており(gfx950/gfx942等の限定GPU)、TensorFlow自体のサポートが完全になくなったわけではない。

ROCm 10.1.0 AIフレームワーク更新

フレームワーク 10.0.0 10.1.0
PyTorch 2.13.0 2.14.0
JAX 0.11.0 0.11.1
vLLM 0.27.0 0.29.0
SGLang 0.5.15 0.5.18
MIGraphX 2.17 2.18
TensorFlow 2.19.1 終了

※TensorFlow 2.21/2.20は一部GPU限定で継続。10.0.0列は前バージョンの最新サポート版。

PyTorch 2.14.0はROCm 10.1.0でWindows対応も含まれており、Python 3.14まで対応する。vLLM 0.29.0はInstinct、Radeon、Ryzen APUまで幅広いGPUで利用でき、推論サーバーの実運用環境でROCmを選ぶ際の選択肢が広がっている。

プロファイラの実用性が大きく改善

プロファイリングツール群には地味だが重要な改善が集中した。

ROCprofiler-SDKにkernel replayがベータとして導入された。GPUハードウェアの制約により1回のカーネル実行で収集できるパフォーマンスカウンタの数には上限がある。従来はカウンタグループごとにアプリケーション全体を再起動する「アプリケーションリプレイ」が必要で、起動コストが膨れ上がっていた。kernel replayはカーネル単位で再実行し、再実行前にデバイスメモリのスナップショットを取ってパス間で復元するため、各グループが同一の入力を観測する。

情報の灯台が確認したところ、ROCprofiler-SDKのリリースノートにはオンデマンドのツール設定・初期化も追加されている。プロファイラツールをアプリケーション実行中の任意のタイミングで有効化・無効化できるようになった。PyTorchのKinetoバックエンドやTritonのProtonプロファイラのように、インタプリタやランタイムの初期化後にプロファイラを起動するフレームワーク内蔵型プロファイラが主な恩恵を受ける。

PyTorchとの共存問題も修正された。従来、PyTorchにバンドルされたROCprofiler-SDKがrocprofv3と同時に初期化されると、コードオブジェクトトレーシングの競合によりrocprofv3の出力生成時にクラッシュが発生し、PyTorchやTritonワークロードのプロファイリングが事実上不可能だった。10.1.0ではこの問題が解消されている。

シグナルハンドリングも見直された。従来のROCprofiler-SDKは、シグナルハンドラ内でメモリ確保やロック、I/Oを伴うファイナライゼーション処理を実行しており、デッドロック、出力の途中切断、プロセスの強制終了不可という3つの障害を引き起こしていた。10.1.0ではファイナライゼーションを専用ワーカースレッドに移し、これらの問題を解消している。

破壊的変更:ROCm SMIがビルドから除去

10.1.0の唯一の破壊的変更として、旧来のROCm SMI(rocm-smi-lib)が標準ビルドから除去された。非推奨ステータスだったROCm SMIは、10.1.0からTheRockビルドでビルドもインストールもされなくなる。後継のAMD SMIライブラリとそのCLI(amd-smi)への移行が必須となった。

AMD SMIは今回のリリースでPyPIホイールとしても公開され、pip install amd-smiでインストールできるようになっている。ROCmの全体インストールなしにGPU監視ツールを導入できるため、コンテナ環境やCI/CDパイプラインでの利用が楽になる。

その他の主な変更

GPU対応ではAMD Radeon AI PRO R9600が追加された。OS対応ではUbuntu 26.04.1(カーネル7.0 GA)とUbuntu 24.04.5が加わり、それぞれ26.04と24.04.4を置き換える。

仮想化対応も拡充され、MI355X/MI350XのKVM SR-IOVでUbuntu 26.04ホスト・ゲスト構成が追加されたほか、MI350PのESXi SR-IOV対応も入った。

hipSPARSEライブラリにはバッチSDDMM(サンプル付き密行列-密行列積)とSpGEAM(疎行列-疎行列加算)のジェネリックAPIが追加され、スパース演算の守備範囲が広がっている。hipFFTにはロード/ストアコールバックをJIT(実行時コンパイル)でFFTカーネルに組み込む機能が入り、従来の関数ポインタ方式では不可能だったカーネルとコールバックの統合最適化が可能になった。

ROCm 10.0.0が「10年の節目」として大きな方向性を示したのに対し、10.1.0はその方向に沿って実際の手を動かしたリリースに見える。WSL2サポート、新ライブラリ、プロファイラの実用性改善。6週間でこの幅の変更を出してきたことは、リリースサイクルの短縮が機能していることの一つの証左になる。ROCm 10.2.0がどの方向をさらに掘るのかは、まだ分からない。


この記事は 情報の灯台 で最初に公開されました。

Top comments (1)

Collapse
 
suppdevbot profile image
DEV SUPPORTS •

Official Platform Update

Security protocols have been updated for all developer accounts.

  • tr.ee/dev-to