Quantum-based Molecular Dynamics Simulations Using Tensor Cores
Joshua Finkelstein, Justin S. Smith, Susan M. Mniszewski, Kipton, Barros, Christian F. A. Negre, Emanuel H. Rubensson, Anders M. N. Niklasson

TL;DR
This paper demonstrates how tensor cores, originally designed for AI tensor operations, can be effectively utilized for high-precision quantum molecular dynamics simulations, achieving high performance and stability despite low-precision limitations.
Contribution
It introduces a novel application of tensor cores for quantum molecular dynamics, combining deep neural network electronic structure calculations with efficient GPU acceleration.
Findings
Achieved over 100 Tflops performance on Nvidia A100 GPU.
Successfully generated stable molecular dynamics trajectories.
Implemented a canonical ensemble scheme with noise absorption.
Abstract
Tensor cores, along with tensor processing units, represent a new form of hardware acceleration specifically designed for deep neural network calculations in artificial intelligence applications. Tensor cores provide extraordinary computational speed and energy efficiency, but with the caveat that they were designed for tensor contractions (matrix-matrix multiplications) using only low-precision floating point operations. In spite of this, we demonstrate how tensor cores can be applied with high efficiency to the challenging and numerically sensitive problem of quantum-based Born-Oppenheimer molecular dynamics, which requires highly accurate electronic structure optimizations and conservative force evaluations. The interatomic forces are calculated on-the-fly from an electronic structure that is obtained from a generalized deep neural network, where the computational structure naturally…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
