AMD ROCm:GPU常駐型YOLO26パイプラインがデコードから検出まで動画フレームをVRAMに保持
AMDは、rocDecode、DLPack、PyTorch、MIGraphXを組み合わせたGPU常駐型物体検出パイプラインを発表した。動画フレームが最終的な検出結果が得られるまでVRAMから一切出ないアーキテクチャを実証した。
この記事はAIにより一次情報源から生成されました。
AMDはROCmブログで、rocDecode、DLPack、PyTorch、MIGraphXを組み合わせた4段階のGPU常駐型物体検出パイプラインを詳細に解説し、動画フレームが圧縮ビットストリームからバウンディングボックスまで不要なデータコピーなしに処理できることを実証した。
リアルタイム検出において「GPU常駐」が重要な理由は?
物体検出のための従来の動画処理アプローチはCPUデコーディングに依存し、フレームをRAMに移してからGPUメモリに転送する。この各遷移にはコストがかかる:PCIeバスがボトルネックになり、レイテンシーが増加し、CPUは賢い作業の代わりに単純なデータコピーに費やされる。
AMDのアプローチはこれらの遷移を排除する。圧縮されたH.264またはH.265ビットストリームはPCIeバスを一度だけ越え、残りはすべてGPU内でのみ行われる。フレームはrocDecodeライブラリを介してVRAM内に直接デコードされ、前処理と推論を経てVRAMに留まり、ホストメモリに渡るのはバウンディングボックス、信頼度スコア、クラスIDからなる最終的な検出結果のみだ。
パイプラインの4段階
第1段階はハードウェアによる動画デコーディングだ。Video Core Next(VCN)――AMD GPU内の専用ブロック――はGFXコンピュートコアを使わずにH.264とH.265をネイティブにデコードする。ROCm 7.2.2環境下のAMD Radeon AI PRO R9700での1920×1080 H.264入力の測定では、VCN使用率がわずか約**10%であるのに対し、コンピュートコアは並行して約21%**の使用率で動作している。両エンジンは同時かつ独立して動作する。
第2段階はフレームダウン間のゼロコピー転送だ。DLPackライブラリは人気のあるすべてのフレームワークが理解するメモリ内のテンソルの標準レイアウトを定義する。デコードされたフレームサーフェスは新しいバッファーにコピーされない――DLPackラッパーは既存のVRAMロケーションを参照し、アロケーションなしにPyTorchに渡す。出力テンソルは一度アロケートされ、各フレームで再利用される。
第3段階は推論だ。MIGraphX――AMDのグラフ推論エンジン――はFP16量子化でYOLO26モデルをコンパイルし、中間ソフトウェア層なしにAMD GPU上でネイティブに実行する。
第4段階は検出のフィルタリングだ。UltralyticsのモデルYOLO26はエンドツーエンドでNMS(Non-Maximum Suppression)を内蔵している:出力はフレームあたり**[1, 300, 6]**の次元テンソルで――各行にバウンディングボックス座標(x1, y1, x2, y2)、信頼度スコア、クラスIDが含まれる。YOLO11などの旧モデルでは推論後に別途NMSフェーズが必要だったが、YOLO26はこれを排除している。
PCIeバスを越えるものと越えないもの
これがCPUデコーディングとの重要な違いだ。PCIeバスを越えるのは入力の圧縮動画ビットストリームのみだ。生のデコードされたフレーム(1920×1080、YUV420で各約6MB)はVRAMから一切出ない。ホストメモリに渡るのは最終的な検出結果のみ――フレームあたり通常数百バイト――これは無視できる帯域幅だ。
参照ハードウェアとソフトウェアスタック
パイプラインは専用VCNエンジンを持つワークステーションGPUAMD Radeon AI PRO R9700で実証された。同じスタックはAMD Instinct MI300X、MI325X、MI350X、MI355XファミリーのデータセンターカードでもMIGraphX動作する。ソフトウェアレイヤーはROCm 7.2 / ROCm 7.2.2に基づいている。
テスト入力はH.264コーデックで16fps、1920×1080解像度のAI生成サイクリング動画15秒だった。OpenCVベースライン(CPUデコーディング)との比較では、rocDecodeパスがより高いVCNおよびGFXアクティビティを示している――より高いGPUリソース使用率を意味するが、CPUエンゲージメントは大幅に低くフレームのPCIeトラフィックはゼロだ。サポートされるコーデックはH.264とH.265で、新世代のGPUではVCNエンジンはAV1とVP9もサポートする。
メモリモデルについては、rocDecodeは「device-copied」出力モードを使用してDLPack互換のサーフェスを生成する。これはフレームごとの出力テンソルがフレームごとのアロケーションを必要としないことを意味する――一度アロケートされたバッファーはセッション全体を通じて再利用され、GPUアロケーターへの負荷を排除する。
本番の物体検出への示唆
AMDが実証するアプローチは学術的な実験ではない――公開されているコンポーネント(rocDecode、PyTorch、MIGraphX)と本番使用中のモデル(Ultralytics YOLO26)の具体的な統合だ。リアルタイムで動画を処理するあらゆるアプリケーション――監視カメラ、産業検査、自律走行車――にとって、このようなパイプラインはCPUオーバーヘッドの削減、レイテンシーの低下、マルチストリームシナリオでのスケーラビリティ向上を意味する。デコーディングとコピーから解放されたCPUは、物体追跡や結果のシリアライゼーションなどのダウンストリームタスクを並行して実行できる。
よくある質問
- GPU常駐型パイプラインとは何か、なぜ重要ですか?
- GPU常駐型パイプラインは動画フレームがデコード、前処理、推論、フィルタリングのすべての処理段階においてVRAM内に留まり、ホストメモリへのコピーが発生しないことを意味します。これによりPCIeバスのボトルネックが解消され、CPUは他のタスクに解放されます。
- VCNとは何か、動画デコードにどう役立ちますか?
- Video Core Next(VCN)はAMD GPU内の専用ハードウェアブロックで、コンピュートコア(GFX)を使わずにH.264およびH.265動画をデコードします。VCNが約10%の使用率で動作する間、GFXコンピュートは並行して約21%の使用率で推論を実行します。2つの専用エンジンが同時に動作します。
- YOLO26モデルの出力テンソルはどのような形状で、何が新しいですか?
- UltralyticsのYOLO26はフレームごとに形状[1, 300, 6]のテンソルを生成します。バウンディングボックス座標、信頼度スコア、クラスIDが含まれており、NMSステップがエンドツーエンドで組み込まれています。YOLO11などの旧モデルでは推論後に別途NMSフェーズが必要でした。