QMCPACK / qmcpack

Main repository for QMCPACK, an open-source production level many-body ab initio Quantum Monte Carlo code for computing the electronic structure of atoms, molecules, and solids with full performance portable GPU support
http://www.qmcpack.org
Other
283 stars 135 forks source link

Using explicit template for inverter implementation classes #5072

Closed ye-luo closed 5 days ago

ye-luo commented 1 week ago

Proposed changes

This is the last part of https://github.com/QMCPACK/qmcpack/pull/5061 All the template variants are explicitly compiled. This is now prepared for the final (long term) target with all the build variants fused. Explicit template exposed that a few functions of DiracMatrixComputeOMPTarget cannot be compiled and hence I tried to keep a minimal DiracMatrixComputeOMPTarget. Since DiracMatrixComputeOMPTarget is indeed a fallback running on host, I simplified the code in DiracDeterminantBatched::mw_invertPsiM

What type(s) of changes does this code introduce?

Does this introduce a breaking change?

What systems has this change been tested on?

epyc-server

Checklist

ye-luo commented 1 week ago

Test this please