NVIDIA SimNet の紹介

Naruhiko Tan
NVIDIA Japan
Published in
12 min readNov 17, 2020

NVIDIA の丹です。この記事では、2020 年 5 月に発表された、AI-Accelerated Multi-Physics Simulation Toolkit である NVIDIA SimNet について紹介したいと思います。今現在は early access というステータスで、一般公開されている情報は限られているのですが、より多くのみなさまにその存在をぜひ知っていただきたいと思い、紹介記事を書くことにしました。

はじめに

近年、画像認識をはじめとして、音声認識、自然言語処理、さらにはエンターテインメント、芸術といった様々な分野で機械学習の研究、応用が進められています。この流れは科学技術計算や物理シミュレーションにも及んでおり、それを象徴するかのごとく、NeurIPS 2020 でも Machine Learning and the Physical Sciences というワークショップが企画されています。では、機械学習を物理シミュレーションに応用するとなった場合、どのようなアプローチが考えられるのでしょうか。CAD データ修復、格子生成、結果処理、順解析、逆解析など様々な応用が考えられますが、この記事では、順解析にフォーカスをあてて、NVIDIA SimNet の紹介をしていきたいと思います。この記事の流れですが、NVIDIA SimNet を紹介するにあたっての背景情報として、機械学習を物理シミュレーションに応用する際のアプローチである、Data-driven なアプローチと、Physics-informed なアプローチの2つについて、まずは簡単に触れたいと思います。その後、NVIDIA SimNet の概要と適用事例について述べたあとに、2020 年 9 月に発表された NVIDIA SimNet v0.2 での追加機能や改善点について紹介します。

背景情報

Data-driven アプローチ

Data-driven アプローチについては、画像認識などでも行われるように、大量の学習データを用いてモデルの学習を行います。学習データには実験結果を用いる場合もありますし、大量のデータを用意しやすいという観点から、シミュレーションの結果などが使われる場合も多いようです。この方法の長所としては、十分な量のデータさえ用意できれば、explicit な規則、法則などを記述することが難しい場合においても、有用なモデルを構築することが可能である、という点が挙げられます。一方で、このアプローチの課題を上げるとすれば、満足すべき (してほしい) 物理法則を拘束条件としてモデルに反映させるには一工夫必要である、ということかと思います。

Physics-informed アプローチ

Physics-informed アプローチについては、data-driven との対比で考えると、学習データを必ずしも必要とはしない、という点が大きな特徴と言えます。その代わりに、解析したい対象の物理法則を記述する、支配方程式が必要になります。例えば、流体の場合は、Navier-Stokes 方程式になりますね。Data-driven アプローチでは課題であった、物理法則の拘束条件については、モデルの学習が支配方程式そのものに依っているため、別途そのような拘束条件を付与する必要はありません。

NVIDIA SimNet とは

NVIDIA SimNet は、Physics-informed アプローチである、Physics-Informed Neural Networks を採用した、AI-Accelerated Multi-Physics Simulation Toolkit です。NVIDIA SimNet は、単一形状の解析だけではなく、形状パラメータを変化させたパラメトリック スタディを効率的に行うことが可能で、かつマルチ フィジックス問題にも対応しています。バックエンドでは、cuDNN などの CUDA ライブラリで高速化された TensorFlow が使われており、NVIDIA GPU 上で学習と推論を高速に実行することが可能です。以下では、こちらの記事からいくつかの適用事例をピックアップして、NVIDIA SimNet でどんなことができるのか、について簡単に紹介していきます。

1 つ目の事例は、脳動脈瘤の血流解析です。図 1 は、NVIDIA SimNet を用いて学習したモデルによる、脳動脈瘤内の血液の流速と圧力の予測値 (図中で Learned と表記) と、オープンソース CFD ソルバーの結果 (図中で Exact と表記) との比較を示しています。複雑な形状であるにも関わらず、両者は定性的には良く一致していると言えると思います。ちなみに、オープンソース CFD ソルバーの結果が Exact という表記になっていますが、特に厳密解であることを意味しているわけではなく、あくまでリファレンスと考えて下さい。

図 1. NVIDIA SimNet による結果 (図中 Learned と表記) と、オープンソース CFD ソルバーによる結果 (図中 Exact と表記) : 流速と圧力の比較 (Fig. 1 in NVIDIA Engineers Apply AI Advances in Engineering Physics Problems より)

NVIDIA SimNet はパラメトリック スタディにも対応しており、形状データと、物性値や境界条件などの物理パラメータを与えることで、トラディショナルな CFD ソルバーで行われるのと同様に、設計空間の評価を実施することが可能です。ですが、大きく異るのは、トラディショナルな CFD ソルバーは、複数の (初期条件や境界条件、形状等の) 設計毎に何度も物理パラメータを変更して計算を実行する必要がありますが、NVIDIA SimNet は、1 回の学習サイクルで異なる複数の設計に同時に対応することができます。一旦、モデルの学習が完了してしまえば、推論によって任意の物理パラメータの評価ができるので、ほぼリアルタイムでさまざまなデザインの探索が可能になります。このアプローチは、物理パラメータを変更するたびに計算を実行しなければならないトラディショナルな CFD ソルバーと比べて、大きなアドバンテージと言えるのではないでしょうか。

実問題に近いパラメトリック スタディの例として、NVIDIA SimNet をヒートシンクの設計に適用した事例を以下に示します。トラディショナルな CFD ソルバーでは数週間かかるものを、NVIDIA SimNet を使うことで評価にかかる時間を数時間まで短縮することができた事例です。図 2 は、固体熱伝導と熱流体の連成解析結果を示しています。図 2A は、空気の流れを示す流線 (圧力で色付け) を、図 2B は、物体表面温度を可視化しており、NVIDIA SimNet と商用ソルバーの結果は定性的に一致していることが確認できます。さらに、NVIDIA SimNet のパラメトリック スタディ機能を活用することで、図 3 中の 3 次元プロットに示すように、圧力損失 (青色の曲面) と温度 (赤 — 黄色の曲面) の両方の要求仕様を満たすよう、ヒートシンクのデザイン最適化を行いました。詳しくは、こちらのデモ動画をご覧ください。

図 2A. ヒートシンク周りの流れ場における、流線と圧力という観点からの NVIDIA SimNet (左) と商用ソルバー (右) の比較 (Fig. 4A in NVIDIA Engineers Apply AI Advances in Engineering Physics Problems より)
図 2B. 物体表面の温度分布の NVIDIA SimNet (左) と商用ソルバー (右) の比較 (Fig. 4B in NVIDIA Engineers Apply AI Advances in Engineering Physics Problems より)
図 3. ヒートシンクのデザイン最適化 (Fig. 5 in NVIDIA Engineers Apply AI Advances in Engineering Physics Problems より)

ここで仮に、端部のフィン高さ、中央部のフィン高さという、2 つのパラメータをそれぞれ 50 通りづつ評価するとしましょう。その場合には、合計で 2500 通りのデザインを評価することになります。表 1 から分かるように、それら全てのデザインをトラディショナルな CFD ソルバーによって評価することは、計算時間という観点から非常にハードルが高い、というのが現状です。一方で、このようなパラメトリック スタディに NVIDIA SimNet を活用することで、計算時間の大幅な短縮が可能になります。現実的な時間内で、他のパラメータも含めたデザイン空間の全領域探索を行う、といった可能性も見えてくるのではないでしょうか。

表 1. ヒートシンクのデザイン最適化に要する計算リソースの比較 (Table 1 in NVIDIA Engineers Apply AI Advances in Engineering Physics Problems より)

2020 年 5 月に発表された、AI-Accelerated Multi-Physics Simulation Toolkit である NVIDIA SimNet について、事例を交えて概要を説明しました。この NVIDIA SimNet、2020 年 5 月に v0.1 が発表されたのですが、2020 年 9 月には v0.2 が発表され、最新アーキテクチャへの対応や、様々な機能の追加が行われました。

NVIDIA SimNet v0.2 のハイライト

ここでは、NVIDIA SimNet v0.2 の改善点や追加機能を 3 点紹介します。

高レイノルズ数の乱流シミュレーション

全結合ニューラルネットワークによる複雑形状の乱流シミュレーションには、多くの課題があることが分かっています。そこで、NVIDIA SimNet v0.2 では、ニューラルネットワークに関する様々な改良、質量保存則の厳密性、複雑形状をより正確に表現するための point cloud の改良などが加えられました。

図 4. 高レイノルズ数流れにおける NVIDIA SimNet と商用ソルバーによる結果の比較 (NVIDIA SimNet v0.2 Released より)

複雑形状

これまで NVIDIA SimNet に実装されていた、基礎形状オブジェクトを組み合わせて計算対象を作成する形状作成ライブラリに加えて、複雑形状に対応するために、物体表面からの距離を算出する符号付き距離関数ライブラリを新たに実装しました。これにより、CAD ソフトから読み込んだ STL データをシミュレーションで使うことが可能になりました。

図 5. NVIDIA SimNet による STL データを用いたシミュレーション (NVIDIA SimNet v0.2 Released より)

パフォーマンス

NVIDIA SimNet v0.2 は、単一 GPU だけではなく、複数 GPU / 複数ノードへとスケールさせることが可能です。16 台の NVIDIA DGX-1 (128 基の NVIDIA V100) を用いた、GPU 数に比例して計算領域を拡大させる弱スケーリングでは、1 イタレーションあたりに要する処理時間はほぼ一定のまま、処理性能は GPU 数に対してほぼリニアに向上することが分かり、良好な弱スケーリング性能を確認できました。さらに、NVIDIA A100 のサポートも追加され、TF32 にも対応しました。NVIDIA A100 を用いた初期スタディでは、TF32 を用いることで FP32 を用いた場合に比べて、ほぼ同等の精度を維持したまま約 2 倍の高速化、NVIDIA V100 との比較においては約 3 倍の高速化が確認できました。

図 6. NVIDIA SimNet の NVIDIA A100 での加速率と弱スケーリング (NVIDIA SimNet v0.2 Released より)

おわりに

この記事では、AI-Accelerated Multi-Physics Simulation Toolkit である NVIDIA SimNet についての概要と、2020 年 9 月に発表された、v0.2 のハイライトを紹介しました。公になっている情報がまだ限られているため、概要のみの紹介になってしまいましたが、この記事を読んで、もう少し詳しく知りたい、あるいは実際に使ってみたい、と思った方は、ぜひ early access program への登録をお願いします。また、SC20 にて NVIDIA SimNet の新しい紹介動画が公開されたので、こちらもぜひご覧ください。

関連情報

--

--