Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. WGSLLanguageFeatures

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

WGSLLanguageFeatures

Limited availability

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

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

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DasWGSLLanguageFeatures-Interface derWebGPU API ist einsetähnliches Objekt, das die von der WebGPU-Implementierung unterstütztenWGSL-Spracherweiterungen meldet.

Auf dasWGSLLanguageFeatures-Objekt wird über dieGPU.wgslLanguageFeatures-Eigenschaft zugegriffen.

Hinweis:Nicht alle WGSL-Spracherweiterungen sind in allen Browsern verfügbar, die die API unterstützen. Es wird empfohlen, dass Sie alle Erweiterungen, die Sie verwenden möchten, gründlich testen.

Verfügbare Funktionen

Die folgenden WGSL-Spracherweiterungen sind inWGSL-Spracherweiterungen in der WGSL-Spezifikation definiert. Beachten Sie, dass das genaue Set an verfügbaren Funktionen je nach Implementierung und physischen Geräten variieren kann und sich im Laufe der Zeit ändern kann.

packed_4x8_integer_dot_product

Ermöglicht die Nutzung vonDP4a (Dot Product von 4 Elementen und Akkumulieren) GPU-Anweisungen über Ihren WGSL-Code. Diese führen 8-Bit-Integer-Punktprodukte effizient aus, um Berechnungen zu beschleunigen, Speicher und Netzwerkbandbreite zu sparen und die Leistung im Vergleich zu den entsprechendenf32-Versionen zu verbessern. Sie werden häufig in Maschinenlernmodellen beim Inferencing innerhalb von KI-Frameworks verwendet.

Insbesondere, wennpacked_4x8_integer_dot_product verfügbar ist, kann WGSL-Code verwenden:

  • Packing von 32-Bit-Integer-Scalaren in 4-Komponenten-Vektoren von 8-Bit-Integern, um als Eingaben für Punktprodukt-Anweisungen zu dienen (über die eingebauten Funktionendot4U8Packed() unddot4I8Packed()).
  • Pack- und Unpack-Anweisungen mit gepackten 4-Komponenten-Vektoren von 8-Bit-Integern (über eingebaute Funktionen wiepack4xI8() undpack4xI8Clamp()).
pointer_composite_access

Ermöglicht WGSL-Shader-Code, auf Komponenten komplexer Datentypen mit der gleichen Punkt-Notation (.) zuzugreifen, unabhängig davon, ob Sie direkt mit den Daten oder mit einem Zeiger darauf arbeiten.

Wennpointer_composite_access verfügbar ist:

  • Wennfoo ein Zeiger ist:foo.bar steht als bequemere Schreibweise für(*foo).bar zur Verfügung. Der Stern (*) würde normalerweise benötigt, um den Zeiger in eine "Referenz" zu verwandeln, die dereferenziert werden kann, aber jetzt sind sowohl Zeiger als auch Referenzen fast austauschbar.
  • Wennfoo kein Zeiger ist: Der Punkt-Operator (.) funktioniert genau so wie gewohnt für den direkten Zugriff auf Mitglieder.
  • Wennpa ein Zeiger ist, der die Startadresse eines Arrays speichert, dann gibtpa[i] direkten Zugriff auf die Speicherstelle, an der dasite Element dieses Arrays gespeichert ist.

SieheSyntaxzucker für das Dereferenzieren von Komposita in WGSL für weitere Details und ein Beispiel.

readonly_and_readwrite_storage_textures

Wenn verfügbar, ermöglicht das Setzen der Werte"read-only" und"read-write" fürstorageTexture.access bei der Angabe von Speichertyp-Bindungsgruppen in einem Bindungsgruppen-Layout. Diese ermöglichen WGSL-Code das Lesen von Speichertypen bzw. das Lesen/Schreiben von Speichertypen.

unrestricted_pointer_parameters

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

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

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

    SieheZeiger als Funktionsparameter für weitere Details.

Instanz-Eigenschaften

Die folgende Eigenschaft ist für alle schreibgeschütztensetähnlichen Objekte verfügbar:

size

Gibt die Anzahl der Werte in der Menge zurück.

Instanz-Methoden

Die folgenden Methoden sind für alle schreibgeschütztensetähnlichen Objekte verfügbar:

has()

Gibt ein boolesches Ergebnis zurück, das angibt, ob ein Element mit dem angegebenen Wert in der Menge vorhanden ist oder nicht.

values()

Gibt ein neues Iterator-Objekt zurück, dasWerte für jedes Element in der Menge in Einfüge-Reihenfolge liefert.

keys()

Ein Alias fürvalues().

entries()

Gibt ein neues Iterator-Objekt zurück, dasein Array von[value, value] für jedes Element in der Menge in Einfüge-Reihenfolge enthält.

forEach()

Ruft die bereitgestellte Callback-Funktion einmal für jeden Wert in der Menge in Einfüge-Reihenfolge 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");}

Setgröße zurückgeben und durch Werte iterieren

js
const wgslFeatures = navigator.gpu.wgslLanguageFeatures;// Return the size of the setconsole.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

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp