(0) exportieren Drucken
Alle erweitern

Übersicht über Compute-Shader

Ein Compute-Shader ist eine programmierbare Shader-Phase, die Direct3D 11 über die Grafikprogrammierung hinaus erweitert. Die Compute-Shader-Technologie wird auch als DirectCompute-Technologie bezeichnet. Wie andere programmierbare Shader (z. B. Vertex- und Geometrie-Shader) wird ein Compute-Shader mit HLSL entworfen und HLSL implementiert. Damit haben sich dann aber die Gemeinsamkeiten auch erschöpft. Ein Compute-Shader bietet allgemeines Computing mit höchster Geschwindigkeit und nutzt den Vorteil der großen Anzahl an parallelen Prozessoren auf der GPU. Der Compute-Shader ermöglicht eine gemeinsame Nutzung des Arbeitsspeichers und Threadsynchronisierungsfunktionen, wodurch effektivere parallele Programmierungsmethoden möglich werden.

Verwenden von Compute-Shadern auf DX10

Beim Verwenden eines Compute-Shaders auf Direct3D 10 müssen Sie an Folgendes denken:

  • Die Maximalzahl der Threads ist auf 768 pro Gruppe beschränkt.
  • Die Z-Dimension von numthreads ist auf 1 beschränkt.
  • Die Z-Dimension von dispatch ist auf 1 beschränkt.
  • Nur eine ungeordnete Zugriffsansicht kann an den Shader gebunden werden.
  • Nur RWStructuredBuffers und RWByteAddressBuffers sind als ungeordnete Zugriffsansichten verfügbar.
  • Ein Thread kann nur auf seinen eigenen Bereich im groupshared-Arbeitsspeicher schreiben, kann aber von jedem beliebigen Speicherort lesen.
  • Beim Schreibzugriff auf den groupshared-Arbeitsspeicher muss SV_GroupIndex verwendet werden.
  • Der Groupshared-Arbeitsspeicher ist auf 16 KB pro Gruppe beschränkt.
  • Ein einzelner Thread ist beim Schreiben auf einen 256-Byte-Bereich des groupshared-Arbeitsspeichers beschränkt.
  • Es sind keine atomaren Anweisungen verfügbar.
  • Es sind keine Werte mit doppelter Genauigkeit verfügbar.

In diesem Abschnitt

ElementBeschreibung

New Resource Types

Mehrere neue Ressourcentypen wurden eingeführt, die einen generalisierten Speicherzugriff unterstützen sollen.

Accessing Resources

Die neuen Ressourcentypen unterstützen vorhandene Methoden für den Zugriff auf Ressourcen, sie unterstützen aber auch neue Zugriffstechniken.

Atomic Functions

In diesem Abschnitt werden mehrere Funktionen behandelt, die die atomare Funktionalität der neuen Ressourcentypen garantieren.

How To: Create a Compute Shader

Beschreibt, wie ein Compute-Shader erstellt wird.

 

Verwandte Themen

Grafikpipeline

 

 

Anzeigen:
© 2014 Microsoft