CuQuantum is a quantum programming emulation package that runs on nVidia GPUs. It is currently in public beta release.
Using cuQuantum
To use cuQuantum, you need to join the project dk92 firstly and then load the appropriate modules - join the project dk92 through mancini.
You can check the installed versions of cuQuantum at the Gadi login node as below
$ module use /g/data/dk92/apps/Modules/modulefiles/ |
Verifying cuQuantum
Fetch C/C++ sample codes for the cuQuantum SDK at the Gadi login node.
$ git clone https://github.com/NVIDIA/cuQuantum.git
Submit an interactive job to Gadi PBS gpuvolta queue as below. The job will run on Gadi GPU node equipped with Nvidia Tesla Volta V100-SXM2-32GB GPU devices. Please check the queue limit for more information on job submission.
$ qsub -I -q gpuvolta -lwd,walltime=10:00:00,ngpus=1,ncpus=12,mem=90GB,jobfs=100GB,storage=gdata/dk92+< YOUR_OWN_PROJECT_SPACE >
After the job running, load the cuQuantum modules to build both sample codes:
$ module use /g/data/dk92/apps/Modules/modulefiles/
$ module load cuquantum/0.1.0.30 cutensor/1.4.0Enter the directory where you stored the C/C++ sample codes for the cuQuantum SDK in Step 1. You will see two directories.
$ cd cuQuantum/samples
$ ls
custatevec cutensornet- Enter both sample directories to build and run the codes.
cutensornet sample.
$ cd cuQuantum/samples
$ cd cutensornet
$ make
$ ./tensornet_examplecustatevec samples.
$ cd cuQuantum/samples
$ cd custatevec
$ make
$ ./gate_application
$ ./permutation_matrix
$ ./diagonal_matrix
$ ./ exponential_pauli
$ ./ expectation
$ ./ expectation_pauli
$ ./ sampler
$ ./ measure_zbasis
$ ./ batch_measure
$ ./ accessor_get
$ ./ accessor_set
cuQuantum-python
The cuQuantum-python library is available under our RAPIDS environment.