NVIDIA CUDA Quantum
0.5.0

Contents

  • Getting Started
    • Local Installation
      • Docker
      • Singularity
      • Python wheels
    • 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
    • Dependencies and Compatibility
    • Next Steps
  • Learn the Basics
    • CUDA Quantum Prerequisites
    • Compiling CUDA Quantum Programs
    • What is a CUDA Quantum Kernel?
    • Allocating Quantum Memory
    • Runtime Versus Compile-time Kernels
    • Generic Library Functions
    • Creating Kernels at Runtime
    • Variational Algorithms
    • Multi-processor Platforms
      • Asynchronous expectation value computations
      • Parallel distribution mode
        • C++
        • Python
    • Debugging and Verbose Logging
  • Advanced Topics
    • Create a new NVQIR Simulator
      • CircuitSimulator
      • Let’s see this in action
    • Downstream CMake Integration
    • Working with CUDA Quantum IR
    • Create an MLIR Pass for CUDA Quantum
  • Examples
    • CUDA Quantum in C++
      • Introduction
      • Computing Expectation Values
      • Multi-control Synthesis
      • Simulations with cuQuantum
      • Noisy Simulation
      • Using Quantum Hardware Providers
    • CUDA Quantum in Python
      • Introduction
      • Bernstein-Vazirani
      • Variational Quantum Eigensolver
      • Quantum Approximate Optimization Algorithm
      • Noisy Simulation
      • Using Quantum Hardware Providers
  • Tutorials
    • Executing Quantum Circuits
      • Sample
      • Observe
    • Cost Minimization
    • Noisy Simulation
    • Variational Quantum Eigensolver
    • Hybrid Quantum Neural Networks
    • Multi-GPU Workflows
      • Available Targets
      • QPP-based CPU Backend
      • Acceleration via NVIDIA GPUs
      • Multiple NVIDIA GPUs
      • Multiple QPU’s
  • Simulator Backends
    • State Vector Simulators
      • Single-GPU
      • Multi-node multi-GPU
      • OpenMP CPU-only
    • Tensor Network Simulators
      • Multi-node multi-GPU
      • Matrix product state
    • Default Simulator
  • Hardware Backends
    • Quantinuum
      • Setting Credentials
      • Submission from C++
      • Submission from Python
    • IonQ
      • Setting Credentials
      • Submission from C++
      • Submission from Python
    • IQM
      • Setting Credentials
      • Submission from C++
      • Submission from Python
    • OQC
      • Setting Credentials
      • Submission from C++
      • Submission from Python
  • Specifications
    • Language Specification
      • 1. Machine Model
      • 2. Namespace
      • 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
      • 6. Quantum Kernels
        • 6.1. Kernel Composability
        • 6.2. Allowed Kernel Classical Function Invocations
      • 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
        • 12.4. cudaq::gradient
      • 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
      • Namespaces
    • Python API
      • Program Construction
        • make_kernel()
        • from_state()
        • Kernel
      • Kernel Execution
        • sample()
        • sample_async()
        • observe()
        • observe_async()
        • get_state()
        • get_state_async()
        • vqe()
      • Backend Configuration
        • has_target()
        • get_target()
        • get_targets()
        • set_target()
        • reset_target()
        • set_noise()
        • unset_noise()
        • initialize_cudaq()
        • num_available_gpus()
        • set_random_seed()
      • Data Types
        • Target
        • State
        • QuakeValue
        • qubit
        • qreg
        • ComplexMatrix
        • SpinOperator
        • spin.i()
        • spin.x()
        • spin.y()
        • spin.z()
        • SampleResult
        • AsyncSampleResult
        • ObserveResult
        • AsyncObserveResult
        • AsyncStateResult
        • OptimizationResult
        • Optimizers
        • Gradients
        • Noisy Simulation
      • MPI Submodule
        • initialize()
        • rank()
        • num_ranks()
        • all_gather()
        • is_initialized()
        • finalize()
    • Quantum Operations
      • Unitary Operations on Qubits
        • x
        • y
        • z
        • h
        • r1
        • rx
        • ry
        • rz
        • s
        • t
        • swap
      • Adjoint and Controlled Operations
      • Measurements on Qubits
        • mz
        • mx
        • my
  • Other Versions
NVIDIA CUDA Quantum
  • CUDA Quantum
  • View page source
Next

CUDA Quantum¶

Welcome to the CUDA Quantum documentation page! You are browsing the documentation for 0.5.0 version of CUDA Quantum. You can find documentation for all released versions here.

CUDA Quantum is a programming model and toolchain for using quantum acceleration in heterogeneous computing architectures available in C++ and Python.

Contents

  • Getting Started
    • Local Installation
    • Development with VS Code
    • Connecting to a Remote Host
    • DGX Cloud
    • Additional CUDA Tools
    • Dependencies and Compatibility
    • Next Steps
  • Learn the Basics
    • CUDA Quantum Prerequisites
    • Compiling CUDA Quantum Programs
    • What is a CUDA Quantum Kernel?
    • Allocating Quantum Memory
    • Runtime Versus Compile-time Kernels
    • Generic Library Functions
    • Creating Kernels at Runtime
    • Variational Algorithms
    • Multi-processor Platforms
    • Debugging and Verbose Logging
  • Advanced Topics
    • Create a new NVQIR Simulator
    • Downstream CMake Integration
    • Working with CUDA Quantum IR
    • Create an MLIR Pass for CUDA Quantum
  • Examples
    • CUDA Quantum in C++
    • CUDA Quantum in Python
  • Tutorials
    • Executing Quantum Circuits
    • Cost Minimization
    • Noisy Simulation
    • Variational Quantum Eigensolver
    • Hybrid Quantum Neural Networks
    • Multi-GPU Workflows
  • Simulator Backends
    • State Vector Simulators
    • Tensor Network Simulators
    • Default Simulator
  • Hardware Backends
    • Quantinuum
    • IonQ
    • IQM
    • OQC
  • Specifications
    • Language Specification
    • Quake Specification
  • API Reference
    • C++ API
    • Python API
    • Quantum Operations
  • Other Versions
Next

© Copyright 2023, NVIDIA Corporation & Affiliates.

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