QUDA: A library for QCD on GPUs
QUDA is a library for performing calculations in lattice QCD on
graphics processing units (GPUs), leveraging NVIDIA's CUDA platform.
The current release includes optimized Dirac operators and solvers for
the following fermion actions:
Implementations of CG, multi-shift CG, BiCGstab, and DD-preconditioned
GCR are provided, including robust mixed-precision variants supporting
combinations of double, single, and half (16-bit "block floating
point") precision. The library also includes auxiliary routines
necessary for Hybrid Monte Carlo, such as HISQ link fattening, force
terms and clover-field construction. Use of many GPUs in parallel is
supported throughout, with communication handled by QMP or MPI.
- Clover-improved Wilson
- Twisted mass (degenerate or non-degenerate)
- Twisted mass with a clover term
- Staggered fermions
- Improved staggered (asqtad or HISQ)
- Domain wall (4-d or 5-d preconditioned)
- Mobius fermions
Several commonly-used packages integrate support for QUDA as a compile-time
(in a specific branch available
Disclaimer: This package is undergoing active development, and
the interface may change between releases. See
and NEWS files for the most recent
The current release
(01st February 2016).
Past releases are here.
The current release may also be found in
QUDA's source code
repository (branch: master).
Current documentation is minimal, consisting mainly of the README file
and the examples in the tests/ directory. For those interested in QUDA's
internals, reference pages generated by doxygen are available for the
To receive announcements of future QUDA releases, please subscribe to
mailing list by entering your address in the box below or by sending
an email message
An archive of past announcements is
The preferred method for requesting help is
to submit an
issue, but this currently requires a (free) GitHub account. An
alternative is to simply email the developers at
quda-developers[at]googlegroups[dot]com. If reporting a bug, please
be sure to specify which version of QUDA you're using.
If you find this code useful in your work, please cite
- M. A. Clark, R. Babich, K. Barros, R. Brower, and C. Rebbi,
"Solving Lattice QCD systems of equations using mixed precision
solvers on GPUs," Comput. Phys. Commun. 181, 1517 (2010)
When taking advantage of multi-GPU support, please also cite
- R. Babich, M. A. Clark, B. Joo, G. Shi, R. C. Brower, and S. Gottlieb,
"Scaling lattice QCD beyond 100 GPUs," International Conference for
High Performance Computing, Networking, Storage and Analysis (SC),
2011 [arXiv:1109.2935 [hep-lat]].
Acknowledgment: This material is based upon work
supported in part by the U.S. Department of Energy
under grants DE-FC02-06ER41440, DE-FC02-06ER41449, and
DE-AC05-06OR23177; the National Science Foundation under grants
DGE-0221680, PHY-0427646, PHY-0835713, OCI-0946441, and OCI-1060067;
as well as the PRACE project funded in part by the EUs 7th Framework
Programme (FP7/2007-2013) under grants RI-211528 and FP7-261557. Any
opinions, findings, and conclusions or recommendations expressed in
this material are those of the authors and do not necessarily reflect
the views of the Department of Energy, the National Science
Foundation, or the PRACE project.