我使用两个GTX 980 gpu。 当我处理张量流量减少时。 通常,我有一个所谓的“内存不足”的问题。 所以,我想同时使用两个gpu。 我怎么能用2个gpu? 哦,对不起我糟糕的英语技能。 :(
答案 0 :(得分: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.]]
我不确定“Out of Memory”问题,因为你没有提供代码片段。
答案 1 :(得分:0)
默认情况下,如果安装了TensorFlow的GPU版本,TensorFlow将使用所有可用的GPU。
要控制GPU内存分配,您可以使用importer.config({
'host': config.connections.statshop.host,
'user': config.connections.statshop.username,
'password': config.connections.statshop.password,
'database': 'w2r_' + params['login']
});
importer.importSQL('db/_referentiel_web2roi.sql')
。