cuQuantum¶
Popis¶
NVIDIA cuQuantum je SDK so špecializovanými knižnicami a nástrojmi, ktoré zrýchľujú emuláciu kvantového výpočtu na úrovni obvodov aj zariadení o viacej rádov. Skladá sa z troch hlavných komponentov:
- cuDensityMat: vysokovýkonná knižnica pre solvéry rovníc kvantovej dynamiky
- cuStateVec: vysokovýkonná knižnica pre kvantové simulátory stavových vektorov
- cuTensorNet: vysokovýkonná knižnica pre výpočty s tenzorovými sieťami
Okrem C API poskytuje cuQuantum aj Python API prostredníctvom cuQuantum Python.
Oficiálna dokumentácia¶
Viac informácií a používateľskú dokumentáciu o cuQuantum nájdete tu.
Dostupné verzie¶
Aktuálne sú dostupné nasledujúce verzie cuQuantum:
- Spúšťacie závislosti:
- CUDA/12.9.0
- Voliteľné závislosti:
- cuTENSOR/2.3.1.0-CUDA-12.9.0
- OpenMPI/4.1.6-GCC-13.2.0
- Python/3.11.5-GCCcore-13.2.0
Vybranú verziu (spolu s jej spúšťacími závislosťami) môžete načítať ako jeden modul pomocou nasledujúceho príkazu:
module load cuQuantum/25.09.0.7-CUDA-12.9.0
Voliteľné závislosti môžete načítať podobným spôsobom.
Používanie cuQuantum¶
Odporúčame spúšťať aplikácie cuQuantum na GPU. Simulácie algoritmov cuQuantum môžu na GPU dosiahnuť výrazné zrýchlenie v porovnaní s CPU.
Príklady¶
Príklady nájdete v GitHub repozitáriu. Klonujte repozitár pomocou:
git clone https://github.com/NVIDIA/cuQuantum
Na použitie Python väzieb načítajte požadované moduly a vašu preferovanú verziu Python. V tomto príklade používame Python 3.11.5 a pracujeme v adresári $HOME.
module load cuQuantum/25.09.0.7-CUDA-12.9.0
module load cuTENSOR/2.3.1.0-CUDA-12.9.0
module load OpenMPI/4.1.6-GCC-13.2.0
module load Python/3.11.5-GCCcore-13.2.0
python3 -m venv cuQuantum-env
source cuQuantum-env/bin/activate
python3 -m pip install -U pip setuptools wheel
cd /storage-apps/easybuild-soft/software/cuQuantum/25.09.0.7-CUDA-12.9.0/python
pip install .
- PyTorch v1.10+ (voliteľné, pozrite návod na inštaláciu)
- Qiskit v1.4.2+ (voliteľné, pozrite návod na inštaláciu)
- Cirq v0.6.0+ (voliteľné, pozrite návod na inštaláciu)
- mpi4py v3.1.0+ (voliteľné, pozrite návod na inštaláciu)
Prejdite do jedného z adresárov s ukážkami:
cd cuQuantum/samples/cudensitymat
#!/bin/bash
#SBATCH --account=<project> # project number
#SBATCH --partition=gpu
#SBATCH --job-name=test
#SBATCH --nodes=1
#SBATCH --output=out.txt
#SBATCH --error=err.txt
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=16
#SBATCH --time=0:01:00
#SBATCH --gres=gpu:1
module load cuQuantum/25.09.0.7-CUDA-12.9.0
module load cuTENSOR/2.3.1.0-CUDA-12.9.0
module load OpenMPI/4.1.6-GCC-13.2.0
module load Python/3.11.5-GCCcore-13.2.0
source $HOME/cuQuantum-env/bin/activate
python3 operator_advanced_example.py
sbatch submit.sh
Príklady v jazyku C++ sa nachádzajú v priečinku samples. Na zostavenie ukážok nastavte nasledujúce prostredie:
module load cuQuantum/25.09.0.7-CUDA-12.9.0
module load cuTENSOR/2.3.1.0-CUDA-12.9.0
module load OpenMPI/4.1.6-GCC-13.2.0
export CUQUANTUM_ROOT=/storage-apps/easybuild-soft/software/cuQuantum/25.09.0.7-CUDA-12.9.0/
export CUTENSOR_ROOT=/storage-apps/easybuild-soft/software/cuTENSOR/2.3.1.0-CUDA-12.9.0/
export MPI_ROOT=/storage-apps/easybuild-soft/software/OpenMPI/4.1.6-GCC-13.2.0/
cd cuQuantum/samples/cudensitymat
make
#!/bin/bash
#SBATCH --account=<project> # project number
#SBATCH --partition=gpu
#SBATCH --job-name=test
#SBATCH --nodes=1
#SBATCH --output=out.txt
#SBATCH --error=err.txt
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=16
#SBATCH --time=0:01:00
#SBATCH --gres=gpu:2
module load cuQuantum/25.09.0.7-CUDA-12.9.0
module load cuTENSOR/2.3.1.0-CUDA-12.9.0
module load OpenMPI/4.1.6-GCC-13.2.0
mpiexec -np 2 --map-by ppr:1:node ./operator_action_mpi_example
sbatch submit.sh