Quantum Framework
CUDA-Q
CUDA-Q (formerly CUDA Quantum) is NVIDIA's open-source platform for hybrid quantum-classical computing. It provides a unified programming model that allows quantum kernels to run on QPU simulators or real hardware, while classical co-processing runs on NVIDIA GPUs. Designed for high-performance quantum circuit simulation and quantum machine learning workloads.
Overview
Maintainer
NVIDIA
Language(s)
Version
0.x
Supported Architectures
Cloud Platforms
Installation
pip install cudaq # Alternative: pip install cuda-quantum # Or use the official NVIDIA container: # docker pull nvcr.io/nvidia/nightly/cuda-quantum:latest
Requires Python 3.10+. GPU simulation requires an NVIDIA GPU with CUDA 11.8+. CPU simulation works without a GPU. The NVIDIA container includes all GPU drivers and dependencies pre-configured. For hardware targets, additional backend credentials are required.
Bell State Example
A Bell state (maximally entangled two-qubit state) is the canonical first circuit for any quantum framework.
import cudaq
@cudaq.kernel
def bell_state():
qubits = cudaq.qvector(2)
h(qubits[0])
cx(qubits[0], qubits[1])
mz(qubits)
# Local GPU simulation
counts = cudaq.sample(bell_state, shots_count=1024)
print(counts)
# Run on IonQ hardware
cudaq.set_target('ionq', machine='ionq.forte')
hardware_counts = cudaq.sample(bell_state, shots_count=100)Cloud Access
CUDA-Q uses a target-based model: call `cudaq.set_target(...)` to switch from local GPU simulation to cloud QPUs. Supported hardware targets include IonQ, Quantinuum, and IBM Quantum. Each target requires the corresponding API credentials set via environment variables or the CUDA-Q credentials file.
Provider Compatibility
| Provider | Access Method | Notes |
|---|---|---|
| NVIDIA (simulation) | Local GPU (native) | cuStateVec and cuTensorNet backends; multi-GPU support for large circuits |
| IonQ | set_target("ionq") | Supports ionq.harmony and ionq.forte; requires IONQ_API_KEY env var |
| Quantinuum | set_target("quantinuum") | Supports H1 and H2 systems; requires Quantinuum credentials |
| IBM Quantum | set_target("ibm") | Requires IBM Quantum API token; uses Qiskit Runtime under the hood |


