Lassen Sie uns sagen, dass ich die folgende Codezeile in TensorFlow (Python-Schnittstelle) haben:Parallelisiert TensorFlow unabhängige Operationen automatisch?
z = tf.matmul(W_1,x_1) + tf.matmul(W_2,x_2) + ... + tf.matmul(W_N, x_N) + b
Alle oben genannten N-Operationen sind unabhängig, und das Ergebnis wird in z gesammelt. Wird TensorFlow zum Beispiel N Kernel unabhängig starten und dann das Ergebnis akkumulieren, oder wird N Operationen in Serie verarbeiten?
Ich frage, weil dies einen Einfluss darauf hat, wie viel Aufwand ich aufwenden muss, um Operationen zu vektorisieren, auf Kosten von reduzierter Lesbarkeit und Bequemlichkeit. Ich hoffe, dass TF alle N-GPU-Kernel asynchron startet, die Ausgabe in z akkumuliert und das Ergebnis zurückgibt.
Darüber hinaus vorausgesetzt, TF verarbeitet die obige Aussage parallel, gibt es irgendwelche Einschränkungen? Wenn ich beispielsweise z in einer for-Schleife (oder über mehrere Zeilen mit intermediären Variablen) ansammeln würde, würde ich diesen Vorteil verlieren?