CUDA Quantum
CUDA Quantum is a single-source, modern C++ programming model and compiler platform for the quantum acceleration of existing heterogeneous computing architectures.
News
27.7.2023 Installed cuda-quantum/0.4.0
.
Available
Currently supported Qiskit versions:
Version | Module | Puhti | Mahti | Notes |
---|---|---|---|---|
0.4.0 | cuda-quantum/0.4.0 |
X | X | default version |
All modules are based on containers using Apptainer (previously known as Singularity).
Wrapper scripts have been provided so that common commands such as python
,
python3
, pip
and pip3
should work as normal. For more information, see
CSC's general instructions on how to run Apptainer containers.
License
CUDA Quantum is licensed under Apache License 2.0.
Usage
To use the default version of CUDA Quantum on Puhti or Mahti, initialize it with:
module load cuda-quantum
If you wish to have a specific version (see above for available versions), use:
module load cuda-quantum/0.4.0
After that you can use commands python
and nvq++
to run codes that include a cudaq package.
To compile and run a cpp program using the nvq++
compiler:
nvq++ static_kernel.cpp -o ghz.x
execute ./ghz.x # Or apptainer_wrapper exec ./ghz.x
More examples of CUDA Quantum can be found from the CUDA Quantum by Example and CUDA Quantum Github.
Example batch script
Example batch script for reserving one GPU and two CPU cores in a single node:
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=gpu
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --mem=8G
#SBATCH --time=1:00:00
#SBATCH --gres=gpu:v100:1
module load cuda-quantum
srun python myprog.py <options>
srun nvq++ ghz.cpp <options>
srun execute ./a.out
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=gpusmall
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --time=1:00:00
#SBATCH --gres=gpu:a100:1
module load cuda-quantum
srun python myprog.py <options>
srun nvq++ ghz.cpp <options>
srun execute ./a.out
Submit the script with sbatch <script_name>.sh