Wie bekomme ich aktuelle GPUs im Tensorflow?

Ich habe vor, verteiltes TensorFlow zu verwenden, und ich habe gesehen, dass TensorFlow GPUs für Schulungen und Tests verwenden kann. In einer Cluster-Umgebung kann jeder Computer über 0 oder 1 oder mehr GPUs verfügen, und ich möchte mein TensorFlow-Diagramm auf so vielen Computern wie möglich in GPUs ausführen.

Ich fand, dass beim Laufentf.Session() TensorFlow gibt Informationen zur GPU in den folgenden Protokollmeldungen an:

I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)

Meine Frage ist, wie ich von TensorFlow Informationen über die aktuell verfügbare GPU erhalte. Ich kann die GPU-Informationen aus dem Protokoll laden, möchte dies jedoch auf komplexere, programmgesteuerte Weise tun. Ich könnte GPUs auch absichtlich mit der Umgebungsvariablen CUDA_VISIBLE_DEVICES einschränken, daher möchte ich nicht wissen, wie GPU-Informationen vom Betriebssystemkern abgerufen werden können.

urz gesagt, ich möchte eine Funktion wietf.get_available_gpus() das wird zurückgeben['/gpu:0', '/gpu:1'] Wenn auf dem Computer zwei GPUs verfügbar sind. Wie kann ich das umsetzen?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage