Mit dem Beitrag der DirectX-Entwickler Amar Patel und Greg Roth am 2. Juni 2025 vorgestellt, beschreibt das Cooperative-Vector-Modell, wie Direct3D 12 Vektor- und Matrixoperationen direkt in der Shader-Pipeline beschleunigt. Das Verfahren ist Teil von Shader Model 6.9 und steht ab AgilitySDK 1.717.1-preview zur Verfügung. Zur Übersetzung der HLSL-Quellen wird der DirectX Shader Compiler (DXC) ab Version 1.8.2505 benötigt. Ziel ist es, neuronale Inferenz als Bestandteil regulärer Shader auszuführen und damit lineare Algebra ohne Umweg über separate Compute-Passes auf die GPU abzubilden.
Den technischen Unterbau bilden drei zusammenhängende Erweiterungen: HLSL Long Vectors, native DXIL-Vektoren sowie die eigentlichen Vektor-Matrix-Operationen. Long Vectors erlauben das Laden, Speichern und elementweise Verarbeiten von HLSL-Vektoren mit mehr als vier Elementen, die Spezifikation reicht bis zu 1024 Elemente je Vektor. Auf der Zwischenrepräsentationsebene werden diese Vektoren nicht mehr skalarisiert, sondern als native DXIL-Vektoren samt zugehöriger Lade-, Speicher- und Elementoperationen geführt. Daraus kann kompakterer DXIL-Code entstehen, was zusätzliche Leistungsvorteile eröffnet.
Vektor-Matrix-Operationen und Wave-Level-Akkumulation
In HLSL stehen die Funktionen Mul() und MulAdd() bereit. Mul() führt eine Matrix-Vektor-Multiplikation aus, MulAdd() kombiniert diese in einem Schritt mit der Addition eines Bias-Vektors. Beide Aufrufe arbeiten mit MatrixRef- und VectorRef-Objekten, die das hardwarespezifische Datenlayout abstrahieren. Bei der Übersetzung durch DXC werden die Operationen auf die mit Cooperative Vector eingeführten DXIL-Ops abgebildet, die der Treiber wiederum auf die jeweilige Beschleunigungseinheit der GPU verteilt. Unterstützt werden mehrere Präzisionsformate, darunter FP32, FP16, die FP8-Varianten E4M3 und E5M2 sowie ganzzahlige Typen wie uint8_t, festgelegt über das DATA_TYPE_-Enum.
Der Namensbestandteil Cooperative beschreibt das Verhalten auf Wave-Ebene: Einzelne Vektor-Matrix-Multiplikationen, die von den Threads einer Wave angefordert werden, fasst die Hardware zu einer gemeinsamen Matrix-Matrix-Operation zusammen und beschleunigt sie kollektiv. So lassen sich die Inferenzanfragen vieler Threads bündeln, statt jeden Aufruf isoliert abzuarbeiten. Aktiviert wird der Pfad über experimentelle Shader Models im Developer Mode. Vor der Geräteerstellung muss D3D12EnableExperimentalFeatures mit den UUIDs D3D12ExperimentalShaderModels und D3D12CooperativeVectorExperiment aufgerufen werden.
Anwendungsfelder und Hardwareunterstützung
Als Anwendungsfelder nennt der Beitrag insbesondere Texturkompression und Material-Shading, bei denen klassische Shader-Berechnungen durch neuronale Inferenz ersetzt werden. Hochrangige lineare Algebra konsumieren die Treiber dabei direkt, da sie über die Fähigkeiten der jeweiligen GPU informiert sind. Damit rücken Neural-Rendering-Techniken in den regulären Ablauf der Grafik-Pipeline, ohne dass dedizierte separate Verarbeitungsstufen erforderlich werden. Wie eng KI und neuronale Netzwerke inzwischen mit der Grafikberechnung verzahnt sind, zeigte sich bereits im NVidia GeForce TechTalk zu KI in Spielen.
Die Vorschau ist herstellerübergreifend angelegt. NVIDIA unterstützt das Modell auf allen GeForce-RTX-GPUs mit einem entsprechenden Entwicklertreiber. Intel deckt die Arc-B-Series-Grafik sowie Core-Ultra-Prozessoren der Serie 2 ab, AMD stellt einen Preview-Treiber bereit. Für Tests ohne passende Hardware steht der Software-Rasterizer WARP in der Vorschauversion 1.0.15-preview zur Verfügung. Voraussetzung für den Betrieb sind AgilitySDK 1.717.1-preview, ein unterstützter Preview-Treiber und die Nutzung experimenteller Shader Models im Developer Mode.
