GPU-Computeserver rosenblatt
Der GPU Computeserver rosenblatt steht seit Februar 2022 für Berechnungen, die von Grafikkarten profitieren, zur Verfügung.Er wurde gemeinsam von den Professuren Stochastik, Harmonische Analysis, Numerische Mathematik und Wissenschaftliches Rechnen (je eine GPU) sowie aus Fakultätsmitteln (Basismaschine) finanziert.
Zum Namen rosenblatt
Frank Rosenblatt war ein Pionier der neuronalen Netze:- https://news.cornell.edu/stories/2019/09/professors-perceptron-paved-way-ai-60-years-too-soon
- https://de.wikipedia.org/wiki/Frank_Rosenblatt
Hardware
- CPU: 2 Stück AMD EPYC 7313 16-Core Processor
- 256 GB RAM
- 250 GB SSD System- und Swap-Partition
- 3,5 TB SSD Datenpartition
- 4 Stück GPU NVIDIA A40 Ampere-Architektur CUDA® Recheneinheiten
- Ubuntu 22.04
CUDA-Installation und Verwendung
Unter/usr/local/cuda-12.2
befindet sich eine Installation der CUDA-Umgebung. Um diese zu nutzen, müssen
ein paar Umgebungsvariablen gesetzt werden. Dies geht am einfachsten mit dem vorbereiteten Script durch Aufruf von:
source /usr/local/cuda-12.2/cudaenv.sh
Anschließend erhält man bei der Abfrage der Version des nvcc-Compilers die korrekte Ausgabe als 12.2:
rosenblatt:~$ source /usr/local/cuda-12.2/cudaenv.sh rosenblatt:~$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NVIDIA Corporation Built on Tue_Jun_13_19:16:58_PDT_2023 Cuda compilation tools, release 12.2, V12.2.91 Build cuda_12.2.r12.2/compiler.32965470_0und kann mit dem Compilieren der eigenen Programme beginnen.
Zum Monitoring der Auslastung der GPUs gibt es das Tool nvidia-smi
. Ein simpler Aufruf liefert zum Beispiel:
rosenblatt:~$ nvidia-smi Fri Jul 7 10:12:51 2023 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | 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 A40 On | 00000000:01:00.0 Off | 0 | | 0% 34C P0 80W / 300W | 274MiB / 46068MiB | 100% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 1 NVIDIA A40 On | 00000000:61:00.0 Off | 0 | | 0% 23C P8 12W / 300W | 7MiB / 46068MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 2 NVIDIA A40 On | 00000000:A1:00.0 Off | 0 | | 0% 23C P8 12W / 300W | 7MiB / 46068MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 3 NVIDIA A40 On | 00000000:C1:00.0 Off | 0 | | 0% 23C P8 12W / 300W | 7MiB / 46068MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 146064 C ./a.out 262MiB | +---------------------------------------------------------------------------------------+Zum dauernden Überwachen besser geeignet ist eine sich wiederholende Ausgabe. Dies kann mittels
nvidia-smi -i 0 -lms 300 --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu,memory.usederreicht werden. Dabei bedeuten die Parameter
- -i 0 ... zeige mir GPU0 an, die anderen 3 GPUs analog mit -i 1, -i 2, -i 3
- -lms 300 ... Ausgabe aller 300 Millisekunden
rosenblatt:~$ nvidia-smi -i 0 -lms 300 --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu,memory.used power.draw [W], utilization.gpu [%], fan.speed [%], temperature.gpu, memory.used [MiB] 74.75 W, 0 %, 0 %, 36, 0 MiB 74.69 W, 0 %, 0 %, 36, 0 MiB 74.72 W, 0 %, 0 %, 36, 0 MiB 74.78 W, 0 %, 0 %, 36, 0 MiB 74.71 W, 0 %, 0 %, 36, 0 MiB 74.71 W, 0 %, 0 %, 36, 0 MiB 74.76 W, 0 %, 0 %, 36, 0 MiB 74.73 W, 0 %, 0 %, 36, 0 MiB 74.73 W, 0 %, 0 %, 36, 0 MiB 74.78 W, 0 %, 0 %, 36, 0 MiB 74.78 W, 0 %, 0 %, 36, 0 MiB 74.77 W, 0 %, 0 %, 36, 2 MiB 90.46 W, 5 %, 0 %, 40, 455 MiB 137.43 W, 100 %, 0 %, 43, 455 MiB 184.72 W, 100 %, 0 %, 44, 455 MiB 232.18 W, 100 %, 0 %, 45, 455 MiB 249.01 W, 100 %, 0 %, 46, 455 MiB 250.37 W, 100 %, 0 %, 46, 455 MiB 251.33 W, 100 %, 0 %, 47, 455 MiB 252.26 W, 100 %, 0 %, 47, 455 MiB 252.45 W, 100 %, 0 %, 47, 455 MiB ...und sieht sehr schön, wie beim Programmstart Leistungsaufnahme, GPU, Temperatur und RAM nach oben gehen.