arXiv論文メモ
新着一覧
cs.DC / cs.PL · 査読状況未確認

Awkward ArrayをAMD GPUへ移植し不規則処理を最適化

Bridging the Vendor Gap: Enabling AMD GPU Support for Awkward Array via ROCm/HIP for the HL-LHC Era

Ianna Osborne, Maxym Naumchyk, Tai Sakuma, Andres Rios-Tascon, Peter Elmer

この論文をやさしく読む

ひとことで言うと

素粒子物理解析で使う不規則な配列処理を、AMD GPUでも速く動かす実装研究です。単純なコード変換では遅くなるため、GPUの構造に合わせて処理を組み替えています。

何に役立つ?

AMD GPUを持つ計算機でAwkward Arrayを利用するための実装例と最適化の指針になります。公開APIを維持するため、利用側の呼び出し方法を大きく変えずに対応できます。

この研究の面白いところ

融合を増やすだけでなく、融合したカーネルを分割することも有効な最適化に含まれています。ベンダー共通の呼び出し口の下で、異なる実行戦略を選びます。

どこまで分かった?

1.03~12.5倍は128 CPUコアとの比較であり、NVIDIA GPUに対する倍率ではありません。0.37倍は12個のCPUカーネルの実行時間比の幾何平均です。効果は処理とハードウェアの条件によって異なります。

v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。

アブストラクトの日本語訳

高輝度LHC(HL-LHC)では、解析スループットを桁単位で向上させる必要があり、その向上は単一ベンダーに限らないGPUから得ることがますます重要になる。El Capitan、Frontier、LUMIといった最上位規模のシステムはAMDアクセラレーターを採用している一方、Scikit-HEPの解析ソフトウェア群、特にAwkward ArrayはCUDAを優先して発展してきた。本研究では、Awkward Arrayの入れ子状、不規則、可変長のデータ構造にROCm/HIPバックエンドを追加する、Rustを基盤としたカーネルエンジンrawkwardについて報告する。 中心的な知見は、CUDAカーネルをソースレベルで素朴にHIPへ移植すると、不規則なカーネルの性能が5~10倍悪化することである。AMDの64レーンのウェーブフロント、より高いレジスター圧力、より高コストな分岐の分岐先不一致は、NVIDIAの32スレッドのワープとは根本的に異なる振る舞いをするためである。ループの平坦化、128ビットのベクトル化ロード、融合カーネルの分割、プロファイルに基づく起動設定という、少数の再利用可能な最適化パターンにより、公開APIを変えずにCUDA並みの性能を回復できることを示す。 Rustのマクロとmatchによるディスパッチ層は、ベンダー固有のカーネル戦略を生成しながら、バックエンドに依存しない単一の呼び出し箇所を維持する。また、型システムがバッファーサイズと生存期間の正しさをコンパイル時に保証する。2ソケットのAMD Instinct MI210ノードでは、EPYC 7763の128 CPUコアに対し、GPUの高速化率は、メモリ帯域に制約されるsumで1.03倍、countで最大12.5倍となった。RustのCPUカーネルも、総合的には既存のC++カーネルに匹敵するか上回り、12カーネルにわたる実行時間比の幾何平均は0.37倍だった。これらのパターンは、性能の移植性を備え、ベンダーに依存しない高エネルギー物理解析カーネルを作るための実践的な手順になると論じる。

v1の要旨から自動生成。本文の精読・人による確認は未実施。

初稿
2026-09-21(UTC)
最新改訂
2026-09-21 · v1
査読・掲載
査読状況未確認
arXivで読むPDF

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

The High-Luminosity LHC (HL-LHC) will demand order-of-magnitude gains in analysis throughput, and increasingly those gains must come from GPUs that are not made by a single vendor. Leadership-class systems such as El Capitan, Frontier and LUMI are built on AMD accelerators, yet the Scikit-HEP analysis stack---and Awkward Array in particular---has grown up CUDA-first. We report on $rawkward$, a Rust-backed kernel engine that adds a ROCm/HIP backend for Awkward Array's nested, jagged, variable-length data structures. Our central finding is that a naive source-level port of CUDA kernels to HIP loses $5$--$10\times$ in performance on irregular kernels, because AMD's $64$-lane wavefronts, higher register pressure and more expensive divergence behave fundamentally differently from NVIDIA's $32$-thread warps. We show that a small, reusable set of optimization patterns---loop flattening, $128$-bit vectorized loads, splitting fused kernels, and profile-guided launch configuration---recovers CUDA-class performance without changing the public API. A Rust macro-and-match dispatch layer keeps a single, backend-agnostic call site while emitting vendor-specific kernel strategies, and the type system enforces buffer-size and lifetime correctness at compile time. On a two-socket AMD Instinct MI210 node we measure GPU speedups from $1.03\times$ (bandwidth-bound $sum$) up to $12.5\times$ ($count$) over $128$ EPYC~7763 CPU cores, and the Rust CPU kernels match or beat on aggregate the incumbent C++ kernels (geometric-mean runtime ratio $0.37\times$ across twelve kernels). We argue that these patterns constitute a practical recipe for performance-portable, vendor-agnostic HEP analysis kernels.

著者のコメント

8 pages, 2 figures

arXiv ID: 2609.24628 / 要約の誤りについて