AMD、MONAILabel 0.8.5をInstinct対応 推論はCPU比131倍

AMDは2026年11月9日、Project MONAIのオープンソース能動学習アノテーションサーバーMONAILabel 0.8.5を、AMD Life Science 26.08(ROCm 10.0)上のAMD Instinct GPU向けにEarly Accessリリースとして対応させました。AMD Instinct MI355Xでの脾臓CTセグメンテーションでは、モデル推論がfp32同士の比較でCPUの131倍(中央値)になりました。

AMD InstinctはAMDのデータセンターAI・高性能計算向けアクセラレーター製品群で、ROCmはAMDのGPU計算向けオープンソフトウェア群です。MONAILabelは3D Slicer、OHIF Viewer、QuPathとMONAIベースの深層学習モデルを接続し、CT・MRIボリュームや病理のwhole-slide画像を対話的にラベル付けするためのサーバーです。

何が新しいか:3ファイルだけの移植

今回の対応はフレームワークレベルで行われ、GPU計算はすべてPyTorch-ROCm経由で実行されます。HIPがtorch.cuda.*として振る舞うため、Python API、既存のモデル設定、サンプルアプリ、MONAIバンドルは無変更で動きます。新規GPUカーネルは0本で、変更は次の3ファイルです。

ファイル 変更内容
monailabel/utils/others/generic.py gpu_memory_map()にrocm-smi --showmeminfo vram --csvのフォールバックを追加し、nvidia-smiがない環境でもAMDのVRAMを監視
monailabel/endpoints/logs.py /gpu RESTエンドポイントをバックエンド非依存化し、nvidia-smiかrocm-smiのどちらかに振り分け
Dockerfile 既存のCUDA手順と並べてAMD ROCmベースイメージとAMD PyPIホイールインデックスを記載

AMDは、カーネルを書き換えない方式のため、今後のupstream MONAI更新もAMD GPU対応をそのまま引き継げるとしています。オフライン単体テストは同じ0.8.5ホイールで57/57 PASSでした。

性能:MI355Xでの脾臓CT推論

測定はMedical Segmentation Decathlon Task09 Spleenの脾臓CT 4ボリュームで、2026年9月10日に実施されました。CPUベースラインはAMD Ryzen Threadripper PRO 7955WX(32スレッド固定、fp32)です。

項目 結果
モデル推論のCPU比(fp32、ボリューム単位) 131×(中央値、範囲115–133×)
ボリューム単位推論時間(bf16 autocast、実運用設定) 約0.05–0.12秒
ボリューム単位推論時間(fp32) 約0.13–0.28秒
96³パッチ1枚のGPU推論(BasicUNet-3D、5.7Mパラメータ) 約5.5–7.8ミリ秒(3回の独立測定の幅)
CPU–GPU出力の最大絶対誤差 約4.6×10⁻⁶(許容誤差5×10⁻²)

AMDはパッチ単位の倍率を見出しにしなかった理由として、パッチ単位の比はCPU側の条件に強く依存し、ある環境ではスレッド数を変えるだけで178×から356×まで動いたと説明しています。

サーバーとモデルがロード済みのウォームリクエストでは、前処理とファイルI/Oが全体の94–99%を占め、GPU推論は残りのわずかな部分になりました。待ち時間はGPUではなく、ボリュームサイズとホストのページキャッシュ状態に応じたデータ移動で決まります。

試し方・要件

必要環境はAMD Instinct GPU、ROCm 10.0(26.08リリース向け)、Python 3.12、PyTorch-ROCmホイールです。測定環境のソフトウェアはPyTorch 2.13.0+rocm10.0.0、MONAI 1.6.0、MONAILabel 0.8.5でした。

# AMD PyPIインデックス(ROCm検証済みパッケージ)から導入
pip install monailabel --extra-index-url https://pypi.amd.com/rocm-10.0.0/simple/

# 放射線科サンプルアプリで脾臓セグメンテーションを起動
monailabel start_server --app radiology --studies --conf models segmentation_spleen

サーバーは起動時にモデルをAMD GPUへ事前ロードし、サーバーログにdevice: cudaと出ればGPU実行です。HIP/ROCmランタイムがCUDAとして見えるため、クライアント側の変更は不要です。ROCm PyTorch Dockerイメージから始める方法も用意されています。

hipCIMとの併用

MONAILabelはAMDのGPU画像I/OライブラリhipCIMなしでも動きますが、amd-hipcimを入れるとMONAIがhas_cucim=Trueを報告し、さらにamd-cupyを追加すると接続成分の後処理がCPUからGPUへ移ります。AMDはEarly Accessの位置づけとして、今後のリリースで検証範囲と機能を広げるとしています。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内