QUDA: A library for QCD on GPUs
QUDA is a library for performing calculations in lattice QCD on
graphics processing units (GPUs) using NVIDIA's "C for CUDA" API. The
current release includes optimized solvers for the following fermion
actions:
- Wilson
- Clover-improved Wilson
- Twisted mass
- Improved staggered (asqtad or HISQ)
- Domain wall
Mixed-precision implementations of both CG and BiCGstab are provided,
with support for double, single, and half (16-bit fixed-point)
precision. The staggered implementation additionally includes support
for asqtad link fattening, force terms for the asqtad fermion action
and one-loop improved Symanzik gauge action, and a multi-shift CG
solver. Use of multiple GPUs in parallel is supported for all actions
except domain wall.
Download
Disclaimer: This package is undergoing active development, and
the interface may change between releases. See
the README
and NEWS files for the most recent
changes.
The current release
is here
(4 April 2012).
Past releases are here.
The very latest (likely unstable) version may be found in
QUDA's source code
repository.
Documentation
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
current release.
Mailing List
To receive announcements of future QUDA releases, please subscribe to
the quda-announce
mailing list by entering your address in the box below or by sending
an email message
to quda-announce+subscribe@googlegroups.com.
An archive of past announcements is
here.
Getting Help
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.
Acknowledgments
Authors:
Ronald Babich,
Kipton Barros,
Richard Brower,
Michael Clark,
Justin Foley,
Joel Giedt,
Steven Gottlieb,
Bálint Joó,
Claudio Rebbi,
Guochun Shi,
Alexei Strelchenko
If you find this code useful in your work, please cite
(arXiv,
INSPIRE):
- 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)
[arXiv:0911.3191 [hep-lat]].
When taking advantage of multi-GPU support, please also cite
(arXiv,
INSPIRE):
- 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, as well
as by the National Science Foundation under grants DGE-0221680,
PHY-0427646, PHY-0835713, OCI-0946441, and OCI-1060067. 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 or the National Science
Foundation.