Umsetzung von Modell-Parallelität in tensorflow
Ich bin ein Anfänger zu tensorflow. Derzeit arbeite ich auf einem system mit 2 GPUs jeweils von 12 GB. Ich will zu implementieren-Modell Parallelität zwischen den beiden GPUs um Zug große Modelle. Ich habe auf der Suche durch alle über das internet, SO, tensorflow Dokumentation, etc, ich war in der Lage zu finden, die Erklärungen der Modell-Parallelität und Ihre Ergebnisse, aber nirgends fand ich ein kleines tutorial oder ein kleiner code-Schnipsel auf, wie es zu implementieren mit tensorflow. Ich meine, wir haben exchange Aktivierungen nach jeder Schicht richtig? Also, wie machen wir das? Gibt es eine bestimmte oder cleaner Möglichkeiten der Implementierung von Modell-Parallelität in tensorflow? Es wäre sehr hilfreich, wenn Sie könnte vermuten lassen, mich ein Ort, wo ich lernen kann, um es zu implementieren oder einen einfachen code, der wie mnist-training auf Multi-GPU-Verwendung von 'MODELL PARALLELISMUS'.
Hinweis: ich habe das getan datenparallelität wie in CIFAR10 - multi-gpu-tutorial, aber ich habe nicht gefunden eine Umsetzung des Modells Parallelität.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel. Das Modell hat einige Teile, die auf GPU0, einige Teile auf GPU1 und einige Teile auf der CPU, so ist dieses 3-Wege-Modell Parallelität.
tf.square
Teil in den obigen code mita=create_left_part_of_network
undb=create_right_part_of_network
, und Sie werden am Ende mit einem Netzwerk partitioniert zwischen gpu0 und gpu1allow_growth
es besser sein soll, obwohl es werden immer noch holding-Speicher, der es nicht mit, sonvidia-smi
geben falschen Wert. Siehe github.com/yaroslavvb/memory_probe_ops nach einem Weg, um eine tatsächliche Speichernutzung