Deno 1.39:WebGPU 回归


Deno的1.39版本发布标志着该平台的一个重要更新,其中包含多项引人注目的改进和新特性。

WebGPU的回归

Deno 1.39重新引入了WebGPU API的支持,这一决定标志着对于高性能、跨架构的GPU编程在JavaScript中的重要进展。WebGPU API,被视为WebGL的有效继承者,为开发者提供了一种低级别、高性能的方式来直接编程GPU硬件。此规范已被最终确定,并且已经在Chrome浏览器中提供。Firefox和Safari也正在进行相关支持的开发工作。

Deno最初在2021年初引入了WebGPU的支持,但由于性能问题,这一特性在今年早些时候被移除。现在,这些性能问题已经得到解决,重新引入了WebGPU。GPU在执行某些数值运算方面,相比于CPU,能够提供极高的并行处理能力。这一点不仅在渲染和游戏中非常有用,也在诸如机器学习算法这样的应用中展现出极高的效率,因为这些算法通常可以被表达为一系列矩阵运算,而这些运算可以在GPU上高效执行。

Deno中的WebGPU实现基于即将在Firefox中推出的WebGPU实现的同一底层系统,因此,开发者可以有信心地在这一基础上构建应用。

以下是一个使用WebGPU获取GPU信息的基本示例代码:

// 尝试从用户代理获取适配器。
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仓库中查看。

尽管规范已稳定,但在Deno中,WebGPU仍然被视为不稳定。要在Deno中使用WebGPU,需要使用--unstable-webgpu标志。Deno团队计划在从社区获得更多反馈,并有更多时间对实现与规范测试套件进行验证后,很快将其稳定下来。

为了提供更多的WebGPU功能,Deno还添加了std/webgpu

更灵活的动态导入支持

在此版本中,deno compile现在支持更多动态导入模式。由于Deno需要在编译过程中静态包含所有可能在运行时被导入的模块,因此动态导入曾是一个挑战。现在,Deno能够处理更复杂的动态导入模式,例如使用模板字符串的导入语句。

Deno语言服务器(LSP)的增强

为了提升Deno语言服务器的性能,1.39版本引入了显著的性能改进。这包括优化了快速打字期间大量请求的处理,使在IDE中的编辑体验更为流畅。此外,新增了一个关机超时机制,以及最新版本的Deno更新通知功能。

Node.js兼容性改进

1.39版本为了方便将现有的TypeScript代码库迁移到Deno,引入了对不规范导入的支持。例如,它允许在没有文件扩展名的情况下解析导入,或者使用不正确的文件扩展名导入TypeScript文件。此外,还增加了对node_modules/.bin/目录中可执行文件在deno task中的运行支持。

Deno API的变更

新版本中也包括了对Deno API的若干更改。例如,对于Unix套接字的Deno.serve()支持已稳定化,以及Deno.HttpServer.shutdown()的稳定化。此外,引入了Deno.HttpClient的使用关键字支持,以及对变更通知的Deno.Kv.watch() API。

其他特性和修复

1.39版本还包括了其他许多新特性和修复,如TypeScript 5.3的支持,对Jupyter笔记本中代码块的格式化支持,以及多项对Node.js API的更新和错误修复。

这些更新和改进共同提升了Deno的性能、灵活性和兼容性,使其成为开发现代JavaScript和TypeScript应用程序的一个更加强大和多功能的平台。


相關推薦

2023-03-24

API 的改变 现在支持 URLSearchParams.size() 移除不稳定的 WebGPU API。支持 WebGPU 引入了成本,使所有用户的 deno 二进制文件变得更大,启动速度更慢,即使用户并没有使用它。 TypeScript 5.0 Deno v1.32 搭载了 TypeScript 的最新稳定

2022-05-26

JavaScript 的创造者,同时也是 Mozilla 联合创始人。 Brave 1.39 发布,更新内容如下: 增加了对 Solana 账户创建的支持 为 Brave Wallet 的 API 帮助请求添加了 JSONSanitizer 为 Brave News 增加了允许用户搜索网站 RSS 源的功能 增加了

2023-04-08

Chrome 团队宣布,经过多年的开发,他们终于发布了 WebGPU 实现,目前已在 Chrome 113 Beta 中默认启用。WebGPU 可用于在 Web 上进行高性能 3D 图形和数据并行计算。 WebGPU 初始版本可以在 ChromeOS、macOS 和 Windows 上使用,对其他平台的支

2023-05-21

Rust 游戏引擎 Bevy 主分支添加了对 WebGPU 的支持,因此基于 Bevy 开发的游戏编译成 wasm 后,在 Web 上可使用 WebGPU 进行渲染,从而实现高效的大型 3D 效果。 WebGPU 是由 W3C GPU for the Web 社区组所发布的规范,目标是允许网页代码以

2023-04-17

LM。“一切都在浏览器内运行,无需服务器支持,并使用 WebGPU 加速。这开辟了许多有趣的机会,可以为每个人构建 AI 助手,并在享受 GPU 加速的同时实现隐私。” 查看演示网页以进行试用 生成式 AI 和 LLM 方面最近的发展如

2023-01-29

Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.30 已发布,值得关注的更新包括: 对内置 Node.js 模块的支持 在 Deno 中,npm 包已经可以通过 Deno 的 Node.js 兼容层访问内置的 Node.js

2022-08-29

Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.25 已发布,值得关注的更新包括: deno init 子命令 用 Deno 启动一个新的项目一直很简单:你只需要一个文件就可以开始了。不需要

2022-11-17

Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.28 已发布,值得关注的更新包括: npm Deno 1.28 稳定了 npm 兼容性,这意味着你现在可以在 Deno 中导入超过 130 万个 npm 模块。构建应

2023-02-27

Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.31 正式发布,值得关注的更新包括: 支持package.json Deno 现在会自动检测到 package.json 并使用它来安装和解决使用的依赖关系

2023-05-27

Deno 1.34 已正式发布,主要更新内容是优化与 npm 和 Node.js 的兼容性,从而整体提升开发者体验,并为未来的性能增强奠定基础。 值得关注的变化: deno compile支持 npm 包 从 Deno v1.6 开始, deno compile支持将项目编译成单个

2022-06-18

Deno 1.23 已发布,值得关注的更新包括: 默认不进行类型检查 当要求执行一个程序时,Deno 总是运行一个类型检查。然而,评估和类型检查是完全不同的操作,涉及完全不同的编译器,每个编译器的执行速度也完全不同。评估代

2023-07-07

2023 年 7 月 5 日,Deno 团队发布了 Deno 1.35 版本。此次更新的目的是使程序开发尽量简单,因此运行时内置强大的工具链、原生 TypeScript 支持和 Web 标准 API,可以跳过配置和学习新 API,并立即开始工作。 此次版本更新带来如下改

2023-05-02

Deno 1.33 已发布。与此同时,官方宣布了 Deno 2 的消息,称将于未来几个月内发布,并介绍了关于此版本的开发目标: 提升编码效率:无论是删除配置、样板代码还是构建步骤,团队都在持续让开发者轻松地深入研究代码并立

2022-06-23

Deno 运行时背后的同名开发商 Deno 于昨日宣布,它已完成了由红杉领导的 2100 万美元的 A 轮融资,使其融资总额达到 2600 万美元。Deno 首席执行官 Ryan Dahl 表示,此轮融资将帮助他们用于构建 Deno 的商业产品 —— Deno Deploy,并同