Skip to main content

Python wrapper for QUDA written in Cython

Project description

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.

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
    • Read gauge and propagator in MILC format
    • Read/write gauge and propagator in KYU format
    • Read/write gauge and propagator in XQCD format
    • Read/write gauge and propagator in NPY format (numpy)
  • Quark propagator
    • Isotropic/anisotropic Wilson fermion action with multigrid support
    • Isotropic/anisotropic Clover fermion action with multigrid support
    • Isotropic HISQ fermion action
  • HMC
    • Isotropic Wilson gauge action
    • Isotropic Symanzik gauge action
    • 1-flavor isotropic clover fermion action
    • 2-flavor isotropic clover 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 flow
    • Symanzik flow

Installation

Refer to https://github.com/CLQCD/PyQUDA/wiki/Installation for detailed instructions to install PyQUDA from the source.

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

Development

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

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

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 pyquda.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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyquda-0.9.3.tar.gz (158.2 kB view details)

Uploaded Source

File details

Details for the file pyquda-0.9.3.tar.gz.

File metadata

  • Download URL: pyquda-0.9.3.tar.gz
  • Upload date:
  • Size: 158.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyquda-0.9.3.tar.gz
Algorithm Hash digest
SHA256 33caa353f308d4922fdff6ceb0797195c464f59c2bf199fa7013521979d16f4c
MD5 fb3783e90470dc4d374673d07bdfa9d0
BLAKE2b-256 8e0d70ff3f6086b66801e1161ec29f30ded96c3c8498b63103eaae830009afd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyquda-0.9.3.tar.gz:

Publisher: PyQUDA.yaml on CLQCD/PyQUDA

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page