NVIDIA CUDA-Q
0.7.1

Contents

  • Quick Start
    • Install CUDA-Q
    • Validate your Installation
  • 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
    • Computing Expectation Values
    • Multi-Control Synthesis
    • Bernstein-Vazirani
    • Variational Quantum Eigensolver
    • Quantum Approximate Optimization Algorithm
    • Simulations with cuQuantum
    • Noisy Simulation
    • Using Quantum Hardware Providers
  • Applications
    • Cost Minimization
    • Deutschs’ Algorithm
      • XOR \(\oplus\)
      • Quantum oracles
      • Phase oracle
      • Quantum parallelism
      • Deutschs’ Algorithm:
    • Executing Quantum Circuits
      • Sample
        • Sample Async
      • Observe
        • Observe Async
    • Hybrid Quantum Neural Networks
    • Multi-GPU Workflows
      • Available Targets
      • QPP-based CPU Backend
      • Acceleration via NVIDIA GPUs
      • Multiple NVIDIA GPUs
      • Multiple QPU’s
      • Asynchronous data collection via batching Hamiltonian terms
    • Multiple Qubits
      • Some notation conventions
      • Controlled-NOT gate
    • Noisy Simulation
    • Quantum Bits
      • Qubit
      • Pauli X gate
      • Superpositions & Measurements
      • Qubit visualizations
      • Gate linearity
      • Gate unitarity
      • Single qubit gates
    • Variational Quantum Eigensolver
      • Using CUDA-Q Optimizers
      • Integration with Third-Party Optimizers
  • Backends
    • Simulation
      • State Vector Simulators
        • Single-GPU
        • Multi-node multi-GPU
        • OpenMP CPU-only
      • Tensor Network Simulators
        • Multi-node multi-GPU
        • Matrix product state
      • Default Simulator
    • Quantum Hardware
      • 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
    • NVIDIA Quantum Cloud
      • Quick Start
      • Simulator Backend Selection
      • Multiple GPUs
      • Multiple QPUs Asynchronous Execution
      • FAQ
    • Multi-Processor Platforms
      • NVIDIA MQPU Platform
        • Asynchronous expectation value computations
        • Parallel distribution mode
      • Remote MQPU Platform
        • Supported Kernel Arguments
  • Installation
    • Local Installation
      • Introduction
        • Docker
        • 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
      • C++ Support
      • Python Support
      • Installation on the Host
        • CUDA Runtime Libraries
        • MPI
  • Integration
    • Combining CUDA with CUDA-Q
    • Downstream CMake Integration
  • 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()
      • 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
        • qvector
        • 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()
        • broadcast()
        • 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-Q
  • Extending CUDA-Q
  • View page source
Previous Next

Extending CUDA-Q¶

  • Create a new NVQIR Simulator
  • Working with CUDA-Q IR
  • Create an MLIR Pass for CUDA-Q
Previous Next

© Copyright 2024, NVIDIA Corporation & Affiliates.

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