Page tree

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/
$ module avail cuquantum
---------------------------------- /g/data/dk92/apps/Modules/modulefiles ----------------------------------

Verifying cuQuantum

  1.  Fetch C/C++ sample codes for the cuQuantum SDK at the Gadi login node.

  2. 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 >
  3. After the job running, load the cuQuantum modules to build both sample codes:

    $ module use /g/data/dk92/apps/Modules/modulefiles/
    $ module load cuquantum/ cutensor/1.4.0
  4. Enter 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
  5. Enter both sample directories to build and run the codes.
    1. cutensornet sample.

      $ cd cuQuantum/samples
      $ cd cutensornet
      $ make
      $ ./tensornet_example
    2. custatevec 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


The cuQuantum-python library is available under our RAPIDS environment.

  • No labels