
データセットのサイズ増大や、画像キャプチャ技術の改善、ビジュアルデータから多くの情報を抽出する能力の向上、および入力データとして画像を含む大規模言語モデルへの移行などによって、ワークロードを適切に実行するためには効率的な画像変換と準備が不可欠になっています。AMDの「rocJPEG」はROCmプラットフォームとAMD Instinct GPUを使用して、4k画像のデコード速度が最大50倍高速になるとのことです。
Accelerated JPEG decoding on AMD Instinct™ GPUs with rocJPEG — ROCm Blogs
https://rocm.blogs.amd.com/artificial-intelligence/rocjpeg-decoding-performance-blog/README.html
rocJPEG documentation — rocJPEG 0.8.0 Documentation
https://rocm.docs.amd.com/projects/rocJPEG/en/latest/
「ROCm」はAMDが注力している「Radeon Open Compute platrofm」のことで、2023年に「社内で最も優先度の高い事業」とされています。
AMDのGPUには1つ以上のメディアエンジン(VCN)が搭載されていて、それぞれのVCNは1つ以上のJPEGエンジンがあり、高速化されたハードウェアベースのJPEGデコードを提供しています。
ハードウェアベースのデコーダーを用いると、CPUベースでデコードするよりも消費電力が低くなります。また、CPUからデコードタスクを切り離すことで、全体的なデコードのスループットが向上します。適切な電力管理が行われると、ハードウェアデコードはシステム全体の消費電力も下げつつデコード性能を向上させることができます。
rocJPEGのAPIを使用することで、圧縮されたJPEGストリームをデコードし、生成されるYUV画像をビデオメモリに保存することができます。デコードされた画像をビデオメモリに保存することで、ROCm HIPを使用した画像の後処理を実行し、PCIeバス経由の不要なデータコピーを回避できます。
また、rocJPEG APIにより、GPUデバイスで利用可能なVCNやJPEGエンジンの数に基づき、JPEGデコーダの複数インスタンスを作成できます。デバイス用にデコーダを設定すると、利用可能なすべてのVCNを、JPEGストリームのバッチを並列にデコードするためにシームレスに使用できます。
JPEGデコードの効率的な並列化は、AI/MLトレーニングや高スループットの画像処理など、デコードがボトルネックになることが多いアプリケーションで特に有用だとのこと。
AMDは2025年4月、1000枚の画像を含むデータセットで1秒間に処理される画像数を測定するテストを行いました。テストの結果、AMD Instinct MI300X GPU上でバッチサイズが128で16スレッドのrocJPEGベンチマークを実行すると、TurboJPEGライブラリで測定した従来のCPUと比較して、速度は最大50倍に向上したとのことです。
以下は1920×1080のJPEG画像のデコード速度を示したグラフで、左の塊が1スレッド時、右の塊が16スレッド時。いずれのグラフも左端のCPUに比べて、右4つのrocJPEG利用が高速であることが示されています。
4K画像(3840×2160)でも同様の傾向となりました。
この記事のタイトルとURLをコピーする
Views: 1