Linux / amd64
The NVIDIA cuQuantum Appliance is a highly performant multi-GPU multi-node solution for quantum circuit simulation. It contains NVIDIA’s cuStateVec and cuTensorNet libraries which optimize state vector and tensor network simulation, respectively. The cuTensorNet library functionality is accessible through Python for Tensor Network operations. With the cuStateVec libraries, NVIDIA provides the following simulators:
IBM’s Qiskit Aer frontend via cusvaer, NVIDIA’s distributed state vector backend solver.
a multi-GPU-optimized Google Cirq frontend via qsim, Google’s state vector simulator.
Using NVIDIA’s cuQuantum Appliance NGC Container requires the host system to have the following installed:
Docker Engine
NVIDIA GPU Drivers
NVIDIA Container Toolkit
For supported versions, see the container release notes. No other installation, compilation, or dependency management is required.
The command to pull the container is:
docker pull nvcr.io/nvidia/cuquantum-appliance:22.11
To run the container interactively:
docker run --gpus all -it --rm nvcr.io/nvidia/cuquantum-appliance:22.11
The examples are located under /workspace/examples
. In the container:
root@31ca7e6be1ac:/workspace$ cd examples && ls -la
total 24
drwxr-xr-x 2 root root 4096 Feb 18 08:44 .
drwxr-xr-x 3 root root 4096 Feb 18 08:44 ..
-rw-r--r-- 1 root root 2048 Feb 18 08:16 ghz.py
-rw-r--r-- 1 root root 8356 Feb 18 08:16 hidden_shift.py
-rw-r--r-- 1 root root 8356 Feb 18 08:16 simon.py
To run any of the examples, simply use the following command from within the container:
root@59e0cef3bd67:/workspace/examples$ python {example-name}.py
Each of the examples has a command-line interface. To query the interface’s help, run this command from within the container:
root@59e0cef3bd67:/workspace/examples$ python {example-name}.py --help
For example:
root@59e0cef3bd67:/workspace/examples$ python ghz.py --help
usage: ghz.py [-h] [--nqubits NQUBITS] [--nsamples NSAMPLES] [--ngpus NGPUS]
GHZ circuit
optional arguments:
-h, --help show this help message and exit
--nqubits NQUBITS the number of qubits in the circuit
--nsamples NSAMPLES the number of samples to take
--ngpus NGPUS the number of GPUs to use
All together from the host's command-line:
docker run --gpus all --rm nvcr.io/nvidia/cuquantum-appliance:22.11 python /workspace/examples/ghz.py --nqubits 30 --nsamples 1000 --ngpus 2
More sample codes, including multi-node computations by Qiskit, can be found in the NVIDIA/cuQuantum repository.
For a general guide on pulling and running containers, see Pulling a Container Image and Running a Container in the NGC Container User Guide.
The NVIDIA cuQuantum Appliance documentation is hosted here.
A guide for using Qiskit can be found here.
A guide and tutorials for using Cirq can be found here.
A guide to getting started with qsimcirq can be found here.
The NVIDIA cuQuantum SDK Homepage
The NVIDIA cuQuantum Python Bindings and Examples
The image is governed by the following NVIDIA End User License Agreement. By downloading the NVIDIA cuQuantum Appliance, you accept the terms and conditions of this license. The cuQuantum Appliance End User License Agreement can be viewed here. Since the image includes components licensed under open-source licenses, the source code for these components can be found here.