Developers and mantainers
Claudio Bonati (C++ framework, CUDA kernels) (bonati@df.unipi.it)
Guido Cossu (CUDA kernels) (cossu@post.kek.jp)
History:
Version 0.1 9/2011 CUDA kernels
Performs Rational Hybrid Monte Carlo simulation of QCD with N_f flavors of staggered (non improved) fermions. Except some minor functions, all the calculations are performed using NVIDIA gpus, implementing a CUDA version of all the relevant kernels (Dirac operator, Dirac operator inversion, gauge and momenta update).
See the following reference for more details:
'QCD simulations with staggered fermions on GPUs'
Arxiv Paper 1106.5673
The typical compilation follows the pattern:
./configure && make
this will compile a code to run in a single core CPU.
In order to enable CUDA routines type the following command (also look at the
various options in configure --help
)
./configure --enable-cuda=ARCH
where ARCH should be substituted by one of the following strings "sm_XX" in order to choose the target NVIDIA architecture
- sm_10 ISA_1, Basic features
- sm_11 atomic memory operations on global memory
- sm_12 atomic memory operations on shared memory, vote instructions
- sm_13 double precision floating point support (Tesla Cards)
- sm_20 Fermi architecture support
please refer to the original NVIDIA documentation for more details on which cards support the several architectures.
Some newer compilers, like GNU gcc 4.5
, are incompatible with the NVIDIA nvcc
compiler (CUDA 4.0). In order to solve this problem you should install a different
version of the compiler, e.g. gcc 4.4
, in the directory PATH_TO_COMPILER
and then
configure with the following command
./configure --enable-cuda=ARCH --with-cuda_comp=PATH_TO_COMPILER CXX=PATH_TO_COMPILER/g++ CC=PATH_TO_COMPILER/gcc
Also, if the mandatory library MPFR (for Multiple Precision in rational approximations) is
installed in a non standard location (not /usr/lib
) use the flag --with-mpfr=PATH
where PATH
is the location
of the library in your system
- Some older versions of
autoreconf
fail to build a workingconfigure
file. Usually the one shipped is working.
If you find any bug please report any to the developers on GitHub issues: