2017-07-25 138 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