Я использую два GTX 980 gpu. Когда я имею дело с тонким в тензорном потоке. Обычно у меня проблема так называемая «Недостаточно памяти». Итак, я хочу использовать два графических процессора одновременно. Как я могу использовать 2 gpu? Ой, извините за мои плохие знания английского языка. :(

2
dino 25 Июл 2017 в 08:44

2 ответа

Если вы хотите запустить TensorFlow на нескольких графических процессорах, вы можете построить свою модель в виде нескольких башен, где каждая башня назначена другому графическому процессору. Например:

 # 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.]]

Я не уверен в проблемах «Недостаточно памяти», так как вы не предоставили фрагмент кода.

1
Hyrein 25 Июл 2017 в 09:08

По умолчанию, если установлена ​​версия TensorFlow для графического процессора, TensorFlow будет использовать все доступные графические процессоры.

Для управления выделением памяти GPU вы можете использовать tf.ConfigProto().gpu_options.

0
Graham 22 Сен 2017 в 19:19