-
Notifications
You must be signed in to change notification settings - Fork 9
Home
SaltyChiang edited this page Mar 3, 2026
·
3 revisions
Python wrapper for QUDA written in Cython. Current version: 0.10.48
This project aims to benefit from the optimized linear algebra library CuPy in Python based on CUDA. CuPy and QUDA will allow us to perform most lattice QCD research operations with high performance. PyTorch and DPNP (for Intel GPU) are alternative options.
This project is based on the latest QUDA develop branch. PyQUDA should be compatible with any commit of QUDA after PR #1489, but leave some features disabled.
PyQUDA is organized into four packages:
| Package | PyPI Name | Description |
|---|---|---|
| pyquda_core | pyquda |
Core QUDA wrapper: Cython bindings, lattice field classes, Dirac operators, HMC framework, gauge operations |
| pyquda_utils | pyquda-utils |
High-level utilities: fermion inversion helpers, source generation, phase, FFT, gamma algebra, HMC parameters, I/O wrappers |
| pyquda_io | (included in pyquda-utils) | Low-level file I/O: Chroma, MILC, KYU, XQCD, ILDG, NERSC, OpenQCD, NPY format readers/writers |
| pyquda_plugins | (included in pyquda-utils) | Plugin system: auto-generate Cython wrappers from C header files |
- Python >= 3.8
- GPU backend: CuPy >= 12, PyTorch >= 2, or DPNP (experimental)
- mpi4py for multi-GPU support
- QUDA compiled as a shared library
- Multi-GPU supported (MPI)
- Multiple GPU backends: CuPy, PyTorch, NumPy (CPU-only), DPNP
- Quark propagator: Wilson, Clover (with multigrid), HISQ, Staggered, Laplace
- HMC: pure gauge, 1/2-flavor Clover, N-flavor HISQ
- Gauge smearing: APE, stout, HYP (3D/4D)
- Fermion smearing: Gaussian (Wuppertal)
- Gradient flow: Wilson/Symanzik (with adjoint flow for fermions)
- Gauge fixing: over-relaxation, FFT
- Rich file I/O: Chroma QIO, MILC, KYU, XQCD, ILDG, NERSC, OpenQCD, NPY, HDF5
- Plugin system for wrapping external C libraries