2017-04-13 80 views
0

我正在學習分佈式Tensorflow。 https://www.tensorflow.org/deploy/distributed分佈式tensorflow PS服務器自動使用所有的GPU?

# Create and start a server for the local task. 
server = tf.train.Server(cluster, 
     job_name=FLAGS.job_name, 
     task_index=FLAGS.task_index) 

if FLAGS.job_name == "ps": 
    server.join() 

當我只啓動一個ps服務器。我看到它使用了所有GPU和所有GPU內存。

(我的ENV:2特斯拉K80 GPU)的

+--------------------------------------------------+ 
| Processes:       GPU Memory | 
| GPU  PID Type Process name Usage  | 
|==================================================| 
| 0  22854 C python   10891MiB | 
| 1  22854 C python   10890MiB | 
+--------------------------------------------------+ 

https://www.tensorflow.org/tutorials/using_gpu,我減少了內存使用情況。

config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
server = tf.train.Server(cluster, 
    job_name=FLAGS.job_name, 
    task_index=FLAGS.task_index, 
    config=config) 

但我希望PS服務器只使用一個GPU,如何做到這一點?

回答

0

config.gpu_options.visible_device_list是指定哪些GPU對張量流可見的方式。

+0

謝謝@亞歷山大帕索斯 是的,但是在分佈式張量流中有兩部分。 PS服務器和工作人員。我只希望只有工作人員才能使用所有GPU而不是ps服務器。 –

+0

我認爲在參數服務器上啓動非gpu TensorFlow構建可能會更好;那麼不會在那裏使用GPU(參數服務器中的GPU通常不是必需的)。 –