Spec-Zone.ru › Web APIs

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()).
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

См. также

  • API WebGPU

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API