paboyle / Grid

Data parallel C++ mathematical object library
GNU General Public License v2.0
155 stars 111 forks source link

Gparity HMC import round 2 #397

Closed giltirn closed 2 years ago

giltirn commented 2 years ago

Hi Peter,

This is the second round of imports from the Gparity HMC branch. In summary it contains my mixed precision multishift algorithm; a few minor algorithm fixes/improvements; the GPU version of the Gparity force insertion; support for periodic/antiperiodic BCs in the time direction for the G-parity operator (GPBC in this direction is no longer supported); as well as tests for the above. The full change list is below.

Best, Chris

    Added storage of final true residual in mixed-prec CG and enhanced log output
Fixed const correctness of multi-shift constructor
Added a mixed precision variant of the multi-shift algorithm that uses a single precision operator and applies periodic reliable update to the residual
Added tests/solver/Test_dwf_multishift_mixedprec to test the above
Fixed local coherence lanczos using the (large!) max approx to the chebyshev eval as the scale from which to judge the quality of convergence, resulting a test that always passes
Added a method to local coherence lanczos class that returns the fine eval/evec pair
Added iterative log output to power method
Added optional disabling of the plaquette check in Nerscio to support loading old G-parity configs which have a factor of 2 error in the plaquette
G-parity Dirac op no longer allows GPBC in the time direction; instead we toggle between periodic and antiperiodic
Replaced thread_for G-parity 5D force insertion implementation with accelerator_for version capable of running on GPUs
Generalized tests/lanczos/Test_dwf_lanczos to support regular DWF as well as Gparity, with the action chosen by a command line option
Modified tests/forces/Test_dwf_gpforce,Test_gpdwf_force,Test_gpwilson_force to use GPBC a spatial direction rather than the t-direction, and antiperiodic BCs for time direction
tests/core/Test_gparity now supports using APBC in time direction using command line toggle
paboyle commented 2 years ago

thanks Chris!