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 routines for HISQ link fattening and force terms for the HISQ fermion action and one-loop improved Symanzik gauge action. Use of many GPUs in parallel is supported throughout, with communication handled by QMP or MPI.

Several commonly-used packages integrate support for QUDA as a compile-time option, including Chroma, MILC, CPS, and BQCD (in a specific branch available here).

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 (11th March 2014).

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.

         Email:

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, Mike 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):

When taking advantage of multi-GPU support, please also cite (arXiv, INSPIRE):


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.