Skip to main content

unitarylab-cu12

CUDA 12 native statevector and density-matrix backends for UnitaryLab.

This repository branch builds the CUDA backend as an independent Python wheel. The PyPI distribution name is unitarylab-cu12; the Python import package is unitarylab_cu12.

Supported environment

  • Linux x86_64 and Linux aarch64 server environments
  • Windows x86-64
  • CPython 3.10, 3.11, and 3.12
  • CUDA 12 runtime provided by nvidia-cuda-runtime-cu12
  • cuBLAS provided by nvidia-cublas-cu12
  • NVIDIA driver compatible with the CUDA version used by the wheel

Linux aarch64 wheels target server environments and do not promise Jetson compatibility. macOS, Windows ARM64, and Python 3.13 are not part of the wheel matrix.

Build

Building requires a CUDA 12 development toolkit, a C++ compiler, CMake, and Ninja. Build wheels only; source distributions are intentionally disabled.

python -m build --wheel

Override the CUDA architecture list when necessary:

UNITARYLAB_CUDA_ARCHS="80-real;86-real;89-real;90-real" \
  python -m build --wheel

Install a wheel

python -m pip install unitarylab-cu12

Verify the native extension import:

from unitarylab_cu12 import cudadensity, cugates

print(cugates.__doc__)
print(cudadensity.__doc__)

cugates provides the fused CUDA statevector backend, while cudadensity provides dense CUDA density-matrix execution. The high-level executors remain in the main unitarylab package.

On Linux, extension RUNPATH entries locate libcudart.so.12 and cuBLAS in the NVIDIA runtime wheels. On Windows, the Python package registers the runtime and cuBLAS bin directories before loading either extension; a complete system CUDA Toolkit is not required at runtime.

The machine must still have an NVIDIA driver compatible with CUDA 12. Import checks performed by GitHub Actions verify wheel and runtime-library loading on GPU-less runners; they do not execute CUDA kernels.

GitHub Actions

The Build CUDA Wheels workflow is started manually with workflow_dispatch. It builds Linux x86_64, Linux aarch64, and Windows AMD64 wheels, validates their native dependencies, then stores them as GitHub Actions artifacts for 14 days. It does not publish to PyPI.

Synchronize CUDA sources from main

Keep release-specific packaging files on this branch and synchronize only the shared CUDA source directory:

git switch release/cu12
git fetch origin main
git restore --source origin/main -- \
  unitarylab/backend/cugates/src \
  unitarylab/backend/density_matrix/cudadensity/src
git diff
git add \
  unitarylab/backend/cugates/src \
  unitarylab/backend/density_matrix/cudadensity/src
git commit -m "sync: update CUDA backends from main"

Do not merge main into this branch; doing so would restore the full UnitaryLab source tree.

Metadata

Release files for unitarylab-cu12 0.2.1

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

Built distributions (wheels)

Table of built distributions (wheels) for unitarylab-cu12 0.2.1
File
unitarylab_cu12-0.2.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64 Details
unitarylab_cu12-0.2.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details
unitarylab_cu12-0.2.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64 Details

Total release size: 180.8 MB

Release files / unitarylab_cu12-0.2.1-cp312-cp312-win_amd64.whl

Download URL unitarylab_cu12-0.2.1-cp312-cp312-win_amd64.whl
Size 20.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
824ce41f171ddbbcebbbb944f2d9ece6eaea2f8208dd07050af543c4a7977592
BLAKE2b-256 checksum
How to use checksums
c01b46c31b5c6a6115b48bc7971a5aabb72f8e176b2b0727ea003fb6c4e2080f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl
Size 20.1 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
56f435bb924cca38ec7207b6bcd7b653618784609db8f262e687cbfb91b2ef0e
BLAKE2b-256 checksum
How to use checksums
241593a6613d87cd5930150bf4bba25a4c047255fa0297c8353205df34721163
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_aarch64.whl

Download URL unitarylab_cu12-0.2.1-cp312-cp312-manylinux_2_34_aarch64.whl
Size 20.0 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
beae26b209b2e27cc8dbf8ee68e67d1d4f384d8f976e2fcad3941640f2a986d4
BLAKE2b-256 checksum
How to use checksums
2f0368517730e51d6823c095e7da8174bfd9619c1dec83e0ee4234f29b86e34b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp311-cp311-win_amd64.whl

Download URL unitarylab_cu12-0.2.1-cp311-cp311-win_amd64.whl
Size 20.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
edc4fe6ddc89a6a4b4542215b1f31930b6e9602acf7e0cc4531eb38959cf7ff6
BLAKE2b-256 checksum
How to use checksums
2546a2ad974fc978b94fd8222d7d5a17507a457320bccda7f9215b7475396e0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_x86_64.whl
Size 20.1 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
e88013a101a3c79f62bf4ec716c3d14462e82cf6026b8fa833ac4a3357739c93
BLAKE2b-256 checksum
How to use checksums
8a7209d8e23b47decdffe2eefeca83194f1e42173455379343d08477b53ad842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL unitarylab_cu12-0.2.1-cp311-cp311-manylinux_2_34_aarch64.whl
Size 20.0 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
163604154c545af18a62e2e9fe7563591e6446e69ba5434f9b377c174d76bc62
BLAKE2b-256 checksum
How to use checksums
8023948fbefd8f327a2763cb9e2f25a7cc0c678f6192c3f8c096962ebe1d10da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp310-cp310-win_amd64.whl

Download URL unitarylab_cu12-0.2.1-cp310-cp310-win_amd64.whl
Size 20.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3bfb825dd675e15031bc47fcfeff9389561b7ea25b10a322342b3d86fcc871be
BLAKE2b-256 checksum
How to use checksums
b06bd30f4c6b92d48e65fd1a191c9f5e1509d9adfe4190ff0093bbc412ec7d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_x86_64.whl
Size 20.1 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
d74b74a1cd94139739eafc25b300a5f47e65a6ecb43a604b989e94799006dbbe
BLAKE2b-256 checksum
How to use checksums
5fb930db53445fc679d074ad5eb348cf4350cc376208a28fb0f70c659160a4f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_aarch64.whl

Download URL unitarylab_cu12-0.2.1-cp310-cp310-manylinux_2_34_aarch64.whl
Size 20.0 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
2ce4e596c25011c5aebaf48081d532d7e49c6c793ef6bf5065fff744dac8c578
BLAKE2b-256 checksum
How to use checksums
76b4b622b37d92471a711357bab36974e9081dd826d143c361f3bc3ca33b5b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.2.1 This release

9 release files

0.2.0

9 release files

0.1.0

9 release files

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