Page Content
There is no English translation for this web page.
GPU-Jobs
Für Berechnungen mit GPUs steht eine ganze Reihe
von Knoten mit NVIDIA-Karten zur Verfügung. Um die GPUs benutzen zu
können, müssen Jobs eine oder mehrere GPUs reservieren. Dem Job
stehen diese GPUs dann exklusiv zur Verfügung.
Im
Jobscript muss die Anzahl und die Fähigkeiten der GPUs durch die
entsprechenden Resourcenanforderungen spezifiziert werden. Die Anzahl
wird mit der Resource gpus ausgewählt, für die Fähigkeiten gibt es
die Resourcen cuda_compute_capabilty (kurz: ccc), gpu_mem und
nvidia_rtx.
Die cuda_compute_capability ist ein
numerischer Wert in Form einer Versionnummer, z.B. 3.1 oder 7.5. Sie
wird von NVIDIA festgelegt und beschreibt die von der GPU
untertützten CUDA-Features. Das Batchsystem interpretiert die
Resource als Mindestanforderung, d.h. es wird eine GPU mit mindestens
diesen Fähigkeiten zur Verfügung gestellt.
gpu_mem
fordert eine GPU mit mindestens der angegebenen Menge an benutzbarem
RAM an. Das kann relevant sein, wenn es mehrere GPU-Typen mit dem
gleichen Chipsatz, aber verschieden viel RAM gibt, z.B. RTX6000 und
RTX2080Ti.
nvidia_rtx=true fordert eine GPU an, die die
NVIDIA Raytracing Extensions unterstützt. Das ist normalerweise nur
notwendig, wenn man die GPU tatsächlich zum Rendern von Grafik
benutzen möchte, ein heutzutage eher ungewöhnliches Einsatzszenario.
Im Jobscript muss dann (falls CUDA benutzt wird) ein
CUDA-Modul geladen werden. Eine Liste verfügbarer Modul-Versionen
erhält man mit
module avail cuda
Das folgende
Jobscript fordert 1 GPU mit mindestens CUDA Compute Capability 7.5 und
2GB RAM an, lädt ein CUDA-Modul und schreibt dann den Output des
deviceQuery-Tools in die Ausgabedatei
#!/bin/bash --login
#$ -cwd
#$ -N gpu_example
#$ -j y
#$ -o gpu_example.out
#$ -l h_rt=120000
#$ -l gpus=1
#$ -l gpu_mem=2G
#$ -l ccc=7.5
#$ -m e
#$ -M meine.mail@adresse
module load cuda/10.2
deviceQuery