GPU úlohy¶
GPU zdroje sú k dispozícii na vybraných výpočtových uzloch. Na spúšťanie GPU aplikácií musí byť úloha odoslaná do fronty s podporou GPU.
GPU uzly Devana sú vybavené NVIDIA A100 GPU.
Dostupné fronty:
- testing – jedno NVIDIA A100 GPU, určené na krátke testovacie úlohy
- gpu – až štyri NVIDIA A100 GPU, určené na produkčné úlohy
GPU uzly Perun sú vybavené NVIDIA Grace Hopper GH200 GPU.
Dostupné fronty:
- gpu_short / gpu_medium / gpu_long – GPU uzly so 4 × GH200 na uzol, určené na pracovné záťaže využívajúce GPU akceleráciu
Špecifické parametre GPU a hybridných úloh¶
| Možnosť | Popis |
|---|---|
--partition=<gpu partition> |
Odoslanie úlohy do GPU fronty (Devana: gpu; Perun: gpu_short/gpu_medium/gpu_long). |
-G <count> |
Pridelenie zadaného počtu GPU úlohe. |
--mem-per-gpu=<size>GB |
Nastavenie požadovanej pamäte na jedno GPU. |
Ďalšie možnosti je možné zobraziť pomocou príkazu man sbatch.
Príklad GPU úlohy¶
Nasledujúci príklad predstavuje minimalistický batch skript GPU úlohy, ktorý spúšťa CUDA-kompilovanú aplikáciu na 2 GPU.
Skript je určený pre Devanu. Na Perune je potrebné namiesto gpu
použiť jednu z partition gpu_short, gpu_medium alebo gpu_long.
cat gpu_run.sh
#!/bin/bash
#SBATCH -p gpu
#SBATCH -G 2
#SBATCH -o output.txt
#SBATCH -e output.txt
module load cuda/12.0.1
./jacobi -nx 45000 -ny 45000 -niter 10000
Ak nie je zadaný projektový účet, úloha sa spustí pod predvoleným
účtom používateľa. V tomto príklade sú stdout aj
stderr presmerované do súboru output.txt.
Monitorovanie využitia GPU¶
Na zobrazenie informácií o využití GPU aplikáciou je možné použiť nástroj
nvidia-smi. Na tento účel je potrebné pripojiť sa na uzol, na ktorom
aplikácia aktuálne beží.
V tomto príklade sa najprv odošle vyššie uvedený skript a následne sa
pomocou squeue overí, že úloha beží na uzle n142:
sbatch gpu_run.sh
sbatch: slurm_job_submit: Set partition to: gpu
sbatch: slurm_job_submit: Job's time limit was set to partition limit of 2880 minutes.
Submitted batch job <b>41029</b>
squeue -u user
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
<b>41029</b> gpu gpu_run.sh user R 0:04 1 <b>n142</b>
Následne je možné pripojiť sa na uzol a spustiť nvidia-smi.
Príkaz nvidia-smi a využitie GPU
ssh n142
Last login: Tue Oct 3 11:41:43 2023 from login01.devana.local
nvidia-smi
Wed Oct 4 09:59:53 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05 Driver Version: 525.85.05 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100-SXM... On | 00000000:17:00.0 Off | 0 |
| N/A 42C P0 249W / 400W | 8179MiB / 40960MiB | 100% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-SXM... On | 00000000:31:00.0 Off | 0 |
| N/A 44C P0 237W / 400W | 8179MiB / 40960MiB | 100% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 40679 C ./jacobi_test 8146MiB |
| 1 N/A N/A 40679 C ./jacobi_test 8146MiB |
+-----------------------------------------------------------------------------+
Alternatívne je možné použiť utilitu nvtop, ktorá je k dispozícii
ako modul.
Príkaz nvtop a využitie GPU
ssh n142
Last login: Tue Oct 3 11:41:43 2023 from login01.devana.local
module load nvtop
nvtop

Obmedzený SSH prístup
Priamy SSH prístup je povolený iba k uzlom, na ktorých aktuálne beží vlastná úloha. Po skončení úlohy sa ukončí aj SSH spojenie s príslušným uzlom.