Preskočiť na obsah

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_longGPU 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

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.

Created by: Lukas Demovic, Marek Štekláč, Marek Štekláč