2016-09-08 5 views

Antwort

2

Der Vorteil mehrerer Arbeitsgruppen ist der größere Platz.

Eine Arbeitsgruppe hat eine maximale Größe und auch keine besonders große. GL 4.5 erfordert nur, dass GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS mindestens 1024 Aufrufe innerhalb einer Arbeitsgruppe sein wird. Einige Implementierungen unterstützen 1536, aber keine höher als 1792.

Der Grund für die Einschränkung ist die Speicherung.

Jeder Aufruf hat seinen eigenen lokalen Speicher. Um einen barrier-Aufruf zu implementieren, muss das System in der Lage sein, diese Daten aus der Recheneinheit zu speichern und einige neue Daten zu laden. Wenn Sie Millionen von Aufrufen innerhalb einer einzigen Arbeitsgruppe hätten, würde dies eine große Menge an Daten erfordern. Während Sie mit dem aktuellen Design nur genügend Speicher benötigen, um einige tausend Aufrufe ausführen zu können.

Sie müssen Ihre Algorithmen so entwerfen, dass sie innerhalb dieser Einschränkung arbeiten. diese eine Sache, die GPU macht schwer.

+0

Ich werde nur auf ein paar Bilder schreiben, also habe ich mich gefragt, ob es einen Leistungseinfluss geben würde, wenn ich nur eine globale Arbeitsgruppe verwende und die Pixel mit Schleifen in diesem einzelnen Aufruf bedeckt. Da es sich bei Bildern um globalen Speicher handelt, ist dies kein offensichtliches Problem. – Jens

+0

Vielleicht hätte ich diesen Teil der Frage besser formulieren sollen. – Jens

+0

@Jens: Das ist eine * ganz andere * Frage. Es ist keine Synchronisation erforderlich, um Aufrufe an * verschiedene Pixel * eines Bildes zu schreiben. –

Verwandte Themen