Skip to main content

PyQUDA

Python wrapper for QUDA written in Cython.

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 is an alternative option. DPNP is the recommendation for Intel GPU.

This project is based on the latest QUDA develop branch. PyQUDA should be compatible with any commit of QUDA after https://github.com/lattice/quda/pull/1489, but leave some features disabled.

Feature

  • Multi-GPU supported
  • File I/O
    • Read gauge and propagator in Chroma format (with checksum)
    • Read gauge and propagator in MILC format (with checksum)
    • Read/write gauge and propagator in KYU format
    • Read/write gauge and propagator in XQCD format
    • Read/write gauge in NERSC format
    • Read/write gauge in OpenQCD format
    • Read/write lattice field in NPY format (numpy)
    • Read/write lattice field in HDF5 format (h5py)
  • Quark propagator
    • Isotropic/anisotropic Wilson fermion action with multigrid support
    • Isotropic/anisotropic Clover fermion action with multigrid support
    • Isotropic HISQ fermion action
  • HMC
    • Isotropic gauge action
    • 1-flavor isotropic clover fermion action
    • 2-flavor isotropic clover fermion action
    • N-flavor isotropic HISQ fermion action
  • Gauge fixing
    • Rotation field with over-relaxation method (waiting for QUDA merge)
  • Gauge smearing
    • 3D/4D APE smearing
    • 3D/4D stout smearing
    • 3D/4D HYP smearing
  • Fermion smearing
    • Gaussian smearing
  • Gradient flow
    • Wilson/Symanzik flow
    • Wilson/Symanzik flow with fermion
    • Adjoint Wilson/Symanzik flow with fermion

Installation

Install from PyPI (Recommend)

Assuming the QUDA installation path is /path/to/quda/build/usqcd

export QUDA_PATH=/path/to/quda/build/usqcd
python3 -m pip install pyquda pyquda-utils

Install from source

export QUDA_PATH=/path/to/quda/build/usqcd
git clone --recursive https://github.com/CLQCD/PyQUDA.git
cd PyQUDA/pyquda_core
python3 -m pip install .
cd ..
python3 -m pip install .

Benchmark

Refer to https://github.com/CLQCD/PyQUDA/wiki/Benchmark for detailed instructions to run the PyQUDA benchmark.

Documentation (draft)

https://github.com/CLQCD/PyQUDA/wiki/Documentation

Plugin

Refer to https://github.com/CLQCD/PyQUDA/wiki/Plugin for detailed instructions to build PyQUDA plugins.

Here are plugins developed by PyQUDA developers:

Development

We recommend building PyQUDA using in-place mode instead of installing PyQUDA for development.

export QUDA_PATH=/path/to/quda/build/usqcd
git clone --recursive https://github.com/CLQCD/PyQUDA.git
cd PyQUDA/pyquda_core
python3 setup.py build_ext --inplace
cd ..
python3 setup.py egg_info
ln -s pyquda_core/pyquda_comm ./
ln -s pyquda_core/pyquda ./

Now you can modify Python files in the project and immediately get the new result by running scripts. Adding the root directory to sys.path is needed if you are running scripts from other directories.

Maintenance

Function definitions (mainly in quda.in.pxd and quda.in.pyx) and most docstrings (mainly in pyquda.pyi and enum_quda.in.py) should be manually updated as they cannot be autogenerated now. This also means PyQUDA should work well with future versions if the API remains unchanged.

Metadata

Release files for PyQUDA-Utils 0.10.54.post0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyQUDA-Utils 0.10.54.post0
File Size Uploaded
pyquda_utils-0.10.54.post0.tar.gz 135.9 kB Details

Release files / pyquda_utils-0.10.54.post0.tar.gz

Download URL pyquda_utils-0.10.54.post0.tar.gz
Size 135.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5a2ce4f080d51a11bbb22e2abd1194b94dde0e48255e0e784bed00fbf61d59fe
BLAKE2b-256 checksum
How to use checksums
2b3a13fd577b9cd58e544ccd5e388981e7ef36b1e693c944523e76f9b9c30aa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.54.post0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page