Preskočiť na obsah

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
Potom vytvorte python virtuálne prostredie so všetkými požiadavkami:
python3 -m venv cuQuantum-env
Aktivujte prostredie a aktualizujte balíkové nástroje:
source cuQuantum-env/bin/activate
python3 -m pip install -U pip setuptools wheel
Nainštalujte cuQuantum python z modulu:
cd /storage-apps/easybuild-soft/software/cuQuantum/25.09.0.7-CUDA-12.9.0/python
pip install .
Existujú ďalšie voliteľné balíky podľa vášho prípadu použitia. Postupujte podľa ich návodov na inštaláciu:

Prejdite do jedného z adresárov s ukážkami:

cd cuQuantum/samples/cudensitymat
Vytvorte odosielací skript submit.sh na spustenie ukážkového python skriptu:
#!/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
Odste skript do plánovača slurm:
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/
Prejdite do adresára s ukázkovým kódom, ktorý chcete zostaviť, a spustite make, napr.:
cd cuQuantum/samples/cudensitymat
make
Na spustenie príkladu vytvorte skript a uložte ho ako submit.sh:
#!/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
Odste skript do plánovača slurm:
sbatch submit.sh

Created by: Marek Štekláč