In CUDA werden Threads mit den IDs 0-31, 32-63, ... immer im selben Warp ausgeführt. Ich kann jedoch keine ähnliche Aussage in OpenGL-Spezifikation oder Wiki finden. Bietet OpenGL die gleiche Garantie oder kann man davon ausgehen, dass dies für die meisten OpenGL-Implementierungen der Fall ist?Wie berechnet OpenGL Shader-Threads zu Warps?
1
A
Antwort
1
OpenGL-Spezifikation sagt nichts über Verwerfungen, die nVidia Detail spezifische Implementierung sind.
In OpenGL parlance die Shader Invokationen in Arbeitsgruppen unterteilt sind. Die Anzahl der Shaderaufrufe in einer Arbeitsgruppe wird durch die Deklaration im Shader angegeben. Die Anzahl der Arbeitsgruppen wird im Aufruf glDispatchCompute
angegeben. Die Art, wie sie in CUDA-Warps abgebildet werden, ist ein Implementierungsdetail , das für Sie als Benutzer transparent ist.
1
Für ARM-basierten GPUs (in Handys) wie Mali, Sie haben keine Verwerfungen. Vielmehr ist jeder Kern die gesamte Pixel-Pipeline. Lesen Sie diese https://community.arm.com/groups/arm-mali-graphics/blog/2014/04/23/arm-mali-compute-architecture-fundamentals
Verwandte Themen
- 1. Warum CUDA Occupancy in Bezug auf die Anzahl aktiver Warps über max Warps definiert ist
- 2. OpenGL zu OpenGL-ES - glBegin();
- 3. CUDA aktive Verwerfungen vs resident Warps
- 4. OpenGL zu OpenGL-ES - glRectf()
- 5. Portierung OpenGL ES 2 zu OpenGL
- 6. Benötigt OpenGL Normalen, um Schatten zu erzeugen?
- 7. FFMPEG zu OpenGL Textur
- 8. SDL_Surface zu OpenGL Textur
- 9. OpenGL Rendering zu Cubemap
- 10. Von Direct3d zu OpenGL
- 11. Wie zeichne zu einer Textur in OpenGL
- 12. OpenGL: Wie glMapBuffer mit Qt zu verwenden?
- 13. wie OpenGL mit VC++ zu verbinden
- 14. Wie OpenGL in JavaFX zu verwenden?
- 15. Wie werden die x, y-Werte einer Zeile nach unterschiedlicher Bildschirmgröße/Auflösung in OpenGL neu berechnet?
- 16. Wie berechnet% in Tabelle
- 17. Wie wird Fakultät berechnet?
- 18. Wie berechnet man Partituren?
- 19. Wie berechnet man "Ansichten"?
- 20. CUDA: 2 Threads von verschiedenen Warps, aber gleicher Block versucht, in dieselbe SHARED-Speicherposition zu schreiben: gefährlich?
- 21. Wie iperf Netzwerkstatistiken berechnet
- 22. Wie berechnet Acumatica LastDateTimeModified
- 23. Wie berechnet man Laufzeit
- 24. Wie berechnet Pandas Indizes?
- 25. Wie berechnet Route 53?
- 26. OpenGL Render zu transparenter Textur
- 27. 3ds max Objekt zu Opengl
- 28. rgba Arrays zu OpenGL Textur
- 29. Wie wird der R2-Wert in Scikit berechnet berechnet?
- 30. OpenGl Dreieckinterpolation Problem
Solange die Leistung betrifft, so ist dies nicht wirklich transparent. Eine Änderung der Warp-Aufteilung kann bis zu 32x langsamen Shared Memory-Zugriff verursachen (auf NVIDIA- und AMD-Hardware) –
@HuazuoGao: Ja, könnte es. Aber die OpenGL-Spezifikation lässt Sie davon nichts wissen. Die Spezifikation ist eine * Abstraktion *. –
@HuazuoGao: Stimmt, aber es ist vernünftig anzunehmen, dass die Implementierung die Hardwareressourcen auf die effizienteste Weise zuordnen wird. Beachten Sie, dass Sie die genaue Zuordnung von Thread-ID und ↔ Warp nicht wirklich interessieren, nur dass sie nicht verschwendet werden. – ybungalobill