Ich benutze einen Remote-Rechner mit 2 GPUs, um ein Python-Skript mit CUDA-Code auszuführen. Um herauszufinden, wo ich die Leistung meines Codes verbessern kann, versuche ich nvprof
zu verwenden.nvprof verwendet alle verfügbaren GPUs beim Profiling von Python-Skripten
Ich habe auf meinen Code eingestellt, dass ich nur eine der 2 GPUs auf dem Remote-Rechner verwenden möchte, obwohl, wenn nvprof --profile-child-processes ./myscript.py
aufgerufen wird, ein Prozess mit der gleichen ID auf jedem der GPUs gestartet wird.
Gibt es irgendein Argument, das ich nvprof
geben kann, um nur eine GPU für das Profiling zu verwenden?
Verwenden Sie die Umgebungsvariable 'CUDA_VISIBLE_DEVICES =" 0 "', um 'nvprof' Zugriff einzuschränken. Zum Beispiel 'CUDA_VISIBLE_DEVICES =" 0 "nvprof --profile-untergeordnete-prozesse./Meinskript.py' würde nvprof auf die erste GPU beschränken und' CUDA_VISIBLE_DEVICES = "1" nvprof --profile-untergeordnete-prozesse ./myscript.py 'würde es auf die 2. GPU usw. beschränken. Die env var ist [hier] dokumentiert (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars). 'nvprof --help' zeigt, dass es einen Schalter' --devices' hat, der bestimmte Aktivitäten auch auf bestimmte GPUs beschränken kann. –