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
無料診断で確認すること
- AIによるソースコード全体の俯瞰解析関数、ループ、データ構造、依存関係を広く確認します。
- ビルドログ・実行ログ・エラーログの解析失敗箇所、警告、実行時のボトルネック候補を整理します。
- プロファイル結果とソースコードの照合計算時間が集中している関数・ループの候補を抽出します。
- GPU化に向いた処理と効果が薄い処理の切り分け計算密度、メモリアクセス、通信、I/Oを分けて確認します。
- CUDA / OpenACC / OpenMP target / GPU対応ライブラリ利用などの方針整理コードと依存関係に合う移行候補を整理します。
- A100×4実機でのビルド・実行確認提供いただく手順と小規模テストデータで確認します。
- 次に試すべき最小PoC方針の提案追加検証が必要な条件と優先順位を一次レポートにまとめます。
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を大きく上回りました。
| 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営業日以内に一次診断レポートをお送りします。資料が不足している場合は、まず診断可否の確認から行います。
- 対象アプリ名またはコード概要
- 使用言語
- MPI / OpenMP / CUDA などの利用状況
- 現在の実行環境
- 現在の実行時間
- 速くしたい処理
- 診断用ソースコードの提供条件
- 小規模テストデータの有無
- ビルド手順の有無
- GPUサーバー導入予定の有無
Free assessment request
あなたのHPCコードがGPUで速くなるか、まずは無料で診断します
無料診断は対応件数に上限があります。対象コード・実行条件を確認のうえ、診断可能な案件から順に対応します。