Mit CUDA ist es nicht mehr notwendig eine graphische Oberfläche auf dem GPGPU Knoten zu haben. Doch was, wenn man den GPU-Teil einer Anwendung profilen möchte? Der CUDA-Profiler basiert auf QT und läuft auf einem nackten Knoten ohne X nicht.
Zum Glück ist die Profilingfunktionalität von CUDA auf niedrigerer Ebene realisiert und lässt sich durch Umgebungsvariablen steuern. Der graphische Profiler nimmt einem diese Arbeit lediglich ab und lässt einen intuitiver die zu messenden Metriken bestimmen.
Die für die Konfiguration zuständigen Umgebungsvariablen sind:
In der durch CUDA_PROFILE_CONFIG angegebenen Datei können bis zu vier Zähler angegeben sein. Jeder Zähler muss hierbei in einer eigenen Zeile stehen. Die möglichen Werte sind:
So ist es dann durchaus auch möglich die Graphikkartennutzung in MPI-Programmen zu profilen. Hierbei muss man lediglich beachten, dass jeder Prozess seine eigene Ausgabedatei verwendet. Bei OpenMPI 1.3 kann man z.B. die Umgebungsvariable OMPI_COMM_WORLD_RANK nutzen und den Aufruf des eigenen, hier beispielsweise meinCudaProgramm genannten Programmes durch ein kleiens Skript ersetzen.
#!/bin/bash
export CUDA_PROFILE=1
export CUDA_PROFILE_CSV=1
export CUDA_PROFILE_LOG=meinCudaProgramm.profile.csv
./meinCudaProgramm
This work is licensed under a Attribution Share Alike Creative Commons license
Sollten dir die Artikel auf dieser Seite gefallen und du Bitcoin für ein interessantes Experiment halten, so schicke doch eine kleine Spende an 15xm3pCrZN3SpYKFHXMWGiAjki9aMyFkDP .