汎用GNN力場のH200・A100によるGPUベンチマーク#
汎用グラフニューラルネットワーク(GNN)力場はニューラルネットワークを使うことで従来の力場よりも高い汎用性・精度を実現しています。多くの大学、研究機関、企業によって開発・公開されていますが、アドバンスソフトではLAMMPSを改修して各GNN力場への対応を追加し、Advance/NanoLaboから使えるようにしています。
本事例では、硫化物リチウムイオン伝導体Li10GeP2S12を対象に、NanoLaboから使える各GNN力場によるNVIDIA H200・A100を使った分子動力学計算を行いました。力場の種類・モデルの違いによる計算時間の違い、計算可能な系の大きさ(原子数)を調べるとともに、マルチGPUに対応した力場SevenNetではH200を8枚まで使った計算を行い、GPU数によるスケーリングの仕方も調べます。
計算機環境#
本事例で使用した計算機のスペックを以下に示します。
-
H200搭載マシン
- CPU:Intel Xeon Platinum 8480+(56コア)×2
- GPU:NVIDIA H200 ×8
- CUDA:12.4
-
A100搭載マシン
- CPU:Intel Xeon Silver 4310(12コア)
- GPU:NVIDIA A100 80GB
- CUDA:12.6
計算環境は株式会社ハイレゾにご協力いただき、GPUクラウドサービス「GPUSOROBAN」を利用して作成しました。
計算条件#
Materials Projectから取得したLi10GeP2S12の構造ファイル (mp-696128) をもとに、スケーリングを変えながらスーパーセルモデルを作成し、目的の原子数の系としました。ただし、有機分子に特化し対応元素が限られているMACE-OFFについては、PubChemから取得したセロトニンC10H12N2Oの構造ファイル (pc-5202) をもとに、目的の原子数になるように配置した系を使用しました。
分子動力学計算はNVTアンサンブル (T = 500 K) のもとで100ステップ行い、時間刻み幅は0.5 fsとしました。なお、多くのGNN力場は初回実行時に学習済みモデルファイルをダウンロードする仕組みになっているため、その時間が計算時間に含まれてしまわないように注意します。
各GNN力場・モデルの比較#
原子数に対する実行時間(Looptime)を各力場についてプロットしました。ここで示している力場はMPI並列には対応しておらず、スレッド数は1として計算を行いました。
- H200
- A100 80GB
いずれの場合も、原子数に対して計算時間がほとんど線形に増大しており、効率低下なくスケーリングできていることがわかります。
今回は最大で86,400原子までの系を用意しましたが、GPUメモリ(VRAM)の容量により計算できる原子数に上限があります。力場の種類の違い、また同じ力場でも使用する学習済みモデルの違いにより、計算時間および計算可能な原子数が大きく変わることがわかります。
また、異なるGNN力場間の比較をするため、3,200原子での各計算時間と、計算できた最大の原子数を表にしました。
力場 | モデル | H200計算時間(Looptime/s) | A100計算時間(Looptime/s) | H200最大原子数 | A100最大原子数 |
---|---|---|---|---|---|
MatGL | M3GNet-MatPES-PBE-v2025.1-PES | 14.3 | 19.6 | 32400 | 17150 |
MatGL | M3GNet-MP-2021.2.8-PES | 14.1 | 18.5 | 50000 | 28800 |
CHGNet | 0.3.0 | 89.4 | 107.3 | 17150 | 13500 |
MACE | small-0b2 | 10.5 | 15.5 | >86400 | 50000 |
MACE | medium-0b3 | 21.6 | 37.2 | 28800 | 14700 |
MACE | large-0b2 | 26.3 | 50.9 | 17150 | 12600 |
MACE | mace-osaka24-small | 9.2 | 13.0 | >86400 | 66550 |
MACE | mace-osaka24-medium | 14.0 | 24.2 | 66550 | 36450 |
MACE | mace-osaka24-large | 23.4 | 45.3 | 25600 | 14700 |
Orb | orb-v2 | 3.2 | 6.5 | >86400 | >86400 |
MatterSim | MatterSim-v1.0.0-1M | 16.7 | 20.0 | 66550 | 36450 |
MatterSim | MatterSim-v1.0.0-5M | 19.1 | 29.6 | 32400 | 17150 |
MACE-OFF | small | 7.8 | 11.0 | 66550 | 36450 |
MACE-OFF | medium | 14.8 | 28.2 | 28800 | 14700 |
MACE-OFF | large | 42.5 | 93.9 | 6250 | 3200 |
SevenNetのマルチGPUベンチマーク#
H200搭載マシンでSevenNetによる計算を実行し、各モデルでのGPU使用数に対する計算時間(Looptime)と、相対計算速度を図にしました。モデルによってはGPU使用数が少ないとGPUメモリ不足で計算できないケースがあり、その場合は計算時間が原子数に比例・GPU使用数に反比例するとして、計算できたケースから換算した計算時間を基準とします。そのため、基準が異なるモデル同士の相対計算速度はそのまま比較できないことに注意が必要です。
A100搭載マシンはGPU1枚のためGPU使用数に対するベンチマークはできませんが、GPU1枚で計算ができたケースについては計算時間のみ図に入れています。
いずれもGPU数を増やしたときの速度の向上は8GPUまで見られますが、その効果は98,000原子系でより大きく、原子数が多い方が複数GPUの性能をより活かせるようです。
また、これまでのベンチマークでも見られていた、GPU数が奇数の場合に計算速度が低くなる傾向が今回も見られています。特にGPU数6と7に注目すると、モデルによっては計算速度がほとんど変わらないものがあります。おそらくセル分割の形状により、GPU間の通信量が多くなっているなどの理由によると考えられます。特に多くのGPUを使って計算を行う場合は、GPU数を偶数にすることが推奨されます。