OpenACC を利用して NVIDIA GPU で VASP 6 を 15 倍高速化

Shinnosuke Furuya
NVIDIA Japan
Published in
6 min readDec 15, 2020

エヌビディアの古家です。

量子化学計算アプリの代表格である VASP (Vienna Ab initio Simulation Package) の Version 6.1.0 がリリースされていますが、これが GPU により高速化されていることをご存知でしょうか?おそらく「え?そうなの?知らなかった…」という方がたくさんいると思うので、ここで簡単に紹介したいと思います。

なお、この記事は NVIDIA Developer Blog “NVIDIA GPU Accelerated VASP 6 uses OpenACC to Deliver 15X More Performance” を基にしています。

VASP 6 における GPU 実装の概要

原子スケール モデリングの世界をリードする HPC アプリケーションの一つである VASP の開発者は、新たに OpenACC を利用して NVIDIA GPU で加速された VASP 6.1.0 を公開しました。

VASP は電子構造計算と第一原理 MD の分野で最も広く使われているコードの一つです。シニア サイエンティストで VASP のリード デベロッパーである Martijn Marsman は、オーダー N³ の RPA (ACFDT や GW 近似)、機械学習力場を使った MD を実行する際に不要であれば第一原理計算を自動的にスキップするオンザフライの機械学習力場、電子フォノン相互作用、MPI + OpenMP 並列化などの GPU 高速化機能を紹介しました。追加機能は製品機能ページにあります。

OpenACC で GPU に移植した VASP 6 は 2020 年 1 月下旬にリリースされましたが、NVIDIA GPU エンジニアリング チームと協力して、世界中の NVIDIA GPU を採用した HPC サイトからのフィードバックを通じて改善を続けていきます。

図 1. Si-Huge、GaAsBi_512、Si256_VJT_HSE06 のベンチマーク結果。Si-Huge は標準の DFTで、波動関数の最適化は複数 k 点サンプリングで実空間プロジェクションを用いたデフォルトのブロック化ダビッドソン法を使用し、512 原子のバルクシリコンの電子構造を計算。GaAsBi_512 も同様だが、初期化フェーズの後はより高速な RMM-DIIS 法に切り替えて、Bi ドープしたバルク GaAs の電子構造を計算。Si256_VJT_HSE06 は、重たい計算であるハイブリッド DFT で、単一 k 点 (𝝘 点) サンプリングでダブルバッファリング Exact Exchange 法を用いた直接最小化法により計算。 (NVIDIA GPU Accelerated VASP 6 uses OpenACC to Deliver 15X More Performance の図より)

実空間プロジェクションのブロック化ダビッドソン法 (Exact Exchange 法も含む) と RMM-DIIS 法は、以前は CUDA C で移植されて GPU 上で良い高速化が得られていましたが、VASP は全体が Fortran で書かれているためメンテナンスのコストが増加していました。

OpenACC ディレクティブと NVIDIA ライブラリのコールを組み合わせた新しいアプローチにより CPU と GPU それぞれのコードが統一されるため、𝝘 点のみの一点計算、逆格子空間プロジェクション、直接最小化法に対して GPU 高速化を高い生産性で幅広く適用することができました。さらに Adaptively Compressed Exchange (ACE) や ハイブリッド DFT 計算のダブルバッファリング実装など、VASP に新たに追加された機能の GPU 高速化も可能となりました。パフォーマンスの向上とメンテナンス作業の大幅な削減により、 VASP は今後全ての GPU 移植のプログラミングモデルとして OpenACC を採用するようになりました。

OpenACC による新しい GPU バージョンは以前の実装よりも約 2 倍高速で、従来の CPU のみのシミュレーションと比較して約 15 倍のパフォーマンスを提供し、さらに次の機能が高速化されるようになりました。

  • 𝝘 点簡略化
  • 逆格子空間プロジェクション
  • 直接最小化のための標準およびハイブリッド DFT 理論 (“Damped” および “All”)
  • ダビッドソン法を使用してハイブリッド DFT を 3 倍高速化する Adaptively Compressed Exchange (ACE)
  • 通信と演算をオーバーラップさせてより良いスケーリングを可能にするためのダブルバッファリング Exact Exchange

VASP 6 は、科学コミュニティに次のエキサイティングな機能も提供します。

  • 電子フォノン相互作用
  • オンザフライの機械学習力場
  • オーダー N³ の RPA (ACFDT や GW 近似)

科学者はどの NVIDIA GPU でも VASP 6 を実行できます。VASP GPU 対応ガイドを使用すると、NVIDIA GPU で VASP 6 を実行するための最新情報を得ることができます。最強の倍精度パフォーマンスは、最新の GPU アーキテクチャである NVIDIA V100 と NVIDIA A100 で利用できます。NVIDIA A100 アーキテクチャの詳細については、NVIDIA Ampere アーキテクチャのホワイトペーパーを参照してください。

おわりに

この記事では、最新の VASP 6.1.0 が OpenACC プログラミングにより NVIDIA GPU で約 15 倍高速化されたということを紹介しました。また新たに GPU 化された機能についても紹介しました。VASP を利用されている方はぜひ試してみてください。

関連情報

VASP (Vienna Ab initio Simulation Package)

NVIDIA GPU Accelerated VASP 6 uses OpenACC to Deliver 15X More Performance

Porting VASP to GPU using OpenACC (SC19, Nov 19 2019)

Porting VASP to GPU using OpenACC: exploiting the asynchronous execution model (OpenACC Annual Meeting, Aug 31 2020)

--

--