Ich habe eine Reihe von Jobs auszuführen. Jeder Job besteht aus einem Pufferschreiben, einer Kernel-Ausführung und einem Pufferlesen und diese Operationen müssen natürlich in der Reihenfolge ausgeführt werden. Die verschiedenen Jobs sind jedoch unabhängig und können daher gleichzeitig ausgeführt werden.OpenCL mehrere Befehlswarteschlangen in der Reihenfolge und einzelne außerhalb der Reihenfolge
Gibt es Leistungsunterschiede zwischen der Verwendung mehrerer Befehlswarteschlangen in der richtigen Reihenfolge (wie bei CUDA-Streams) und einer einzelnen außer der Reihe mit äquivalenter Synchronisation? Welches ist besser?
Ja, aber wie viele Befehlswarteschlangen? Selbst mit dem zusätzlichen Aufwand aufgrund der manuellen Erstellung von "Stapeln" finde ich es trivialer, eine einzelne Warteschlange außerhalb der Reihenfolge zu verwenden. Aber nur, wenn es unterstützt wird und die Performances nicht leiden. – Shepard
> Wie viele Befehlswarteschlangen Eins für jeden In-Flight-Job (Sie können sie von abgeschlossenen Jobs zu neuen Jobs weiterverwenden). Aber Sie finden es trivialer, eine einzelne Warteschlange außerhalb der Reihenfolge zu verwenden und sie dann zu versuchen. Überprüfen Sie, ob alle Geräte, auf denen Sie die Ausführung durchführen möchten, dies unterstützen. – Dithermaster
Ja, das ist eine gute Idee, alte Warteschlangen wiederzuverwenden, sobald sie verfügbar sind. Ich würde gerne eine einzige Warteschlange verwenden, aber ich war neugierig, wie es im Vergleich von mehreren Warteschlangen funktionieren würde. Ich denke ich werde ein paar Tests machen. – Shepard