WGSLLanguageFeatures
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология .
Перед использованием в рабочей среде тщательно ознакомьтесь с таблицей совместимости браузеров .
Безопасный контекст: Данная функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс WGSLLanguageFeatures API WebGPU — это объект похожий на множество, который сообщает о поддерживаемых реализацией WebGPU расширениях языка WGSL.
К объекту WGSLLanguageFeatures можно получить доступ через свойство GPU.wgslLanguageFeatures.
Примечание: Не все расширения языка WGSL доступны для WebGPU во всех браузерах, поддерживающих API. Рекомендуется тщательно протестировать любые выбранные расширения.
Доступные функции
Следующие расширения языка WGSL определены в спецификации WGSL на странице WGSL language extensions. Имейте в виду, что точный набор доступных функций будет варьироваться в разных реализациях и на различных физических устройствах, а также может со временем меняться.
packed_4x8_integer_dot_product-
Позволяет использовать инструкции GPU DP4a (Dot Product of 4 Elements and Accumulate) через ваш код WGSL. Они эффективно выполняют 8-битные целочисленные скалярные произведения для ускорения вычислений, экономя память и пропускную способность сети, а также повышая производительность по сравнению с эквивалентными
f32версиями. Они часто используются в моделях машинного обучения на этапе вывода, в рамках фреймворков ИИ.В частности, когда
packed_4x8_integer_dot_productдоступен, код WGSL может использовать:- 32-битные целочисленные скаляры, упаковывающие 4-компонентные векторы 8-битных целых чисел в качестве входных данных для инструкций скалярного произведения (через встроенные функции
dot4U8Packed()иdot4I8Packed()). - Инструкции упаковки и распаковки с упакованными 4-компонентными векторами 8-битных целых чисел (через встроенные функции, такие как
pack4xI8()иpack4xI8Clamp()).
- 32-битные целочисленные скаляры, упаковывающие 4-компонентные векторы 8-битных целых чисел в качестве входных данных для инструкций скалярного произведения (через встроенные функции
readonly_and_readwrite_storage_textures-
При наличии позволяет установить значения
"read-only"и"read-write"storageTexture.accessпри указании типов записей связывания хранилищ текстур в макете связывания. Это позволяет коду WGSL читать хранилища текстур и читать/записывать хранилища текстур соответственно. unrestricted_pointer_parameters-
Снимает ограничения на указатели, передаваемые функциям WGSL. При наличии разрешается:
-
Передача указателей на хранилища, униформные и рабочие группы в пространствах адресации в пользовательские функции.
-
Передача указателей на члены структур и элементы массивов в пользовательские функции.
Подробнее см. Pointers As Function Parameters.
-
Свойства экземпляра
Для всех объектов похожих на множество с только чтением доступно следующее свойство:
-
sizeЭкспериментально -
Возвращает количество значений в множестве.
Методы экземпляра
Для всех объектов похожих на множество с только чтением доступны следующие методы:
-
has()Экспериментально -
Возвращает булево значение, указывающее на наличие или отсутствие элемента с заданным значением в множестве.
-
values()Экспериментально -
Возвращает новый объект итератора, который возвращает значения каждого элемента в множестве в порядке вставки.
-
keys()Экспериментально -
Псевдоним для
values(). -
entries()Экспериментально -
Возвращает новый объект итератора, содержащий
[value, value]для каждого элемента в множестве в порядке вставки. -
forEach()Экспериментально -
Вызывает предоставленную функцию обратного вызова один раз для каждого значения, присутствующего в множестве, в порядке вставки.
Примеры
Проверка доступности расширения
if (
navigator.gpu.wgslLanguageFeatures.has(
"readonly_and_readwrite_storage_textures",
)
) {
console.log("Read-only and read-write storage textures are available");
}
Возврат размера множества и итерация по значениям
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);
}
// ...
Спецификации
| Спецификация |
|---|
| WebGPU # gpuwgsllanguagefeatures |
Совместимость браузеров
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
@@iterator |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
WGSLLanguageFeatures |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
entries |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
extension_packed_4x8_integer_dot_product |
123 | 123 | Нет | 109 | Нет | 123 | Нет | 82 | Нет | 27.0 | 123 |
extension_readonly_and_readwrite_storage_textures |
124 | 124 | Нет | 110 | Нет | 124 | Нет | 82 | Нет | 27.0 | 124 |
extension_unrestricted_pointer_parameters |
123В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
123В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 109В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 123В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 82В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 27.0В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
123В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
forEach |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
has |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
keys |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
size |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
values |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
115В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 101В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WGSLLanguageFeatures