HPC Code GPU Acceleration Assessment

AIでHPCコードを解析し、A100×4実機でGPU高速化の可能性を無料診断

ソースコード、ビルドログ、実行ログ、プロファイル結果をAIが横断的に読み込み、GPU化・高速化に向いた処理を調査します。A100×4実機GPUサーバーでビルド・実行を確認し、通常5営業日で一次診断レポートをお送りします。

AI-assisted code review

AIがHPCコード全体を俯瞰し、高速化候補を探します

大規模なHPCアプリケーションでは、どこを直せば速くなるのかを人間が短時間で見つけるのは容易ではありません。関数、ループ、データ構造、ビルド設定、MPI/OpenMPの使い方、GPU化の有無、I/Oや通信のボトルネックなど、多くの要素が関係します。

ServerGearの無料診断では、対象ソースコード、ビルド手順、実行ログ、プロファイル結果をAIが横断的に解析し、人間だけでは見落としやすい高速化候補やGPU化に向いた処理を調査します。そのうえで、A100×4実機GPUサーバー上でのビルド・実行確認と組み合わせて、次に試すべきPoC方針を整理します。

Before buying GPU servers

GPUサーバーを買う前に、自分の計算が本当に速くなるか確認しませんか?

GPUサーバーのスペック表だけでは、お客様のHPCアプリがどれくらい速くなるかは分かりません。さらに、大規模なHPCコードでは、ボトルネックが単純な1か所にあるとは限りません。ソースコード全体、ビルド設定、実行条件、MPI/OpenMPの使い方、プロファイル結果を横断的に見る必要があります。そこでServerGearでは、AIによるコード・ログ解析とA100×4実機検証を組み合わせ、お客様のHPCコードがGPUで高速化できる可能性を一次診断します。

Free assessment

無料診断で確認すること

PoC evidence

検証例:AI支援とProfiler解析によるOpenFOAM有限体積演算チェーンのGPU高速化PoC

OpenFOAM実メッシュ・実フィールドを使った演算チェーンで、A100 1GPUがCPU64 rankを約2.6〜2.7倍上回る結果を確認。

OpenFOAM v2512の有限体積演算チェーンを対象に、AIがソースコードを解析し、fvc::div(phi) 相当処理と後続のスカラー更新をGPU resident化しました。対象はOpenFOAMの実メッシュ、実フィールド、MPI分割、coupled boundaryを含む960k cells / 3.84M cellsの大規模ケースです。

最初のGPU実装後、Nsight Systemsで実行実態を確認したところ、期待したfused kernelではなく古いbinaryが呼ばれている状態を検出しました。再リンク後、cellGatherKernel + chainUpdateKernel の2 kernel構成から cellGatherUpdateKernel のfused kernel構成へ移行し、kernel launch数を4002回から2001回に半減しました。

さらに Nsight Compute でメモリアクセス効率を確認し、csrSigns のdouble配列廃止、face idへの符号エンコード、全セル4 face entryケース向けの cellGatherUpdateFixed4Kernel を実装しました。fixed4でないメッシュはsigned CSR kernelへ自動fallbackする構成としています。

測定では、短時間ベンチではなく、960k cellsで100万反復、3.84M cellsで50万反復の長時間solver相当条件を使用しました。CPU64 rank、A100 1GPU fixed4、A100 4GPU fixed4で比較した結果、A100 1GPUだけでもCPU64 rankを大きく上回りました。

2.63x / 2.68x A100 1GPU fixed4がCPU64 rankを上回ったprocess wall短縮
9.86x / 8.45x A100 4GPU fixed4で確認したprocess wall短縮
4002 → 2001 Nsight Systemsで確認したkernel launch数の半減
87.16% Nsight Computeで確認したDRAM throughput。memory throughputは1.69 TB/s
Case CPU64 rank A100 1GPU fixed4 A100 4GPU fixed4 最大field差分
960k cells 118.91s 45.29s / 2.63x 12.06s / 9.86x 4.44e-16
3.84M cells 239.79s 89.43s / 2.68x 28.37s / 8.45x 2.13e-14

CPU版とGPU版の出力field差分も確認しています。最大field差分は960k cellsで約4.44e-16、3.84M cellsで約2.13e-14でした。

AI支援とprofiler確認

CodexがOpenFOAM v2512のソースをスキャンし、線形ソルバーではなく有限体積演算・fvcSurfaceOps.C 系を候補化しました。その後、fvcSurfaceOps.C → CUDA PoC → OpenFOAM実フィールド fvc::div(phi) → resident operation chain → Nsight Systems profiler確認 → fused kernel再リンク・再測定 → Nsight Compute分析 → fixed4最適化という流れでGPU化対象と改善箇所を絞り込みました。

前回fused実装からの追加短縮

fixed4最適化により、960k GPU1は68.26sから45.29sへ約33.7%短縮、960k GPU4は14.27sから12.06sへ約15.5%短縮しました。3.84M GPU1は133.50sから89.43sへ約33.0%短縮、3.84M GPU4は39.93sから28.37sへ約29.0%短縮しました。

Nsight Computeによる限界分析

最終fixed4 kernelは、Nsight Compute上でDRAM throughput約87%、memory throughput 1.69 TB/sに到達しました。block size/cache policy sweepでは意味のある追加改善は見られず、残る主な制約は allPhi[faceId] の indirect global load と判断しました。現在のbenchmark設計内での小さなkernel修正はかなり詰められており、次に大きく伸ばすには、cell/faceの並べ替え、データレイアウト変更、またはsolver chain全体のdevice-resident化が必要です。

process wallの定義

このprocess wallには、process startup、case/field read、patch setup、CSR構築、CUDA setup/copy、反復演算本体を含みます。decomposePar、mesh生成、potentialFoam -writephi、外部orchestrationは含みません。

本検証はOpenFOAMの全機能をGPUへ移植したものではなく、特定処理・特定条件での有限体積演算チェーンGPU高速化PoCです。しかし、OpenFOAMの実メッシュ、実フィールド、MPI分割、coupled boundaryを含む有限体積演算チェーンに対して、AIによるソース解析、CUDA実装、profiler確認、再測定、fixed4最適化を組み合わせることで、A100 1GPUでもCPU64 rankを大きく上回る高速化余地を確認できました。A100 4GPUによる絶対性能だけでなく、A100 1GPUによる費用対効果の高い高速化可能性も確認できました。

※本結果は特定処理・特定条件でのPoCであり、すべてのOpenFOAMケースで同様の高速化を保証するものではありません。

このように、既存HPCアプリの一部処理でも、AIによるソース解析、実機GPU検証、profiler確認を組み合わせることで、高速化余地を具体的に確認できます。お客様のHPCコードでも、同様にGPU化・高速化の可能性を無料で一次診断します。

Target applications

対象となるHPCコード・アプリケーション

以下のような研究・技術計算コードを対象にします。

  • Fortran / C / C++ で書かれたHPCコード
  • MPI / OpenMP を使った並列プログラム
  • CPUでは時間がかかるシミュレーションコード
  • GPU化できるか分からない自作研究コード
  • LAMMPS / GROMACS / CP2K / Quantum ESPRESSO / OpenFOAM などのHPCアプリケーション
  • 既存OSSアプリに独自改造を加えたコード

Timeline

通常5営業日で一次診断

必要な資料・ビルド手順・小規模テストデータをご提供いただいた後、通常5営業日以内に一次診断レポートをお送りします。コード規模、依存ライブラリ、ビルド環境、入力データの内容によっては、詳細検証に追加日数がかかる場合があります。

Scope

無料診断の範囲

無料診断では、GPU化・高速化の可能性を判断するための一次調査を行います。

無料範囲

  • 初回内容確認
  • ソース構成・ビルド手順の確認
  • 小規模入力でのビルド・実行確認
  • ログ・エラー・ボトルネック候補の確認
  • AIによるコード・ログ解析
  • 一次診断レポート作成

無料範囲外

  • 大規模なコード書き換え
  • 本格的なCUDA移植
  • 長期間の性能チューニング
  • 本番環境への導入作業
  • 論文レベルのアルゴリズム改良
  • 大規模データでの長時間ベンチマーク

Important note

すべてのコードがGPUで高速化できるとは限りません

GPU化によって常に高速化できるとは限りません。本診断では、A100×4実機環境とAI解析を用いて、GPU化に向いている処理、想定されるボトルネック、必要な移植作業、推奨GPU構成を整理します。AIによる解析結果は、実機でのビルド・実行確認、ログ確認、必要に応じた人間のレビューと組み合わせて判断します。診断結果によっては、GPU化よりもCPU並列化、ライブラリ変更、ビルド設定、実行条件の見直しの方が有効と判断する場合もあります。

What to share

お申し込み時に分かる範囲で教えていただきたいこと

一次診断を開始するには、対象ソースコード、ビルド手順、小規模テストデータ、実行コマンド、現在の実行時間やログのご提供が必要です。これらが揃っている場合、通常5営業日以内に一次診断レポートをお送りします。資料が不足している場合は、まず診断可否の確認から行います。

Free assessment request

あなたのHPCコードがGPUで速くなるか、まずは無料で診断します

無料診断は対応件数に上限があります。対象コード・実行条件を確認のうえ、診断可能な案件から順に対応します。