Gibt es eine Möglichkeit, gestapelte RNNs über mehrere GPUs in TensorFlow zu parallelisieren?

8

Ist es möglich, die Ausgabe einer Operation tf.scan zu verwenden und sie direkt an eine andere GPU zu streamen, sodass zwei gestapelte RNNs parallel auf zwei GPUs laufen? Etwas wie das:

%Vor%

Wird sich TensorFlow automatisch um diese Optimierung kümmern oder blockiert es den Graphenfluss, bis die Liste ys1 abgeschlossen ist.

    
Lenar Hoyt 29.08.2016, 14:21
quelle

1 Antwort

1

Unglücklicherweise hat tf.scan eine "Grenze" am Ausgang und alle Iterationen müssen abgeschlossen sein, bevor der Ausgangstensor von den nächsten Operationen gelesen werden kann. Sie können jedoch die verschiedenen Ebenen Ihres lstm-Stacks auf verschiedenen GPUs ausführen und Frame-Parallelität innerhalb eines Scans erzielen. Schreiben Sie Ihre eigene Version von MultiRNNCell, um für jede lstm-Ebene separate Geräte zu verwenden.

Wahrscheinlich möchten Sie auch tf.nn.dynamic_rnn statt scannen.

    
Eugene Brevdo 11.10.2016 05:46
quelle