Mit der Verfügbarkeit von Compute-Shadern für DirectX und OpenGL ist es jetzt möglich, viele Algorithmen zu implementieren, ohne die Rasterisierungs-Pipeline zu durchlaufen, und stattdessen Allzweck-Computing auf der GPU zu verwenden, um das Problem zu lösen.
Für einige Algorithmen scheint dies die intuitive kanonische Lösung zu sein, da sie von Natur aus nicht auf Rasterung basieren und Shaster auf Rasterisierung eine Problemumgehung darstellen, um die GPU-Leistung zu nutzen (einfaches Beispiel: Erstellen einer Rauschtextur. Hier muss kein Quad gerastert werden ).
Gibt es bei einem Algorithmus, der in beide Richtungen implementiert werden kann, allgemeine (potenzielle) Leistungsvorteile gegenüber der Verwendung von Compute-Shadern im Vergleich zum normalen Weg? Gibt es Nachteile, auf die wir achten sollten (gibt es zum Beispiel einen ungewöhnlichen Overhead beim Umschalten von / auf das Berechnen von Shadern zur Laufzeit)?
Gibt es vielleicht andere Vor- oder Nachteile, die bei der Wahl zwischen beiden zu berücksichtigen sind?
quelle
Antworten:
Es gibt keine richtige Antwort, wenn Sie direkt von der Berechnung von Compute Shadrs / GPGPU profitieren möchten. Dies hängt stark von der Art des von Ihnen implementierten Algorithmus ab. Compute Shader und CUDA / OpenCL sind ein allgemeinerer Ansatz, um einige der Einschränkungen zu überwinden von diesen alten Shading-Sprachen hacken. Die wichtigsten Vorteile, die Sie erhalten:
Nun , in meiner Meinung nach , wenn Sie die Compute Shaders Weg gehen wollen, auch wenn bestimmte Algorithmen sein können besser geeignet, gibt es bestimmte Überlegungen , die Sie brauchen , zu berücksichtigen:
Trotzdem bin ich mir sicher, dass es großartig für die Zukunft ist und eine großartige Lernerfahrung sein wird. Viel Glück!
quelle