Si j'exécute un modèle tensorflow (par exemple cifar10) avec un GPU sur une plate-forme multi-gpu, tensorflow crée et diffuse des données (formation/inférence) sur tous les GPU disponibles. Depuis que j'ai défini num_gpus sur 1, il fonctionne sur un seul GPU. Cependant, je peux voir les mêmes processus sur d'autres gpus. Est-ce que c'est prévu? Y a-t-il une raison à cela? J'ai rapidement vérifié avec d'autres frameworks DL comme Caffe, mais le design/fonctionnement est différent. Bien sûr, je peux spécifier device
au niveau du code, mais je suis curieux. En outre, cette conception par défaut peut être gênante pour les autres utilisateurs si la machine est partagée.Périphérique Tensorflow par défaut sur les multi-GPU
tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name:
tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:1) -> (device: 1, name:
tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:2) -> (device: 2, name:
tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:3) -> (device: 3, name: ...
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 67056 C python 15623MiB |
| 1 67056 C python 15499MiB |
| 2 67056 C python 15499MiB |
| 3 67056 C python 15499MiB |
| 4 67056 C python 15499MiB |