-
Notifications
You must be signed in to change notification settings - Fork 0
Home
The following pages give information on QUDA's build system and dependencies
These pages give information on how to build QUDA using MPI, including some machine-specific instructions
- Multi GPU Support
- Installing MVAPICH2 GDR
- QIO and QMP
- QUDA on Perlmutter
- QUDA on Summit
- QUDA and NVSHMEM
QUDA has several features one can take advantage of to accelerate operator inversion. We list here some of the algorithms currently available.
QUDA also offers the option to use mixed precision in its solvers Mixed Precision
QUDA offers a variety of pure SU(3) gauge algorithms and utilities that are needed for LQCD studies.
- Gauge Measurements
- Gauge Smearing
-
Gauge Fixing
- Over-Improved
- Steepest Descent FFT
- Heatbath
- Clover Fermions
- MILC with QUDA
- Chroma with QUDA
- CPS with QUDA
- OpenQxD with QUDA
- QUDA Interface
- QUDA Parameter Structures
- QUDA Data Structures And Types
- Best Practices
- Updating the QUDA Interface
- Adding new QUDA features
- Writing QUDA Kernels
- Checking that new QUDA features preserve Dslash behavior
- Adding new Nc to Multigrid
- Coding Conventions and Style
- Validating Large Multigrid Changes
- QUDA Development model Some Rules and Best Practices for writing code and use of git
- Continuous Integration
- QUDA Release Procedure
- QUDA Release Testing
- QUDA Debugging
- Timing QUDA build
- External QUDA mods
These projects have branches associated with them, but have not yet made been pulled into mainline QUDA (develop branch). Some projects are in a useful state, others are in early stages. We list here some of the more prominent
- Meson/Baryon contractions
- Color agnostic LQCD
- Full (R)HMC functionality
- (Stochastic) Laplace Heaviside (s)LapH spectroscopy
- Deflation using Split Grid
- Compressed Thick Restarted Eigensolver
- Exponentiated Clover Action
Below we have included some important case studies, designed to be guides on how to get the most out of QUDA solvers for different use cases in modern LQCD.
-
Clover HMC evolution with multigrid Here we use the Multigrid solver to accelerate inversions during the HMC evolution. As the HMC algorithm evolves the operator, the Multigrid preconditioner loses coherence with the target. We demonstrate here how to set up a multigrid preconditioner to accelerate solves, show the operator decohereing, and how to tune the parameters to minimise this decoherence.
-
Twisted clover deflated multigrid Here we recognise that the Twisted-clover operator is pathologically ill conditioned, to the extent that even with an aggressive three level multgrid solve, these low eigenmodes remain on the coarse grid. Previous attempts to avoid these low modes involved artificially adjusting the coarse grid operator to have a large value on mu, known colloquially as
mu scaling
. In this case study we demonstrate that one can avoidmu scaling
completely by explicitly deflating the offending low modes on the coarse grid, and thence acquire significant speed up over the previous method. -
Persistent deflation spaces for multi-mass/flavor problems In this case study we show how one can use the deflated multigrid solver (as expounded on in the Twisted-clover deflated multigrid study) for one mass/flavour of quark, keep the eigenvectors used in deflation, and recompute the eigenvalues for different masses. This gives significant speed-up over recomputing the multigrid preconditioner for each mass/flavor.
-
Möbius minimal-memory deflation Here we show a simple, yet powerful trick to minimise the amount of device memory needed to perform deflation of the Möbius operator when using the Thick Restarted eigensolver. We employ an LU decomposition of the dense rotation matrix used in the Krlyov space compression to break up the rotation into small chunks. This reduction allows for an approximately 50% reduction in the partition size needed for a given problem with very little degradation of performance.
-
Multi-Splitting Preconditioned CG A proper additive Schwarz preconditioner for Mobius fermions.