Deno 1.39: отзыв WebGPU

Выпуск версии 1.39 от Deno знаменует собой крупное обновление платформы с несколькими значительными улучшениями и новыми функциями.

Возвращение WebGPU

В Deno 1.39 вновь представлена ​​поддержка API WebGPU — решение, которое знаменует собой важный прогресс в высокопроизводительном межархитектурном программировании графических процессоров на JavaScript. API WebGPU, считающийся эффективным преемником WebGL, предоставляет разработчикам низкоуровневый и высокопроизводительный способ непосредственного программирования оборудования графического процессора. Эта спецификация была завершена и теперь доступна в Chrome. Firefox и Safari также разрабатывают соответствующую поддержку.

Первоначально Deno представила поддержку WebGPU в начале 2021 года, но в начале этого года эта функция была удалена из-за проблем с производительностью. Теперь эти проблемы с производительностью решены, и WebGPU снова представлен. По сравнению с ЦП, графический процессор может обеспечить чрезвычайно высокие возможности параллельной обработки при выполнении определенных числовых операций. Это не только очень полезно при рендеринге и играх, но также показывает большую эффективность в таких приложениях, как алгоритмы машинного обучения, поскольку эти алгоритмы часто можно выразить как серию матричных операций, и эти операции могут эффективно выполняться на графическом процессоре.

Реализация WebGPU в Deno основана на той же базовой системе, что и будущая реализация WebGPU в Firefox, поэтому разработчики могут с уверенностью создавать приложения на этой основе.

Вот базовый пример кода для получения информации о графическом процессоре с помощью WebGPU:

// 尝试从用户代理获取适配器。
const adapter = await navigator.gpu.requestAdapter();
if (adapter) {
  // 打印有关适配器的一些基本信息。
  const adapterInfo = await adapter.requestAdapterInfo();
  console.log(`Found adapter: ${adapterInfo.device}`); // 在某些系统上这可能为空
  const features = [...adapter.features.values()];
  console.log(`Supported features: ${features.join(", ")}`);
} else {
  console.error("No adapter found");
}

Больше примеров можно просмотреть в ихрепозитории webgpu-examples.

Несмотря на то, что спецификация стабилизирована, WebGPU по-прежнему считается нестабильным в Deno. Чтобы использовать WebGPU с Deno, вам необходимо использовать флаг --unstable-webgpu. Команда Deno планирует стабилизировать эту ситуацию вскоре после того, как получит больше отзывов от сообщества и получит больше времени для проверки реализации с помощью набора тестов спецификации .

Чтобы предоставить больше функций WebGPU, Deno также добавилstd/webgpu.

Более гибкая поддержка динамического импорта.

В этом выпускеdeno compile теперь поддерживается больше режимов динамического импорта. Динамический импорт был сложной задачей, поскольку Deno необходимо статически включать все модули, которые могут быть импортированы во время выполнения во время компиляции. Deno теперь может обрабатывать более сложные шаблоны динамического импорта, такие как операторы импорта с использованием строк шаблона.

Улучшения Deno Language Server (LSP)

Чтобы повысить производительность языкового сервера Deno, в версии 1.39 представлены значительные улучшения производительности. Это включает в себя оптимизацию обработки больших запросов во время быстрого набора текста, что делает процесс редактирования в IDE более плавным. Кроме того, были добавлены новый механизм тайм-аута выключения и последняя версия функции уведомления об обновлении Deno.

Улучшения совместимости Node.js

В версии 1.39 представлена ​​поддержка нестандартного импорта, чтобы облегчить миграцию существующих баз кода TypeScript в Deno. Например, он позволяет разрешать импорт без расширения файла или файлы TypeScript, импортированные с неправильным расширением файла. Кроме того, добавлена ​​поддержка запуска исполняемых файлов в каталоге node_modules/.bin/ в deno task.

Изменения API Deno

Новая версия также включает несколько изменений в API Deno. Например, Deno.serve() стабилизирована поддержка сокетов Unix, а Deno.HttpServer.shutdown() стабилизирована. Кроме того, была введена Deno.HttpClientподдержка ключевых слов использования, а также Deno.Kv.watch() API для уведомлений об изменениях.

Другие функции и исправления

Версия 1.39 также включает множество других новых функций и исправлений, таких как поддержка TypeScript 5.3, поддержка форматирования блоков кода в блокнотах Jupyter, а также многочисленные обновления и исправления ошибок API Node.js.

Вместе эти обновления и улучшения повышают производительность, гибкость и совместимость Deno, делая его еще более мощной и универсальной платформой для разработки современных приложений JavaScript и TypeScript.

Guess you like

Origin www.oschina.net/news/271157/deno-1-39-released