DoMINOで“外部空力(CFD)”を秒オーダーで試す(初心者向け)

DoMINOで“外部空力(CFD)”を秒オーダーで試す(初心者向け) 結論(1分) DoMINO(DoMINO-Automotive-Aero NIM)は、車体形状(STL)から 抗力/揚力 と 表面圧力分布 を返す「CFDサロゲート(代理モデル)」です。 4GPUマシンでは、 同時リクエスト(並列) を増やすことでスループットがほぼ比例して伸びます。 実測では、H100 NVL 4GPUで conc=1→9.16 req/min、conc=4→36.92 req/min(約4倍)、conc=8→55.49 req/min でした。 --- 1) DoM

Share

DoMINOで“外部空力(CFD)”を秒オーダーで試す(初心者向け)

結論(1分)

DoMINO(DoMINO-Automotive-Aero NIM)は、車体形状(STL)から 抗力/揚力表面圧力分布を返す「CFDサロゲート(代理モデル)」です。

4GPUマシンでは、同時リクエスト(並列)を増やすことでスループットがほぼ比例して伸びます。

実測では、H100 NVL 4GPUで conc=1→9.16 req/min、conc=4→36.92 req/min(約4倍)、conc=8→55.49 req/min でした。

---

1) DoMINOとは(初心者向け)

CFD(流体解析)は本来、流体方程式(ナビエ–ストークス)を数値的に解くので、1ケースが重いです。 DoMINOはCFDの結果を大量に学習して、「形状 → 空力の結果」を高速に近似するモデル(サロゲート)です。 そのため、設計探索やスクリーニングを高速に回せます(最終確認は古典CFD、が現実的な運用)。

---

2) 1枚でわかる:何が起きているか

DoMINO onepager

A) pressure_surface(表面圧力)とは?

車体表面が「どこで強く押されているか」を示す値です。 圧力の高低分布は、空気の当たり方や剥離(はくり)しやすい領域の“当たり”を教えてくれます。

B) drag/lift(抗力・揚力)と、なぜ v² っぽい?

直感的には「速度を上げるほど空気の勢い(動圧)が増える」ため、抵抗が増えやすいです。 実測でも v=20/30/40/50 m/s で drag/lift が大きく増え、v²スケールに近い挙動が確認できました。

C) 4GPUは“同時処理(並列)”で効く

単発レイテンシより、「同時に何件さばけるか(req/min)」がGPUサーバーの価値になります。 DoMINOはHTTP APIで呼べるので、クライアント並列で一気に効果が見えます。

---

3) 実測:A100x4 vs H100 NVL 4GPU(同一条件)

条件(両者同一)

  • NIM:DoMINO-Automotive-Aero NIM(single instance / all-gpus
  • Endpoint:/v1/infer/surface
  • point_cloud_size=200000stream_velocity=30stencil_size=1
  • ベンチ:クライアント並列(conc=1→nreq=20、conc=4→nreq=80)
  • 指標:throughput_req_per_min_by_wall(実時間ベース)を正とする

結果(req/min, wall-clock)

Nodeconc=1conc=4スケール(4/1)
A100x47.5031.794.24×
H100 NVL 4GPU9.1636.924.03×

H100優位:

  • conc=1:9.16 / 7.50 = 1.22×(約+22%)
  • conc=4:36.92 / 31.79 = 1.16×(約+16%)

---

4) H100 NVL 4GPU:飽和点の目安(conc=8)

H100で conc=8 を1回追加で測定しました。

  • conc=8:55.49 req/min(wall-clock)
  • conc=4 → conc=8:+50%(36.92 → 55.49)
  • conc=1 → conc=8:約6.06×(9.16 → 55.49)
目安:この条件では conc=4〜8 あたりが “スループットを伸ばしつつ待ち時間が破綻しにくい” 範囲になりやすい。

---

5) 4GPUが動いている証拠(dmon集計)

ベンチ中の nvidia-smi dmon を集計して、GPU0〜3が実際に動いていることを確認しました(conc=8)。

  • GPU0: max_sm=68%, nonzero_samples=23/144
  • GPU1: max_sm=67%, nonzero_samples=29/144
  • GPU2: max_sm=68%, nonzero_samples=27/144
  • GPU3: max_sm=66%, nonzero_samples=29/144

---

6) 実務での使い方(現実解)

という二段構えが現実的です。 DoMINOで候補を絞り込んでから古典CFDに回すと、設計サイクル短縮に効きます。

  • 探索・スクリーニング:DoMINO(高速)
  • 最終確認:古典CFD(保証)

---

7) 再現メモ(最小)

  • NIM起動(Apptainer):nim_start_allgpus.sh(NGC API keyは ~/.config/ngc_api_key から自動読込)
  • 推論(surface):/v1/infer/surface に STL と point_cloud_size 等をPOST
  • ベンチ:bench_surface_parallel.sh PORT conc nreq(by_wallのreq/minを採用)

Read more

ローカルLLMはAllegro/NeQUIPの学習設定YAMLを作れるのか:Nemotronでmetadata-only preflightを検証

ローカルLLMはAllegro/NeQUIPの学習設定YAMLを作れるのか:Nemotronでmetadata-only preflightを検証 これは性能ベンチマークではありません。A100x4上のローカルLLMで、Allegro / NeQUIPの学習設定YAMLをどこまで安全に作り、実行前に確認できるかを調べた機能検証です。 結論から言うと、NemotronはAllegro / NeQUIPのtraining YAML候補を生成できました。既存SIF内で torch / nequip / allegro のimport、A100x4のCUDA可視

By Kenetsu Hanabusa

ローカルLLMはHPC入力ファイルを作り、エラーを直せるのか:NemotronでQuantum ESPRESSOとLAMMPSを検証

ローカルLLMはHPC入力ファイルを作り、エラーを直せるのか:NemotronでQuantum ESPRESSOとLAMMPSを検証 この記事の位置づけ これは性能ベンチマークではなく、 ローカルLLMがHPC入力ファイルの生成、実行ログを使った修正、再実行まで支援できるか を確認した機能検証です。 H200 NVLやRTX PRO 6000 Blackwellへの一般化はせず、次回以降の別フェーズとして扱います。 結論 A100 80GB x4上で NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 をローカル配信し、Quantum

By Kenetsu Hanabusa