2017-07-25 141 views
2

我使用兩個GTX 980 gpu。 當我在處理張量流暢的苗條。 通常,我有一個所謂的「內存不足」的問題。 所以,我想同時使用兩個gpu。 如何使用2 gpu? 哦,對不起我英文不好的技能。 :(如何使用2 gpu來計算tensorflow?

回答

1

如果你想在多GPU上運行TensorFlow,您可以構建模型在每個塔被分配到不同的GPU多塔的方式,例如:

# Creates a graph. 
c = [] 
for d in ['/gpu:2', '/gpu:3']: 
    with tf.device(d): 
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3]) 
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2]) 
    c.append(tf.matmul(a, b)) 
with tf.device('/cpu:0'): 
    sum = tf.add_n(c) 
# Creates a session with log_device_placement set to True. 
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 
# Runs the op. 
print(sess.run(sum)) 

你會看到下面的輸出。

Device mapping: 
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K20m, pci bus 
id: 0000:02:00.0 
/job:localhost/replica:0/task:0/gpu:1 -> device: 1, name: Tesla K20m, pci bus 
id: 0000:03:00.0 
/job:localhost/replica:0/task:0/gpu:2 -> device: 2, name: Tesla K20m, pci bus 
id: 0000:83:00.0 
/job:localhost/replica:0/task:0/gpu:3 -> device: 3, name: Tesla K20m, pci bus 
id: 0000:84:00.0 
Const_3: /job:localhost/replica:0/task:0/gpu:3 
Const_2: /job:localhost/replica:0/task:0/gpu:3 
MatMul_1: /job:localhost/replica:0/task:0/gpu:3 
Const_1: /job:localhost/replica:0/task:0/gpu:2 
Const: /job:localhost/replica:0/task:0/gpu:2 
MatMul: /job:localhost/replica:0/task:0/gpu:2 
AddN: /job:localhost/replica:0/task:0/cpu:0 
[[ 44. 56.] 
[ 98. 128.]] 

我不知道有「內存不足」的問題,因爲ü沒有給的代碼片段。

0

默認情況下,如果TensorFlow的GPU版本TensorFlow將使用所有可用的GPU。

要控制GPU內存分配,可以使用tf.ConfigProto().gpu_options