NVIDIA CUDA Quantum
0.4.1

Contents

  • Getting Started
    • Docker Image
      • Install the Docker Image
      • Use CUDA Quantum in a Terminal
      • Use CUDA Quantum in VS Code
    • Python wheels
    • Building from Source
    • 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
      • 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
    • Single Qubit Rotation
    • Noisy Simulation
    • Variational Quantum Eigensolver
    • Hybrid Quantum Neural Networks
    • Multi-GPU Workflows
      • Available Targets
      • Default CPU Backend
      • Acceleration via NVIDIA GPUs
      • Multiple NVIDIA GPUs
      • Multiple QPU’s
  • Simulator Backends
    • State Vector Simulators
      • cuQuantum single-GPU
      • cuQuantum multi-node multi-GPU
      • OpenMP CPU-only
    • Tensor Network Simulators
      • cuQuantum multi-node multi-GPU
  • Hardware Backends
    • Quantinuum
      • Setting Credentials
      • Submission from C++
      • Submission from Python
    • IonQ
      • 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()
        • 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
        • QuakeValue
        • qubit
        • qreg
        • ComplexMatrix
        • SpinOperator
        • spin.i()
        • spin.x()
        • spin.y()
        • spin.z()
        • SampleResult
        • AsyncSampleResult
        • ObserveResult
        • AsyncObserveResult
        • 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.4.1 version of CUDA Quantum. You can find documentation for all released versions here.

CUDA Quantum is a single-source, modern C++ programming model and compiler platform for the quantum acceleration of existing heterogeneous computing architectures.

Contents

  • Getting Started
    • Docker Image
    • Python wheels
    • Building from Source
    • 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
    • Single Qubit Rotation
    • Noisy Simulation
    • Variational Quantum Eigensolver
    • Hybrid Quantum Neural Networks
    • Multi-GPU Workflows
  • Simulator Backends
    • State Vector Simulators
    • Tensor Network Simulators
  • Hardware Backends
    • Quantinuum
    • IonQ
  • 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.