WGSLLanguageFeatures

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die WGSLLanguageFeatures-Schnittstelle der WebGPU API ist ein set-ähnliches Objekt, das die vom WebGPU-Implementierung unterstützten WGSL-Spracherweiterungen meldet.

Das WGSLLanguageFeatures-Objekt wird über die GPU.wgslLanguageFeatures-Eigenschaft aufgerufen.

Hinweis: Nicht alle WGSL-Spracherweiterungen sind in allen Browsern, die die API unterstützen, für WebGPU verfügbar. Wir empfehlen, alle Erweiterungen, die Sie verwenden möchten, gründlich zu testen.

Verfügbare Funktionen

Die folgenden WGSL-Spracherweiterungen sind in den WGSL-Spracherweiterungen in der WGSL-Spezifikation definiert. Beachten Sie, dass der genaue Satz an verfügbaren Funktionen zwischen Implementierungen und physischen Geräten variieren kann und sich im Laufe der Zeit ändern kann.

packed_4x8_integer_dot_product

Erlaubt DP4a-GPU-Anweisungen (Dot Product of 4 Elements and Accumulate), die über Ihren WGSL-Code verwendet werden können. Diese führen effizient 8-Bit-Integer-Punktprodukte aus, um Berechnungen zu beschleunigen, Speicher und Netzwerkbandbreite zu sparen und die Leistung im Vergleich zu den entsprechenden f32-Versionen zu verbessern. Sie werden häufig in inferenzierenden Maschinenlernmodellen innerhalb von KI-Frameworks eingesetzt.

Insbesondere kann bei Verfügbarkeit von packed_4x8_integer_dot_product WGSL-Code verwenden:

  • 32-Bit-Integer-Skalare, die 4-Komponenten-Vektoren von 8-Bit-Integern verpacken, um als Eingaben für Punktproduktanweisungen verwendet zu werden (über die eingebauten Funktionen dot4U8Packed() und dot4I8Packed()).
  • Verpackungs- und Entpackungsanweisungen mit verpackten 4-Komponenten-Vektoren von 8-Bit-Integern (über eingebaute Funktionen wie pack4xI8() und pack4xI8Clamp()).
readonly_and_readwrite_storage_textures

Ermöglicht, wenn verfügbar, die Angabe der Werte "read-only" und "read-write" für storageTexture.access, wenn Speichertextur-Bindgruppen-Eintragstypen in einem Bindgruppenlayout angegeben werden. Diese erlauben WGSL-Code das Lesen von Speichertexturen oder das Lesen und Schreiben von Speichertexturen.

unrestricted_pointer_parameters

Lockert die Einschränkungen für Zeiger, die an WGSL-Funktionen übergeben werden. Wenn verfügbar, sind die folgenden erlaubt:

  • Parameterzeiger auf Speicher-, Uniform- und Arbeitsgruppenspeicher, die an benutzerdefinierte Funktionen übergeben werden.

  • Zeiger auf Strukturmitglieder und Array-Elemente, die an benutzerdefinierte Funktionen übergeben werden.

    Siehe Zeiger als Funktionsparameter für weitere Details.

Instanzeigenschaften

Die folgende Eigenschaft ist in allen schreibgeschützten set-ähnlichen Objekten verfügbar:

size Experimentell

Gibt die Anzahl der Werte im Set zurück.

Instanzmethoden

Die folgenden Methoden sind in allen schreibgeschützten set-ähnlichen Objekten verfügbar:

has() Experimentell

Gibt einen booleschen Wert zurück, der angibt, ob ein Element mit dem gegebenen Wert im Set vorhanden ist oder nicht.

values() Experimentell

Gibt ein neues Iterator-Objekt zurück, das Werte für jedes Element im Set in Einfügereihenfolge liefert.

keys() Experimentell

Ein Alias für values().

entries() Experimentell

Gibt ein neues Iterator-Objekt zurück, das ein Array von [value, value] für jedes Element im Set in Einfügereihenfolge enthält.

forEach() Experimentell

Ruft die bereitgestellte Callback-Funktion einmal für jeden im Set vorhandenen Wert in Einfügereihenfolge auf.

Beispiele

Überprüfen, ob eine Erweiterung verfügbar ist

js
if (
  navigator.gpu.wgslLanguageFeatures.has(
    "readonly_and_readwrite_storage_textures",
  )
) {
  console.log("Read-only and read-write storage textures are available");
}

Set-Größe zurückgeben und durch Werte iterieren

js
const wgslFeatures = navigator.gpu.wgslLanguageFeatures;

// Return the size of the set
console.log(wgslFeatures.size);

// Iterate through all the set values using values()
const valueIterator = wgslFeatures.values();
for (const value of valueIterator) {
  console.log(value);
}

// ...

Spezifikationen

Specification
WebGPU
# gpuwgsllanguagefeatures

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
WGSLLanguageFeatures
Experimental
[Symbol.iterator]
Experimental
entries
Experimental
packed_4x8_integer_dot_product extension
Experimental
readonly_and_readwrite_storage_textures extension
Experimental
unrestricted_pointer_parameters extension
Experimental
forEach
Experimental
has
Experimental
keys
Experimental
size
Experimental
values
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

Siehe auch