# GPU Partitioning, Power, and Performance of the AMD MI300A > [!abstract] 概要 > 現代のGPUは、広範な計算ワークロードを高速化する上で極めて重要な役割を果たしている。これらのワークロードを最適化したり、より適切な構成やアルゴリズムを選択したりするためには、特定のハードウェア上におけるそれらの性能限界を理解することが重要である。世界最速のスーパーコンピュータであるEl Capitanは、11,520基のAMD MI300A Accelerated Processing Unit(APU)で構成されている。MI300A APUは、計算リソースの割り当てを最適化するために、SPX、TPX、CPX(それぞれ単一、三重、コア分割)の3つの論理パーティショニングモードをサポートしており、性能チューニングの新たな機会を提供する。本研究では、異なるGPUパーティショニングモードにおけるMI300A APUの性能を評価し、RAJA Performance Suiteに代表される多様な計算カーネルにわたる性能への影響を実証する。ハードウェアカウンタ分析を用いて、ステンシルカーネルにおいて異なるモード間で最大30%に達する実行時間の差異を説明する。さらに、APUのアクセラレータ計算ユニット間における動的電力共有についても調査する。電力共有により、APUはワークロードの実行挙動に基づいてCPUとGPUの間で電力リソースを動的に割り当てることが可能になる。我々は、電力のスロットリングにより、特にFLOP制約(計算律速)のカーネルにおいて最大20%の速度低下が生じることを観測した。 ## 論文情報 - **標題**: GPU Partitioning, Power, and Performance of the AMD MI300A - **著者**: Amr Abouelmagd (Tennessee Tech Univ.), David Boehme, Stephanie Brink, Jason Burmark, Michael McKinsey (LLNL), Anthony Skjellum (Tennessee Tech Univ.), Olga Pearce (LLNL) - **発表先**: SCA/HPCAsia 2026: Supercomputing Asia and International Conference on High Performance Computing in Asia Pacific Region (2026年1月26〜29日、大阪) - **DOI**: 10.1145/3773656.3773680 - **研究機関**: [[Lawrence Livermore National Laboratory]] (LLNL), Tennessee Technological University - **評価環境**: LLNL スーパーコンピュータ Tuolumne (1,152ノード、各ノードに4基の [[AMD Instinct MI300A]] APU、計512 GB HBM) ## 概要 本論文は、ローレンス・リバモア国立研究所(LLNL)のエクサスケール・スーパーコンピュータ「El Capitan」および「Tuolumne」に採用されている **AMD Instinct MI300A APU** を対象に、**論理GPUパーティショニングモード(SPX・TPX・CPX)** が計算性能に与える影響と、パッケージ内の **動的電力共有(Dynamic Power Sharing)** および電力スロットリングの挙動を包括的に分析した研究である。 科学技術計算の代表的なカーネル群を集約した **RAJA Performance Suite (RAJAPerf)** をベンチマークとして用い、以下の2つの根本的な知見を実証・解明した: 1. **GPUパーティショニングとキャッシュ局所性**: 1D線形アクセスカーネル(`Polybench_JACOBI_1D`)ではパーティショニングモード間で性能差が生じない一方、2Dステンシル計算(`Polybench_JACOBI_2D`)では最大30%もの実行時間差が発生する。この要因は、デフォルトのSPXモードがスレッドブロックをXCD(Accelerator Complex Die)間でラウンドロビン分配することでプライベートL2キャッシュのスラッシングを引き起こす点にあり、XCDを意識したブロック配置(XCD-mapped block assignment)を適用することでSPXモードでもCPXと同等の最高性能を達成できる。 2. **動的電力共有と周波数スロットリング**: 550WのTDP(熱設計電力)制約下で、複数XCDに高負荷な計算集約型カーネル(ZGEMM)が同時に投入されると、3 XCD以上でTDP上限に達し、ファームウェアによる動的電圧・周波数制御(DVFS)によってグラフィックスクロック周波数が低下(最大20%のスロットリング)する。このスロットリングによる性能低下はFLOP制約カーネル(計算律速)で顕著(最大20%減速)であるのに対し、メモリ制約カーネル(メモリ帯域律速)では周波数低下の影響をほとんど受けない。 ## 問題設定 エクサスケール時代のスーパーコンピュータでは、ヘテロジニアスプロセッサの集積度と電力密度が極限に達している。AMD MI300Aは、同一シリコンパッケージ内にCPUとGPUを混載したAPU(Accelerated Processing Unit)であり、従来のディスクリートGPUシステムでボトルネックとなっていたPCIe経由のホスト・デバイス間データ転送を排除し、統一された物理メモリ空間(128 GB HBM3)を提供する。 しかし、この高度に集積されたチップレット構造とマルチダイ構成は、アプリケーション最適化において以下の新たな複雑性をもたらす: 1. **論理GPUパーティショニングの振る舞い**: MI300Aは6基のアクセラレータダイ(XCD)を備えており、ハードウェア構成として単一デバイスに見せるSPX、3分割のTPX、6分割のCPXという3つの論理パーティショニングモードをサポートしている。同一ノード・同一総ワークロードであっても、実行モードによってワークロードの配置とキャッシュ階層の利用効率がどのように変化するかは未解明であった。 2. **共有電力バジェットと熱・周波数スロットリング**: 単一ソケット内で24個のZen 4 CPUコアと228個のGPUコンピュートユニット(CU)が550Wの共通TDP枠を共有するため、複数プロセスが異なるXCDで同時実行された際に、電力の偏りやスロットリングが個別のアプリケーションカーネル性能にどのように波及するかが不明瞭であった。 ## 提案手法・アーキテクチャ分析 ### MI300A アーキテクチャとパーティショニングモード MI300A APUは、6基のXCD(GPU計算ダイ、各38 CU、計228 CU)、3基のCCD(CPUコアダイ、各8 Zen 4コア、計24コア)、および中央のInfinity Fabricと8スタックのHBM3(128 GB、128チャネル)から構成される。各XCD内には、そのダイ内のCU群が共有する 4 MB のプライベートL2キャッシュが存在する。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig01-mi300a-architecture.png]] *Figure 1: MI300A architecture (adopted from [25]). 6基のXCD、3基のCCD、Infinity Fabric、およびHBM3が同一パッケージに統合されている。* MI300Aが提供する3つの論理パーティショニングモード(Figure 2)の構成は以下の通りである: - **SPX (Single-Partition X-celerator)**: デフォルトのモード。全6基のXCD(228 CU)と128 GB HBMが単一の論理GPUデバイスとして公開される。ワークロードのスレッドブロックは全6基のXCDへラウンドロビン方式で自動分散される。 - **TPX (Triple-Partition X-celerator)**: GPUを3つのパーティションに分割。各パーティションは2基のXCD(76 CU)とインターリーブされた約32 GBのHBMメモリで構成される。 - **CPX (Core-Partitioned X-celerator)**: 6基のXCDそれぞれが完全に独立した論理GPUデバイスとして扱われる(ダイあたり38 CU)。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig02-partitioning-modes.png]] *Figure 2: Illustration of SPX, TPX and CPX partitioning modes in AMD MI300A (adopted from [1]).* ### ソフトウェアエコシステムと計測手法 本研究ではLLNL主導の先進的なHPCソフトウェアエコシステムを活用している: - **RAJAPerf**: RAJA性能ポータビリティ抽象層の上に構築されたベンチマーク群。7カテゴリ(Algorithms, Applications, Basic Patterns, Communication, LCALS, Polybench, Stream)の計算カーネルを収録。 - **Benchpark**: 複数実行構成・パーティショニングモードにわたる再現可能なベンチマーク実行自動化フレームワーク。 - **Caliper**: アプリケーション内計測ライブラリ。CPU壁時計時間およびGPUカーネル実行時間を収集。 - **AMD rocprofv3**: ハードウェア性能カウンタの収集。L1/L2キャッシュ利用率、HBMメモリアクセス要求などを精緻に追跡。 - **AMD System Management Interface (amd-smi)**: 1 Hz周期でのAPU全体消費電力、GFX(グラフィックス)クロック周波数、メモリクロック周波数、温度テレメトリの計測。 - **Thicket**: 大規模アンサンブル実行データの探索的データ分析・コールツリー集約ツール。 ## 新規性 1. **エクサスケール実機(MI300A)におけるGPUパーティショニングの包括的検証**: 単一ベンチマークの予備評価にとどまらず、多様な計算パターンを持つRAJAPerfの全カーネル群を用いてSPX・TPX・CPXの性能特性を系統的に実測・分類した初の研究。 2. **ハードウェアカウンタによる局所性劣化メカニズムの解明**: 2Dステンシルで生じる最大30%の性能低下が、GPUモードそのものではなく「マルチダイ(XCD)プライベートL2キャッシュとラウンドロビン配置の不一致」に起因することを特定し、XCDマッピングを意識したスレッドブロック配置による性能回復手法を提示した点。 3. **APU動的電力共有とスロットリングの定量的プロファイリング**: 550W TDP制約下でのXCD間競合による周波数低下(最大20%減速)の実態を明らかにし、FLOP律速とメモリ律速での脆弱性の劇的な違いを実証した点。 ## 実験設定 - **テストベッド**: LLNL Tuolumne クラスタ(1,152ノード、各ノードに4基のMI300A APU、計512 GB HBM)。 - **ソフトウェアスタック**: LLVM clang 19、AMD ROCm 6.4.2、RAJA_HIPバックエンド(スレッドブロックサイズ256)。 - **問題規模の設定**: ノード全体の総問題規模を536,870,912要素に固定。 - SPX: 4プロセス(APUあたり1プロセス)、プロセスあたりサイズ 134,217,728 - TPX: 12プロセス(APUあたり3プロセス)、プロセスあたりサイズ 44,739,072 - CPX: 24プロセス(APUあたり6プロセス)、プロセスあたりサイズ 22,369,280 ## 実験結果 ### 1. RAJAPerf 全体におけるパーティショニングモード比較 Figure 3 は、SPX、TPX、CPXモードにおける全RAJAPerfカーネルの平均実行時間を示している。カーネル群は大きく2つに分類される: - **モード間で同等の性能を示すグループ**: `Algorithm_MEMSET`, `Algorithm_MEMCPY`, `Stream_TRIAD`, `Lcals_DIFF_PREDICT`, `Polybench_JACOBI_1D` など。 - **モード間で顕著な性能差が生じるグループ**: `Polybench_JACOBI_2D`, `Basic_MAT_MAT_SHARED`, `Polybench_FDTD_2D`, `Polybench_HEAT_3D`, `Apps_DEL_DOT_VEC_2D` など。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig03-rajaperf-runtime-modes.png]] *Figure 3: Runtime for the RAJAPerf kernels in SPX, TPX, and CPX modes (same problem size per APU, 6 XCDs running 1, 3, or 6 concurrent processes (i.e., ranks)).* ### 2. 1D vs 2D Jacobi によるメモリ階層とキャッシュ局所性の解明 1D線形アクセスと2Dステンシルというメモリアクセスパターンの違いを単離するため、`Polybench_JACOBI_1D` と `Polybench_JACOBI_2D` の疑似コード(Figure 4)を比較した。Figure 4b に示す1Dヤコビは配列を線形順序で走査するのに対し、Figure 4c に示す2Dヤコビは各格子点の計算で上下左右の近傍要素(3行にまたがるアクセス)を要求する。 ```c // Figure 4b: Polybench_JACOBI_1D (線形メモリアクセスパターン) for (i = 1; i < N/p - 1; i++) { B[i] = 0.33333 * (A[i - 1] + A[i] + A[i + 1]); } for (i = 1; i < N/p - 1; i++) { A[i] = 0.33333 * (B[i - 1] + B[i] + B[i + 1]); } ``` ```c // Figure 4c: Polybench_JACOBI_2D (2Dステンシル、1反復あたり3行を参照) for (i = 1; i < N/p - 1; i++) { for (j = 1; j < N/p - 1; j++) { B[i][j] = 0.2 * (A[i][j] + A[i][j - 1] + A[i][j + 1] + A[i + 1][j] + A[i - 1][j]); } } for (i = 1; i < N/p - 1; i++) { for (j = 1; j < N/p - 1; j++) { A[i][j] = 0.2 * (B[i][j] + B[i][j - 1] + B[i][j + 1] + B[i + 1][j] + B[i - 1][j]); } } ``` *Figure 4: Pseudocode for RAJAPerf kernels: Polybench_JACOBI_1D and Polybench_JACOBI_2D. Each CPU process (p) executes in parallel.* rocprofv3を用いて収集したハードウェアカウンタ(Table 1)と実行時間の測定結果を Table 1 および Figure 5 に示す。 | メトリクス名 | 定義 | | :--- | :--- | | `SQC_DCACHE_MISSES` | シェーダキューコントローラ(SQC)における非重複スカラーL1データミス数(非キャッシュ要求含む) | | `SQC_DCACHE_MISSES_DUPLICATE` | SQCにおける重複スカラーL1データミス数 | | `SQC_ICACHE_MISSES` | SQCにおける非重複L1命令キャッシュミス数(非キャッシュ要求含む) | | `SQC_ICACHE_MISSES_DUPLICATE` | 同一キャッシュライン上の先行検索ミスが未完了である重複L1命令キャッシュミス数 | | `TCC_READ_sum` | テクスチャキャッシュコントローラ(TCC)が処理したL2キャッシュ読み取り要求数(圧縮読み取り含む、メタデータ除く) | | `TCC_WRITE_sum` | TCCが処理したL2キャッシュ書き込み要求数 | | `TCC_MISS_sum` | TCCが処理したL2キャッシュミス数 | | `TCC_EA0_RDREQ_DRAM_sum` | TCCからHBMへ発行された32バイトまたは64バイトの効率アービタ読み取り要求数 | | `TCC_EA0_WRREQ_DRAM_sum` | TCCからHBMへ発行された32バイトまたは64バイトの効率アービタ書き込み要求数 | *Table 1: Definitions of collected hardware counters using rocprofv3.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig05-hardware-counters-jacobi.png]] *Figure 5: Execution time and hardware counters for Polybench_JACOBI_1D and Polybench_JACOBI_2D in different GPU partitioning modes presented in a table (both kernels) and bar+line charts (one per kernel).* 測定データから以下の事実が判明した: - **Polybench_JACOBI_1D**: SPX(2.60秒)、TPX(2.71秒)、CPX(2.66秒)でほぼ同一。L2ミス数(`TCC_MISS_sum`)も約0.57×10^11で一定。 - **Polybench_JACOBI_2D**: SPX(4.86秒)に対し、TPX(4.52秒)、CPX(3.55秒)とCPXが約27〜30%高速化。L2ミス数はSPXで1.134×10^11であったのに対し、CPXでは0.672×10^11へと激減し、HBMへの読み取り要求数(`TCC_EA0_RDREQ_DRAM_sum`)も6.404×10^10から3.361×10^10へと半減した。 この原因は、スレッドブロックのXCDへのマッピング方式にある(Figure 6)。 - **Figure 6a (SPX: round-robin)**: 行内の隣接ブロックが異なるXCD(0, 1, 2, 3, 4, 5...)に割り振られる。各XCDのL2キャッシュはプライベートであるため、空間的局所性が失われ、3行を参照する2Dステンシルではキャッシュラインが再利用される前に追い出される(スラッシング)。 - **Figure 6b (TPX: round-robin)**: 3プロセスがそれぞれ2基のXCDペアにブロックを割り振るため、局所性はSPXとCPXの中間となる。 - **Figure 6c (CPX: round-robin)**: 6プロセスがそれぞれ割り当てられた単一XCDにブロックを閉じて投入する。行1〜2がXCD 0、行3〜4がXCD 1のように連続行が同一XCDに集約され、L2キャッシュヒット率が最大化される。 - **Figure 6d (SPX: XCD-mapped)**: 著者らが考案した最適化配置。SPXモードのまま、スレッドブロックIDの計算を変更してCPXと同様に連続ブロックを同一XCDに集約するマッピングを行ったところ、実行時間は3.59秒となり、L2ミス数も0.6719×10^11とCPX同等の性能を完全に再現した。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig06-block-assignment-jacobi2d.png]] *Figure 6: Block assignment of Polybench_JACOBI_2D to XCDs on MI300A in different execution modes: (a) SPX: round-robin, (b) TPX: round-robin, (c) CPX: round-robin, (d) SPX: XCD-mapped.* ### 3. 動的電力共有と周波数スロットリングの動態 APUの電力共有挙動を調査するため、1基のXCDでターゲットカーネル(`Basic_MAT_MAT_SHARED` または `Stream_TRIAD`)を実行し、残りの0〜5基のXCD上で高負荷な行列積カーネル **ZGEMM** を背景プロセスとして実行した。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig07-timeline-power-temp-matmat.png]] *Figure 7: Timeline of APU power consumption and memory temperature when running RAJAPerf Basic_MAT_MAT_SHARED kernel on one XCD, and ZGEMM in the background on 0-5 XCDs. Samples at a rate of 1 Hz using amd-smi.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig08-timeline-clock-matmat.png]] *Figure 8: Timeline of APU graphics and memory clock frequency when running RAJAPerf Basic_MAT_MAT_SHARED kernel on one XCD, and ZGEMM in the background on 0-5 XCDs. Samples are taken at a rate of 1 Hz using amd-smi.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig09-timeline-power-temp-stream.png]] *Figure 9: Timeline of APU power consumption and memory temperature when running RAJAPerf Stream_TRIAD kernel on one XCD, and ZGEMM in the background on 0-5 XCDs. Samples are taken at a rate of 1 Hz using amd-smi.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig10-timeline-clock-stream.png]] *Figure 10: Timeline of APU graphics (GFX) and memory clock frequency when running RAJAPerf Stream_TRIAD kernel on one XCD, and ZGEMM in the background on 0-5 XCDs. Samples are taken at a rate of 1 Hz using amd-smi.* - 単独の `Stream_TRIAD`(0 ZGEMM + 1 Stream_TRIAD)は実行時間わずか1.25秒で、アイドル電力約150Wから最大299Wまでしか達しない(Figure 9a)。 - 背景のZGEMMプロセスを増やすと消費電力は増大し、3つのZGEMMプロセスが同時に走るとAPU電力は上限の 550W TDP に達する(Figure 11a, Figure 11b)。 - TDPに達するとファームウェアの熱管理機構(DVFS)が作動し、グラフィックスクロック周波数(GFX Clock)を定格の2,100 MHzから1,600〜1,500 MHz程度へと引き下げる(Figure 11c, Figure 11d)。一方、メモリクロック周波数は1,300 MHzで終始変動しない(Figure 11e)。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11a-max-apu-power.png]] *Figure 11a: Max APU Power vs Num XCDs.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11b-median-apu-power.png]] *Figure 11b: Median APU Power vs Num XCDs.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11c-max-gfx-frequency.png]] *Figure 11c: Max GFX Frequency vs Num XCDs.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11d-median-gfx-frequency.png]] *Figure 11d: Median GFX Frequency vs Num XCDs.* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11e-max-memory-frequency.png]] *Figure 11e: Max Memory Frequency vs Num XCDs (1300 MHzで一定).* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig11f-median-energy.png]] *Figure 11f: Median Energy Usage vs Num XCDs.* *Figure 11: Max. and median power, graphics (GFX) clock frequency, and memory clock frequency for four workloads.* ### 4. コ・ロケーションとスロットリングのカーネル種別影響 Figure 12 は、ZGEMMインスタンス数増加に伴う `Stream_TRIAD` と `Basic_MAT_MAT_SHARED` の実行時間の推移を示している。計算律速の `Basic_MAT_MAT_SHARED` はZGEMMの増加に伴い実行時間が顕著に悪化する。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig12-execution-time-vs-zgemm.png]] *Figure 12: Execution time of RAJAPerf Basic_MAT_MAT_SHARED or Stream_TRIAD running at the same time as an increasing number of ZGEMM processes.* さらに、全RAJAPerfカーネルに対してZGEMM(0〜5プロセス)をコ・ロケーションした際の平均実行時間および減速率(Percent Slowdown)を Figure 13 に、各カーネルの達成FLOPSレートとメモリ帯域幅を Figure 14 に示す。 ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig13-rajaperf-slowdown-zgemm.png]] *Figure 13: Average execution time for each RAJAPerf kernel as the number of ZGEMM processes (i.e., ranks) increases (left) and the percent slowdown relative to running without ZGEMM (right). The number of processes running ZGEMM is varied from 0 processes to 5 processes (the RAJAPerf kernel runs with one process).* ![[_attachments/GPU-Partitioning-Power-and-Performance-of-the-AMD-MI300A/fig14-flops-and-bandwidth.png]] *Figure 14: FLOPS rate (left) and memory bandwidth (right) for each kernel for 1 process on 1 XCD. The number of processes (i.e., MPI ranks) running ZGEMM is varied from 0 processes to 5 processes, meaning utilization of all 6 XCDs.* - **メモリ制約カーネル(Memory-bound)**: `Algorithm_MEMCPY`, `Algorithm_MEMSET`, `Basic_COPY8`, `Basic_INIT3`, `Lcals_DIFF_PREDICT` など。これらはFLOPSレートがほぼゼロで、ピークメモリ帯域幅(単一XCDあたり約700 GB/s)に達している。グラフィックスクロック周波数が低下しても実行時間はほとんど変化せず、減速率は全設定を通じて極小にとどまる。 - **計算制約カーネル(Compute-bound / FLOP-bound)**: `Apps_DEL_DOT_VEC_2D`, `Apps_FIR`, `BASIC_MAT_MAT_SHARED`, `Apps_VOL3D`, `Polybench_HEAT3D` など。高いFLOPレート(単一XCDあたり最大約750 GFLOPS)を持つこれらは、わずか1〜2プロセスのZGEMM競合でも周波数スロットリングの影響を受け始め、5プロセス時には最大20%の速度低下に見舞われる。 - **多段階スロットリングの傾向**: Figure 13右側のクラスタリング分析から、ファームウェアが電力抑制のために5%、10%、20%といった多段階のスロットリング閾値を用いている可能性が示唆された。 ## 考察 1. **パーティショニングの真の勝者はアーキテクチャ親和的マッピング**: CPXモードがSPXよりも高い性能を示したのは、モード自体の優位性ではなく、単一プロセスが単一XCDに閉じることで空間的局所性が自然に保護されたためである。マルチダイGPUにおいて、プログラマやランタイムがXCDのトポロジを意識してブロックをマッピング(XCD-aware mapping)できるならば、単一GPUプログラミングモデル(SPX)の簡便さを維持したままCPXと同等の極限性能を引き出すことが可能である。 2. **APUにおける電力の非対称性とコ・ロケーションスケジューリング**: 同一ソケット内で高密度に計算資源を集積したAPUでは、全ダイを均等にフル稼働させると即座にTDP壁に直面し、定格クロックを維持できない。科学計算クラスタにおいて異種カーネル(例えばメモリ律速の輸送計算と計算律速の衝突計算、あるいはCPU前処理とGPU計算)を協調スケジューリングする場合、電力消費パターンの相補性を活用して「計算律速ジョブの隣にメモリ律速ジョブを配置する」などのワークロード認識型電力最適化が不可欠となる。 ## 強み / 弱点・課題 ### 強み - **実機エクサスケール環境での実証**: 世界最高峰のシステム(Tuolumne / El Capitan)上で、多様な科学計算カーネルを網羅的にプロファイリングした高い信頼性と実用性。 - **根本原因の完全な特定**: 単なるベンチマーク結果の羅列にとどまらず、低レベルハードウェアカウンタ(L1/L2ミス、DRAM要求)とスレッドブロック配置図を突き合わせ、局所性崩壊の物理的メカニズムを完璧に論証した。 - **実用的な解決策の提示**: SPXモードでのXCD-mapped手法を実装・検証し、パーティショニングモードの変更なしに性能劣化を回避できることを実証した。 ### 弱点・課題 - **テレメトリのサンプリング粒度**: `amd-smi` の計測周期が1 Hzに制限されており、ミリ秒単位で変動する急激な過渡電力や周波数スパイクの動態を完全に追跡し切れていない。 - **APU全体電力の内訳未分離**: 現行のモニタリング機能ではCPU(CCD)、GPU(XCD)、メモリ(HBM)、アンコアの電力が合算されたAPU全体値しか取得できず、CPUとGPU間の精密な電力シフト量の定量的切り分けが残された課題となっている。 - **マルチノードスケールでの検証**: 本研究は単一ノード(4 APU、24 XCD)内の評価に集中しており、MPI通信を伴う大規模マルチノード実行時のパーティショニングと電力動態の相互作用は今後の課題とされている。