NVIDIA cuQuantum
24.11.0

Contents

  • Overview
    • Introduction to quantum computing
      • Qubit
      • Multiple Qubits
      • Quantum Gates
      • Measurement
      • Quantum circuit
    • Quantum circuit simulation
    • References
    • Citing cuQuantum
  • Release Notes
    • cuQuantum SDK v24.11
    • cuQuantum SDK v24.08
    • cuQuantum SDK v24.03
    • cuQuantum SDK v23.10
    • cuQuantum SDK v23.06.1
    • cuQuantum SDK v23.06
    • cuQuantum SDK v23.03
    • cuQuantum SDK v22.11
    • cuQuantum SDK v22.07.1
    • cuQuantum SDK v22.07
    • cuQuantum SDK v22.05
    • cuQuantum SDK v22.03
    • cuQuantum SDK v0.1.1
    • cuQuantum SDK v0.1.0
  • Getting Started
    • Installing cuQuantum
      • From conda-forge
        • cuQuantum
        • cuQuantum Python
        • Specifying CUDA Version
        • Individual Components
        • MPI Installation Notes
        • Best Practices with conda
        • Setting CUQUANTUM_ROOT
      • From PyPI
        • cuQuantum
        • cuQuantum Python
      • From NVIDIA DevZone
        • Using Archive
        • Using System Package Managers
    • Installing cuQuantum with Frameworks
      • CUDA Quantum
      • Qiskit
        • conda-forge
        • PyPI
      • Cirq
        • conda-forge
        • Source
      • PennyLane
        • conda-forge
        • PyPI
    • Running the cuQuantum Appliance
      • At the Command-line
        • With an Interactive Session
        • With a Noninteractive Session
        • With Specific GPUs
      • Using Remote Hosts
        • Clarifying our Assumptions
        • With DOCKER_HOST
        • With Docker Contexts
      • Interacting with the Remote Container
        • Visual Studio Code
    • Running the cuQuantum Benchmarks
      • Usage
      • Installation
        • Bare-metal
        • Appliance
    • Dependencies
      • cuStateVec
      • cuTensorNet
      • cuDensityMat
      • cuQuantum Python
      • cuQuantum Appliance
  • cuDensityMat
    • Release Notes
      • cuDensityMat v0.0.5
    • Overview
      • Tensor Spaces and Quantum States
      • Quantum Many-Body Operators (Super-Operators)
      • Workspace Descriptor
      • Coupled Quantum Dynamics Master Equations (System of ODE)
      • Properties of Quantum States
      • Multi-GPU Multi-Node Execution
      • Citing cuQuantum
    • Examples
      • Compiling Code
      • Code Example (Serial Execution on a Single GPU)
      • Code Example (Parallel Execution on Multiple GPUs)
      • Useful Tips
    • API Reference
      • cuDensityMat Data Types
        • cudensitymatHandle_t
        • cudensitymatStatus_t
        • cudensitymatComputeType_t
        • cudensitymatDistributedProvider_t
        • cudensitymatDistributedCommunicator_t
        • CUDENSITYMAT_ALLOCATOR_NAME_LEN
        • cudensitymatWorkspaceDescriptor_t
        • cudensitymatMemspace_t
        • cudensitymatWorkspaceKind_t
        • cudensitymatState_t
        • cudensitymatStatePurity_t
        • cudensitymatElementaryOperator_t
        • cudensitymatElementaryOperatorSparsity_t
        • cudensitymatOperatorTerm_t
        • cudensitymatOperator_t
        • cudensitymatOperatorAction_t
        • cudensitymatExpectation_t
        • cudensitymatScalarCallback_t
        • cudensitymatTensorCallback_t
        • cudensitymatWrappedScalarCallback_t
        • cudensitymatWrappedTensorCallback_t
      • cuDensityMat Functions
        • Library Context Management API
        • Distributed Parallelization API
        • Workspace Management API
        • Quantum State API
        • Quantum Operator API
        • Operator Expectation API
    • Acknowledgements
  • cuStateVec
    • Release Notes
      • cuStateVec v1.7.0
      • cuStateVec v1.6.0
      • cuStateVec v1.5.0
      • cuStateVec v1.4.1
      • cuStateVec v1.4.0
      • cuStateVec v1.3.0
      • cuStateVec v1.2.0
      • cuStateVec v1.1.0
      • cuStateVec v1.0.0
      • cuStateVec v0.1.1
      • cuStateVec v0.1.0
      • cuStateVec v0.0.1
    • Overview
      • API synchronization behavior
      • Using CUDA Stream
      • Description of state vectors
      • Bit ordering
      • Supported data types
      • Workspace
      • Gate fusion
      • Multi-GPU Computation
      • Batched state vectors simulation
      • References
      • Citing cuQuantum
    • Examples
      • Compilation
      • Code Example
      • Useful tips
    • Distributed index bit swap API
      • About this document
      • Distributed state vector simulation
        • State vector distribution
        • Qubit reordering and distributed index bit swap
      • Requirements
      • API design
        • API design
        • Scheduling index bit swaps by using batch index
        • Swap state vector elements
        • Inter-process communication by custatevecCommunicator
        • Performance consideration
      • Example
    • Host state vector migration
      • About this document
      • custatevecSubSVMigrator API
        • Memory model of custatevecSubSVMigrator API
        • Possible scenarios
    • API Reference
      • cuStateVec Data Types
        • Opaque Data Structures
        • Enumerators
      • cuStateVec Functions
        • Library Management
        • Initialization
        • Gate Application
        • Measurement
        • Expectation
        • Matrix property testing
        • Sampling
        • Accessor
        • Single-process qubit reordering
        • Multi-process qubit reordering
        • Sub state vector migration
  • cuTensorNet
    • Release Notes
      • cuTensorNet v2.6.0
      • cuTensorNet v2.5.0
      • cuTensorNet v2.4.0
      • cuTensorNet v2.3.0
      • cuTensorNet v2.2.1
      • cuTensorNet v2.2.0
      • cuTensorNet v2.1.0
      • cuTensorNet v2.0.0
      • cuTensorNet v1.1.1
      • cuTensorNet v1.1.0
      • cuTensorNet v1.0.1
      • cuTensorNet v1.0.0
      • cuTensorNet v0.1.0
      • cuTensorNet v0.0.1
    • Overview
      • Introduction to tensor networks
        • Tensor and tensor network
        • Description of tensor networks
        • High-level tensor network specification and processing
        • Approximate tensor network algorithms
      • Contraction Optimizer
        • Graph partitioning
        • Slicing
        • Reconfiguration
        • Deferred rank simplification
      • Hyper-optimizer
      • Intermediate tensor(s) reuse
      • Approximation setting
        • SVD Options
        • Gate-split algorithm
      • Supported data types
      • References
      • Citing cuQuantum
    • Examples
      • Compiling Code
      • Code Example (Serial)
        • Headers and data types
        • Define tensor network and tensor sizes
        • Allocate memory and initialize data
        • cuTensorNet handle and network descriptor
        • Optimal contraction order and slicing
        • Create workspace descriptor and allocate workspace memory
        • Contraction plan and auto-tune
        • Tensor network contraction execution
      • Code Example (Automatic Slice-Based Distributed Parallelization)
      • Code Example (Manual Slice-Based Distributed Parallelization)
      • Code Example (tensorQR)
        • Define QR decomposition
        • Allocate memory and initialize data
        • Initialize cuTensorNet and create tensor descriptors
        • Query and allocate required workspace
        • Execution
        • Free resources
      • Code Example (tensorSVD)
        • Define SVD decomposition
        • Setup SVD truncation parameters
        • Execution
      • Code Example (GateSplit)
        • Define tensor operands
        • Execution
      • Code Example (MPS Factorization)
        • Define MPSHelper class
        • Setup MPS simulation setting
        • Allocate memory and initialize data
        • Setup gate split options
        • Query and allocate required workspace
        • Execution
        • Free resources
      • Code Example (Intermediate Tensor Reuse)
        • Caching/Reusing Constant Intermediate Tensors
        • Headers and data types
        • Define tensor network and tensor sizes
        • Allocate memory, initialize data, initialize cuTensorNet handle
        • Mark constant tensors and create the network descriptor
        • Contraction order and slicing
        • Create workspace descriptor and allocate workspace memory
        • Contraction plan and auto-tune
        • Tensor network contraction execution
        • Free resources
      • Code Example (Gradients computation)
        • Computing gradients via backward propagation
        • Headers and data types
        • Define tensor network and tensor sizes
        • Allocate memory, initialize data, initialize cuTensorNet handle
        • Create the network descriptor and set gradient tensor IDs
        • Contraction order
        • Create workspace descriptor and allocate workspace memory
        • Contraction plan and auto-tune
        • Tensor network contraction execution and gradient computation
        • Free resources
      • Code Example (Amplitudes Slice)
        • Computing Tensor Network State Amplitudes
        • Headers and error handling
        • Define the tensor network state and the desired slice of state amplitudes
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate the amplitudes slice tensor on GPU
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Create the state amplitudes accessor
        • Configure the state amplitudes accessor
        • Prepare the computation of the amplitudes slice tensor
        • Set up the workspace
        • Compute the specified slice of state amplitudes
        • Free resources
      • Code Example (Expectation Value)
        • Computing Tensor Network State Expectation Value
        • Headers and error handling
        • Define the tensor network state
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Construct a tensor network operator
        • Create the expectation value object
        • Configure the expectation value calculation
        • Prepare the expectation value calculation
        • Set up the workspace
        • Compute the requested expectation value
        • Free resources
      • Code Example (Marginal Distribution)
        • Computing Tensor Network State Marginal Distribution Tensor
        • Headers and error handling
        • Define the tensor network state and the desired marginal distribution tensor
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate the marginal distribution tensor on GPU
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Create the marginal distribution object
        • Configure the marginal distribution object
        • Prepare the computation of the marginal distribution tensor
        • Set up the workspace
        • Compute the marginal distribution tensor
        • Free resources
      • Code Example (Tensor Network Sampling)
        • Sampling the Tensor Network State
        • Headers and error handling
        • Define the tensor network state and the desired number of output samples to generate
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Create the tensor network state sampler
        • Configure the tensor network state sampler
        • Prepare the tensor network state sampler
        • Allocate the workspace buffer on GPU and setup the workspace
        • Perform sampling of the final quantum circuit state
        • Free resources
      • Code Example (MPS Amplitudes Slice)
        • Computing Matrix Product State (MPS) Amplitudes
        • Headers and error handling
        • Define the tensor network state and the desired slice of state amplitudes
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate MPS tensors
        • Allocate the amplitudes slice tensor on GPU
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Create the state amplitudes accessor
        • Configure the state amplitudes accessor
        • Prepare the computation of the amplitudes slice tensor
        • Set up the workspace
        • Compute the specified slice of state amplitudes
        • Free resources
      • Code Example (MPS Expectation Value)
        • Computing Matrix Product State Expectation Value
        • Headers and error handling
        • Define the tensor network state
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate MPS tensors
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Construct a tensor network operator
        • Create the expectation value object
        • Configure the expectation value calculation
        • Prepare the expectation value calculation
        • Set up the workspace
        • Compute the requested expectation value
        • Free resources
      • Code Example (MPS Marginal Distribution)
        • Computing Matrix Product State Marginal Distribution Tensor
        • Headers and error handling
        • Define the tensor network state and the desired marginal distribution tensor
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate MPS tensors
        • Allocate the marginal distribution tensor on GPU
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Create the marginal distribution object
        • Configure the marginal distribution object
        • Prepare the computation of the marginal distribution tensor
        • Set up the workspace
        • Compute the marginal distribution tensor
        • Free resources
      • Code Example (MPS Sampling)
        • Sampling the Matrix Product State
        • Headers and error handling
        • Define the tensor network state and the desired number of output samples to generate
        • Initialize the cuTensorNet library handle
        • Define quantum gates on GPU
        • Allocate MPS tensors
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Create the tensor network state sampler
        • Configure the tensor network state sampler
        • Prepare the tensor network state sampler
        • Set up the workspace
        • Perform sampling of the final quantum circuit state
        • Free resources
      • Code Example (MPS Sampling QFT)
        • Sampling the Matrix Product State (QFT Circuit)
        • Headers and error handling
        • Define the tensor network state and the desired number of output samples to generate
        • Initialize the cuTensorNet library handle
        • Define quantum gates in GPU memory
        • Allocate MPS tensors in GPU memory
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Apply quantum gates
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Create the tensor network state sampler
        • Configure the tensor network state sampler
        • Prepare the tensor network state sampler
        • Set up the workspace
        • Perform sampling of the final quantum circuit state
        • Free resources
      • Code Example (MPS Sampling MPO)
        • Sampling the Matrix Product State (circuit with Matrix Product Operators)
        • Headers and error handling
        • Define the tensor network state and the desired number of output samples to generate
        • Initialize the cuTensorNet library handle
        • Define and allocate MPO tensors
        • Define and allocate MPS tensors
        • Allocate the scratch buffer on GPU
        • Create a pure tensor network state
        • Construct necessary MPO tensor network operators
        • Apply MPO tensor network operators to the quantum circuit state
        • Request MPS factorization for the final quantum circuit state
        • Configure MPS factorization procedure
        • Prepare the computation of MPS factorization
        • Compute MPS factorization
        • Create the tensor network state sampler
        • Configure the tensor network state sampler
        • Prepare the tensor network state sampler
        • Set up the workspace
        • Perform sampling of the final quantum circuit state
        • Free resources
      • Useful Tips
    • API Reference
      • cuTensorNet Data Types
        • cutensornetHandle_t
        • cutensornetLoggerCallback_t
        • cutensornetLoggerCallbackData_t
        • cutensornetStatus_t
        • cutensornetComputeType_t
        • cutensornetContractionOptimizerConfigAttributes_t
        • cutensornetContractionOptimizerInfoAttributes_t
        • cutensornetContractionAutotunePreferenceAttributes_t
        • cutensornetGraphAlgo_t
        • cutensornetMemoryModel_t
        • cutensornetOptimizerCost_t
        • cutensornetSmartOption_t
        • cutensornetNetworkDescriptor_t
        • cutensornetNetworkAttributes_t
        • cutensornetContractionPlan_t
        • cutensornetNodePair_t
        • cutensornetContractionPath_t
        • cutensornetContractionOptimizerConfig_t
        • cutensornetContractionOptimizerInfo_t
        • cutensornetContractionAutotunePreference_t
        • cutensornetSliceGroup_t
        • cutensornetDeviceMemHandler_t
        • CUTENSORNET_ALLOCATOR_NAME_LEN
        • cutensornetWorkspaceDescriptor_t
        • cutensornetWorksizePref_t
        • cutensornetMemspace_t
        • cutensornetWorkspaceKind_t
        • cutensornetTensorQualifiers_t
        • cutensornetSliceInfoPair_t
        • cutensornetSlicingConfig_t
        • cutensornetTensorDescriptor_t
        • cutensornetTensorSVDConfig_t
        • cutensornetTensorSVDConfigAttributes_t
        • cutensornetTensorSVDPartition_t
        • cutensornetTensorSVDNormalization_t
        • cutensornetTensorSVDAlgo_t
        • cutensornetGesvdjParams_t
        • cutensornetGesvdrParams_t
        • cutensornetGesvdjStatus_t
        • cutensornetGesvdpStatus_t
        • cutensornetTensorSVDInfo_t
        • cutensornetTensorSVDInfoAttributes_t
        • cutensornetGateSplitAlgo_t
        • cutensornetState_t
        • cutensornetStatePurity_t
        • cutensornetBoundaryCondition_t
        • cutensornetStateAttributes_t
        • cutensornetStateMPOApplication_t
        • cutensornetNetworkOperator_t
        • cutensornetStateAccessor_t
        • cutensornetAccessorAttributes_t
        • cutensornetStateExpectation_t
        • cutensornetExpectationAttributes_t
        • cutensornetStateMarginal_t
        • cutensornetMarginalAttributes_t
        • cutensornetStateSampler_t
        • cutensornetSamplerAttributes_t
        • cudaDataType_t
      • cuTensorNet Functions
        • Handle Management API
        • Network Descriptor API
        • Tensor Descriptor API
        • Contraction Optimizer API
        • Contraction Plan API
        • Workspace Management API
        • Network Contraction API
        • Gradient Computation API
        • Slice Group API
        • Approximate Tensor Network Execution API
        • Tensor SVD Config API
        • Tensor SVD Info API
        • Distributed Parallelization API
        • High-Level Tensor Network API
        • Memory Management API
        • Error Management API
        • Logger API
        • Versioning API
    • Acknowledgements
  • cuQuantum Python
    • Release Notes
      • cuQuantum Python v24.11.0
      • cuQuantum Python v24.08.0
      • cuQuantum Python v24.03.0
      • cuQuantum Python v23.10.0
      • cuQuantum Python v23.06.0
      • cuQuantum Python v23.03.0
      • cuQuantum Python v22.11.0.1
      • cuQuantum Python v22.11.0
      • cuQuantum Python v22.07.1
      • cuQuantum Python v22.07.0
      • cuQuantum Python v22.05.0
      • cuQuantum Python v22.03.0
      • cuQuantum Python v0.1.0.1
      • cuQuantum Python v0.1.0.0
    • Overview
      • Introduction
      • Compatibility policy
      • Citing cuQuantum
    • Low-level Python bindings
      • Naming & calling convention
      • Memory management
        • Pointer and data lifetime
        • User-provided memory pools
      • Usage example
    • Tensor Network Contraction
      • Introduction
      • Usage example
      • Call blocking behavior
      • Stream semantics
      • Resource management in stateful objects
      • External memory management
    • Tensor and tensor network decomposition
      • Introduction
      • Usage example
    • Circuit to tensor network converter
      • Introduction
      • Usage example
    • Tensor network simulator
      • Introduction
      • Caching feature
      • MPI support
    • High-level Density Matrix APIs
      • WorkStream
      • Tensor Spaces and Quantum States
      • Quantum Many-Body Operators (Super-Operators)
        • Elementary operators
        • Composing symbolic expressions with elementary operators
      • Usage examples
    • Running Examples
      • Documentation
      • Building and installing cuQuantum Python from source
        • Requirements
      • Running
        • Requirements
        • Samples
      • Testing
      • Citing cuQuantum
    • Code of Conduct
      • Overview
      • Our Pledge
      • Our Standards
      • Our Responsibilities
      • Scope
      • Enforcement
      • Attribution
    • Contributing
    • API Reference
      • cuQuantum (cuquantum)
        • Python objects & constants
        • Python functions
        • Command Line Support
      • cuStateVec (cuquantum.custatevec)
        • Python objects & constants
        • Python functions
      • cuTensorNet (cuquantum.cutensornet)
        • Python objects & constants
        • Python functions
      • Bindings for cuQuantum C Libraries (cuquantum.bindings)
        • cuDensityMat (cuquantum.bindings.cudensitymat)
      • cuTensorNet experimental feature (cuquantum.cutensornet.experimental)
        • Python objects
        • Python functions
      • cuTensorNet tensor factorization (cuquantum.cutensornet.tensor)
        • Python objects
        • Python functions
      • cuDensityMat Pythonic API (cuquantum.densitymat)
        • Python objects
        • Python functions
  • cuQuantum Appliance
    • Overview
      • Prerequisites
      • Running the NVIDIA cuQuantum Appliance with Cirq or Qiskit
      • Software in the container
        • Default user environment
        • MPI
      • Important change notices
        • version == 24.03
      • Security scanning notices
        • Version 24.03 security scanning results summary
        • Appliance version end of life summary
      • Documentation
      • Additional Resources
      • License Agreement
      • Citing cuQuantum
    • Release Notes
      • cuQuantum Appliance 24.11
        • New features
        • Resolved issue
        • Driver Requirements
      • cuQuantum Appliance 24.03
        • Resolved issue
        • Driver Requirements
      • cuQuantum Appliance 23.10
        • New Features
        • Driver Requirements
      • cuQuantum Appliance 23.06
        • Resolved issues
        • Driver requirements
      • cuQuantum Appliance 23.03
        • Resolved issues
        • New sample
        • Driver requirements
      • cuQuantum Appliance 22.11
        • New features
        • Driver requirements
      • cuQuantum Appliance 22.07-Cirq
        • New features
        • Driver requirements
      • cuQuantum Appliance 22.03-Cirq
        • Resolved issues
      • cuQuantum Appliance 22.02-Cirq
        • Contents of the cuQuantum Appliance 22.02-Cirq container
        • Driver requirements
        • GPU Requirements
        • Known Limitations
    • Cirq
      • Notice
      • API Reference
        • qsimcirq.QSimOptions
    • Qiskit
      • Getting started
      • Selecting simulator
      • cusvaer-specific options
      • Modifications for Qiskit Aer options
      • Interoperability with mpi4py
      • Limitations
    • cusvaer
      • Features
      • Distributed state vector simulation
      • Using CPU and GPU memory to allocate state vector
      • Using cusvaer
      • MPI libraries
      • cusvaer options
        • Device selection
        • Multi-process simulation
        • Specifying device network structure
        • CPU memory utilization
        • Other options
      • Custom instruction
        • set_state_simple(state)
        • save_state_simple()
      • Example of cusvaer option configurations
      • Exception
      • Interoperability with mpi4py
    • Acknowledgements
  • Software License Agreement
    • NVIDIA cuQuantum SDK
    • NVIDIA cuQuantum Python
NVIDIA cuQuantum
  • Search


Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2021-2024, NVIDIA Corporation & affiliates.

NVIDIA cuQuantum v: 24.11.0