NVIDIA CUDA-Q
latest

Contents

  • Quick Start
    • Install CUDA-Q
    • Validate your Installation
    • CUDA-Q Academic
  • Basics
    • What is a CUDA-Q Kernel?
    • Building your first CUDA-Q Program
    • Running your first CUDA-Q Program
      • Sample
      • Observe
      • Running on a GPU
    • Troubleshooting
      • Debugging and Verbose Simulation Output
  • Examples
    • Introduction
    • Building Kernels
    • Quantum Operations
      • Quantum States
      • Quantum Gates
      • Measurements
    • Measuring Kernels
      • Mid-circuit Measurement and Conditional Logic
    • Visualizing Kernels
      • Qubit Visualization
      • Kernel Visualization
    • Executing Kernels
      • Sample
      • Observe
      • Get state
      • Parallelization Techniques
        • Observe Async
        • Sample Async
        • Get State Async
    • Computing Expectation Values
      • Parallelizing across Multiple Processors
    • Multi-Control Synthesis
    • Multi-GPU Workflows
      • From CPU to GPU
      • Pooling the memory of multiple GPUs (mgpu)
      • Parallel execution over multiple QPUs (mqpu)
        • Batching Hamiltonian Terms
        • Circuit Batching
      • Multi-QPU + Other Backends (remote-mqpu)
    • Optimizers & Gradients
      • Built in CUDA-Q Optimizers and Gradients
      • Third-Party Optimizers
      • Parallel Parameter Shift Gradients
    • Noisy Simulations
    • Constructing Operators
      • Constructing Spin Operators
      • Pauli Words and Exponentiating Pauli Words
    • Performance Optimizations
      • Gate Fusion
    • Using Quantum Hardware Providers
      • Amazon Braket
      • Infleqtion
      • IonQ
      • IQM
      • OQC
      • ORCA Computing
      • Pasqal
      • Quantinuum
      • QuEra Computing
    • Dynamics Examples
      • Cavity QED
      • Cross Resonance
      • Gate Calibration
      • Heisenberg Model
      • Landau Zener
      • Pulse
      • Qubit Control
      • Qubit Dynamics
      • Silicon Spin Qubit
      • Tensor Callback
      • Transmon Resonator
      • Initial State (Multi-GPU Multi-Node)
      • Heisenberg Model (Multi-GPU Multi-Node)
  • Applications
    • Max-Cut with QAOA
    • Molecular docking via DC-QAOA
      • Setting up the Molecular Docking Problem
      • CUDA-Q Implementation
    • Multi-reference Quantum Krylov Algorithm - \(H_2\) Molecule
      • Setup
      • Computing the matrix elements
      • Determining the ground state energy of the subspace
    • Bernstein-Vazirani Algorithm
      • Classical case
      • Quantum case
      • Implementing in CUDA-Q
    • Cost Minimization
    • Deutsch’s Algorithm
      • XOR \(\oplus\)
      • Quantum oracles
      • Phase oracle
      • Quantum parallelism
      • Deutsch’s Algorithm:
    • Divisive Clustering With Coresets Using CUDA-Q
      • Data preprocessing
      • Quantum functions
      • Divisive Clustering Function
      • QAOA Implementation
      • Scaling simulations with CUDA-Q
    • Hybrid Quantum Neural Networks
    • Using the Hadamard Test to Determine Quantum Krylov Subspace Decomposition Matrix Elements
      • Numerical result as a reference:
      • Using Sample to perform the Hadamard test
      • Multi-GPU evaluation of QKSD matrix elements using the Hadamard Test
        • Classically Diagonalize the Subspace Matrix
    • Anderson Impurity Model ground state solver on Infleqtion’s Sqale
      • Performing logical Variational Quantum Eigensolver (VQE) with CUDA-QX
      • Constructing circuits in the [[4,2,2]] encoding
      • Setting up submission and decoding workflow
      • Running a CUDA-Q noisy simulation
      • Running logical AIM on Infleqtion’s hardware
    • Spin-Hamiltonian Simulation Using CUDA-Q
      • Introduction
        • Heisenberg Hamiltonian
        • Transverse Field Ising Model (TFIM)
        • Time Evolution and Trotter Decomposition
      • Key steps
        • 1. Prepare initial state
        • 2. Hamiltonian Trotterization
        • 3. Compute overlap
        • 4. Construct Heisenberg Hamiltonian
        • 5. Construct TFIM Hamiltonian
        • 6. Extract coefficients and Pauli words
      • Main code
      • Visualization of probablity over time
      • Expectation value over time:
      • Visualization of expectation over time
      • Additional information
      • Relevant references
    • Quantum Fourier Transform
      • Quantum Fourier Transform revisited
    • Quantum Teleporation
      • Teleportation explained
    • Quantum Volume
    • Readout Error Mitigation
      • Inverse confusion matrix from single-qubit noise model
      • Inverse confusion matrix from k local confusion matrices
      • Inverse of full confusion matrix
    • Compiling Unitaries Using Diffusion Models
      • Diffusion model pipeline
      • Setup and compilation
      • Load model
      • Unitary compilation
      • Convert tensors to CUDA-Q
      • Evaluate generated circuits
      • Simulate kernels
      • Compare unitaries
      • Choosing the circuit you need
    • VQE with gradients, active spaces, and gate fusion
      • The Basics of VQE
      • Installing/Loading Relevant Packages
      • Implementing VQE in CUDA-Q
      • Parallel Parameter Shift Gradients
      • Using an Active Space
      • Gate Fusion for Larger Circuits
    • Quantum Transformer
      • Installation
      • Algorithm and Example
        • Creating the self-attention circuits
      • Usage
        • Model Training
        • Generating Molecules
        • Attention Maps
    • Quantum Enhanced Auxiliary Field Quantum Monte Carlo
      • Hamiltonian preparation for VQE
      • Run VQE with CUDA-Q
      • Auxiliary Field Quantum Monte Carlo (AFQMC)
      • Preparation of the molecular Hamiltonian
      • Preparation of the trial wave function
      • Setup of the AFQMC parameters
    • ADAPT-QAOA algorithm
      • Simulation input:
      • The problem Hamiltonian \(H_C\) of the max-cut graph:
      • Th operator pool \(A_j\):
      • The commutator \([H_C,A_j]\):
      • Beginning of ADAPT-QAOA iteration:
    • ADAPT-VQE algorithm
      • Classical pre-processing
      • Jordan Wigner:
      • UCCSD operator pool
        • Single excitation
        • Double excitation
      • Commutator [\(H\), \(A_i\)]
      • Reference State:
      • Quantum kernels:
      • Beginning of ADAPT-VQE:
    • Quantum edge detection
      • Image
      • Quantum Probability Image Encoding (QPIE):
        • Below we show how to encode an image using QPIE in cudaq.
      • Flexible Representation of Quantum Images (FRQI):
        • Building the FRQI State:
      • Quantum Hadamard Edge Detection (QHED)
        • Post-processing
    • Factoring Integers With Shor’s Algorithm
      • Shor’s algorithm
        • Solving the order-finding problem classically
        • Solving the order-finding problem with a quantum algorithm
        • Determining the order from the measurement results of the phase kernel
        • Postscript
    • Generating the electronic Hamiltonian
      • Second Quantized formulation.
        • Computational Implementation
      • (a) Generate the molecular Hamiltonian using Hartree Fock molecular orbitals
        • Active space Hamiltonian:
      • (b) Generate the active space hamiltonian using HF molecular orbitals.
      • (c) Generate the active space Hamiltonian using the natural orbitals computed from MP2 simulation
      • (d) Generate the active space Hamiltonian computed from the CASSCF molecular orbitals
  • Backends
    • Circuit Simulation
      • State Vector Simulators
        • CPU
        • Single-GPU
        • Multi-GPU multi-node
      • Tensor Network Simulators
        • Multi-GPU multi-node
        • Matrix product state
        • Fermioniq
      • Multi-QPU Simulators
        • Simulate Multiple QPUs in Parallel
        • Multi-QPU + Other Backends
      • Noisy Simulators
        • Trajectory Noisy Simulation
        • Density Matrix
        • Stim
      • Photonics Simulators
        • orca-photonics
    • Quantum Hardware (QPUs)
      • Ion Trap QPUs
        • IonQ
        • Quantinuum
      • Superconducting QPUs
        • Anyon Technologies/Anyon Computing
        • IQM
        • OQC
      • Neutral Atom QPUs
        • Infleqtion
        • Pasqal
        • QuEra Computing
      • Photonic QPUs
        • ORCA Computing
    • Dynamics Simulation
    • Cloud
      • Amazon Braket (braket)
        • Setting Credentials
        • Submission from C++
        • Submission from Python
      • NVIDIA Quantum Cloud (nvqc)
        • Quick Start
        • Simulator Backend Selection
        • Multiple GPUs
        • Multiple QPUs Asynchronous Execution
        • FAQ
  • Dynamics
    • Quick Start
    • Operator
    • Time-Dependent Dynamics
    • Numerical Integrators
    • Multi-GPU Multi-Node Execution
    • Examples
  • CUDA-QX
    • CUDA-Q Solvers
    • CUDA-Q QEC
  • Installation
    • Local Installation
      • Introduction
        • Docker
        • Known Blackwell Issues
        • Singularity
        • Python wheels
        • Pre-built binaries
      • Development with VS Code
        • Using a Docker container
        • Using a Singularity container
      • Connecting to a Remote Host
        • Developing with Remote Tunnels
        • Remote Access via SSH
      • DGX Cloud
        • Get Started
        • Use JupyterLab
        • Use VS Code
      • Additional CUDA Tools
        • Installation via PyPI
        • Installation In Container Images
        • Installing Pre-built Binaries
      • Distributed Computing with MPI
      • Updating CUDA-Q
      • Dependencies and Compatibility
      • Next Steps
    • Data Center Installation
      • Prerequisites
      • Build Dependencies
        • CUDA
        • Toolchain
      • Building CUDA-Q
      • Python Support
      • C++ Support
      • Installation on the Host
        • CUDA Runtime Libraries
        • MPI
  • Integration
    • Downstream CMake Integration
    • Combining CUDA with CUDA-Q
    • Integrating with Third-Party Libraries
      • Calling a CUDA-Q library from C++
      • Calling an C++ library from CUDA-Q
      • Interfacing between binaries compiled with a different toolchains
  • Extending
    • Create a new NVQIR Simulator
      • CircuitSimulator
      • Let’s see this in action
    • Working with CUDA-Q IR
    • Create an MLIR Pass for CUDA-Q
  • Specifications
    • Language Specification
      • 1. Machine Model
      • 2. Namespace and Standard
      • 3. Quantum Types
        • 3.1. cudaq::qudit<Levels>
        • 3.2. cudaq::qubit
        • 3.3. Quantum Containers
      • 4. Quantum Operators
        • 4.1. cudaq::spin_op
      • 5. Quantum Operations
        • 5.1. Operations on cudaq::qubit
      • 6. Quantum Kernels
      • 7. Sub-circuit Synthesis
      • 8. Control Flow
      • 9. Just-in-Time Kernel Creation
      • 10. Quantum Patterns
        • 10.1. Compute-Action-Uncompute
      • 11. Platform
      • 12. Algorithmic Primitives
        • 12.1. cudaq::sample
        • 12.2. cudaq::observe
        • 12.3. cudaq::optimizer (deprecated, functionality moved to CUDA-Q libraries)
        • 12.4. cudaq::gradient (deprecated, functionality moved to CUDA-Q libraries)
      • 13. Example Programs
        • 13.1. Hello World - Simple Bell State
        • 13.2. GHZ State Preparation and Sampling
        • 13.3. Quantum Phase Estimation
        • 13.4. Deuteron Binding Energy Parameter Sweep
        • 13.5. Grover’s Algorithm
        • 13.6. Iterative Phase Estimation
    • Quake Specification
      • General Introduction
      • Motivation
  • API Reference
    • C++ API
      • Operators
      • Quantum
      • Common
      • Noise Modeling
      • Kernel Builder
      • Algorithms
      • Platform
      • Utilities
      • Namespaces
    • Python API
      • Program Construction
        • make_kernel()
        • PyKernel
        • Kernel
        • PyKernelDecorator
        • kernel()
      • Kernel Execution
        • sample()
        • sample_async()
        • observe()
        • observe_async()
        • get_state()
        • get_state_async()
        • vqe()
        • draw()
        • translate()
      • Backend Configuration
        • has_target()
        • get_target()
        • get_targets()
        • set_target()
        • reset_target()
        • set_noise()
        • unset_noise()
        • cudaq.apply_noise()
        • initialize_cudaq()
        • num_available_gpus()
        • set_random_seed()
      • Dynamics
        • evolve()
        • evolve_async()
        • Schedule
        • BaseIntegrator
        • InitialState
        • to_cupy_array()
      • Operators
        • OperatorSum
        • ProductOperator
        • ElementaryOperator
        • ScalarOperator
        • RydbergHamiltonian
        • operators.define()
        • operators.instantiate()
        • Spin Operators
        • Fermion Operators
        • Boson Operators
        • General Operators
      • Data Types
        • SimulationPrecision
        • Target
        • State
        • Tensor
        • QuakeValue
        • qubit
        • qreg
        • qvector
        • ComplexMatrix
        • SampleResult
        • AsyncSampleResult
        • ObserveResult
        • AsyncObserveResult
        • AsyncStateResult
        • OptimizationResult
        • EvolveResult
        • AsyncEvolveResult
        • Optimizers
        • Gradients
        • Noisy Simulation
      • MPI Submodule
        • initialize()
        • rank()
        • num_ranks()
        • all_gather()
        • broadcast()
        • is_initialized()
        • finalize()
      • ORCA Submodule
        • sample()
    • Quantum Operations
      • Unitary Operations on Qubits
        • x
        • y
        • z
        • h
        • r1
        • rx
        • ry
        • rz
        • s
        • t
        • swap
        • u3
      • Adjoint and Controlled Operations
      • Measurements on Qubits
        • mz
        • mx
        • my
      • User-Defined Custom Operations
      • Photonic Operations on Qudits
        • create
        • annihilate
        • phase_shift
        • beam_splitter
        • mz
  • Other Versions
NVIDIA CUDA-Q
  • Specifications
  • View page source
Previous Next

Specifications¶

The following specifications for the CUDA-Q programming model and toolchain are available:

  • Language Specification
    • 1. Machine Model
    • 2. Namespace and Standard
    • 3. Quantum Types
    • 4. Quantum Operators
    • 5. Quantum Operations
    • 6. Quantum Kernels
    • 7. Sub-circuit Synthesis
    • 8. Control Flow
    • 9. Just-in-Time Kernel Creation
    • 10. Quantum Patterns
    • 11. Platform
    • 12. Algorithmic Primitives
    • 13. Example Programs
  • Quake Specification
    • General Introduction
    • Motivation
Previous Next

© Copyright 2025, NVIDIA Corporation & Affiliates.

Built with Sphinx using a theme provided by Read the Docs.