HPC Code GPU Acceleration Assessment

HPCコードのGPU高速化可能性を、提供可能な範囲から無料診断

公開論文、公開リポジトリ、ビルドログ、実行ログ、プロファイル結果、代表的な関数、最小再現コードなどをもとに、GPU化・高速化に向いた処理を調査します。必要な資料が揃う場合は、A100×4実機GPUサーバーでビルド・実行を確認し、通常5営業日で一次診断レポートをお送りします。

未公開コード全体の提供は、初回相談では必須ではありません

まずは公開情報・ログ・代表部分だけでも相談可能です。公開論文、公開リポジトリ、ビルドログ、実行ログ、プロファイル結果、代表的な関数、最小再現コードなど、提供可能な範囲から診断可否を確認できます。

未公開コードや研究データを扱う場合は、NDA締結や提供範囲の合意後に確認します。お預かりした情報は、診断可否確認、一次診断、PoC方針整理、見積・相談対応の目的で利用します。

公開研究情報を見たご案内について

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

無料診断で確認すること

Diagnostic case 01

診断事例:確率的な軌道シミュレーションコードをGPUで約136倍高速化したPoC

国内研究機関の研究者様からご相談いただいた、Fortranで実装された多数イベントを扱う確率的な軌道シミュレーションコードについて、A100 GPUサーバー上でGPU高速化無料診断を行いました。CPUでも実行できる一方、イベント数が増えると計算時間が大きく伸び、どこをGPU化すれば効果が出るかを見極めにくいことが課題でした。

1万イベントでのCPU/GPU比較

  • CPU 1 thread: 約392秒
  • CPU 16 threads: 約31.5秒
  • CPU 64 threads: 約17.4秒
  • A100 1GPU OpenACC版: 約8.90秒
  • CUDA検証版: 約2.87秒

この検証条件での改善幅

  • CUDA検証版はCPU 1 thread比で約136倍高速
  • CPU 16 threads比で約11倍高速
  • CPU 64 threads比でも約6倍高速
  • OpenACC版からCUDA検証版へ、GPU内でも約3倍改善

AIを使って見つけたこと

AIを使ってソースコード、実行ログ、プロファイル結果、出力差分を読み解き、GPU計算部だけでなくCPU側の後処理や集計処理にもボトルネックがあることを仮説化しました。大規模イベントでは、メモリ配置、分割実行、集計方法まで含めて見る必要がありました。

高速化方針は、既存CPU版・OpenACC版・CUDA検証版を比較し、出力整合性を確認しながらGPU計算部とCPU側後処理の両方を見直すことでした。さらに、すべてのイベントを一度にGPUメモリへ載せるのではなく、一定サイズに分けて順番に処理し、最後に集計する方式を検証しました。

難しかった点

  • 単にCUDAを書くことではなく、出力の整合性を保ちながら高速化すること
  • イベントID、乱数系列、分布生成に関わる集計の扱いを壊さないこと
  • GPU計算だけ速くしても、CPU側の後処理が残ると全体は速くならないこと

大規模イベントでのPoC結果

  • 1GPUで100万イベント規模の分割実行を行い、約3.62分で完了
  • 2GPU分割検証では、10万イベントを約10.68秒で完了
  • 2GPU分割検証では、12万イベントを約11.88秒で完了

5営業日程度でPoCを整理できた理由

通常であれば、ソース理解、ビルド環境整備、比較実行、プロファイル、ボトルネック仮説、修正、再検証を順番に進めるため、数週間から数ヶ月かかることもあります。本事例では、AIを使ってログ・ソース・出力差分を並行して読み解き、仮説化と検証を短いサイクルで回すことで、5営業日程度でPoC結果として整理しました。

公開範囲と注意

本内容は、この検証環境・条件下でのGPU高速化無料診断のPoC結果です。同じ実行時間を保証するものではなく、正式利用には追加検証が必要です。AIだけで高速化を完了したという意味ではなく、AIによる解析支援と人間の確認を組み合わせた検証です。

ソースコード、未公開研究内容、詳細ログ、詳細な出力データは公開しません。本番出力相当の確認および分布生成の本番相当確認は、今後の検証項目です。

Diagnostic case 02

診断事例 第2弾:GPU化の前に、研究用FortranコードをCPUだけで約19.3倍高速化

近畿大学 核反応エネルギー研究室の弓倉 陽様、有友先生のご協力のもと、確率的ダイナミクスを支配する力学パラメータを計算する研究用Fortranコードを診断・最適化しました。GPUへ移植する前にCPU側の計算構造を見直した結果、近畿大学Vostokの同一40物理コア環境で、399.60秒から20.73秒へ短縮しました。

同一40物理コア環境での実測比較

  • 分割なし40スレッド版: 399.60秒
  • 依存関係を保った28分割版: 20.73秒
  • 同一ノード・同一ソース比較で約19.3倍高速
  • GPU使用なし、CPUのみで達成

改善の要点

  • Intel oneAPI MKLによる行列演算の効率化
  • OpenMPによる計算内部の並列化
  • 計算条件間の依存関係を保った28分割
  • CPU affinityとNUMAを考慮した配置
  • 分割結果を元の順序へ戻す出力統合

AIを使って見つけたこと

AI支援を使ってソースコード、プロファイル、実行ログ、出力差分を横断的に確認したところ、個々の計算ループだけでなく、より外側にある計算条件単位の並列性を利用できることが分かりました。

数値ライブラリとOpenMPで各処理を短縮しながら、複数のCPUプロセスへ安全に分割し、40物理コアを重複なく割り当てる構成を組み合わせました。GPU化を始める前にCPU側の構造を整理したことが、全体時間の大幅な短縮につながりました。

難しかった点

  • 29通りの計算条件をすべて独立にはできないこと
  • 必要な状態の引き継ぎを保ちながら並列度を高めること
  • プロセス、OpenMP、MKL間のスレッド競合を防ぐこと
  • 分割後の結果を元の計算順序へ正しく戻すこと

計算結果の確認

  • 28分割版を、同一ソースの分割なし版と比較
  • 最終出力が設定した数値判定をすべて通過
  • 比較用の3種類の出力ファイルも一致を確認
  • 既存版は上書きせず、並行利用できる形で配置

この事例が示すこと

HPCコードは、GPUへ移植すれば必ず全体が速くなるとは限りません。CPU側の直列処理、スレッド競合、メモリ配置、出力処理を先に見直すことで、GPUを使わずに大きく短縮できる場合があります。

この事例はGPUによる高速化結果ではなく、GPU化診断の前段でCPUのみの性能を約19.3倍まで改善した事例です。CPU側の基準を明確にしたことで、今後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

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

最初から未公開コード全体を提出する必要はありません

一次診断の前段階では、公開論文、公開リポジトリ、ビルドログ、実行ログ、プロファイル結果、代表的な関数、最小再現コードなど、提供可能な範囲で診断可否を確認できます。未公開コードや研究データの確認が必要な場合は、NDA締結や提供範囲の合意後に進めます。

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

Free assessment request

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

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

未公開コード全体の提供は初回相談では必須ではありません。まずは公開情報・ログ・代表部分だけでもご相談ください。