gpujs/gpu.js

GPU Accelerated JavaScript

解决的问题

GPU.js 是一个 JavaScript 加速库,可在 Web 和 Node.js 环境中实现 GPU 上的通用计算(GPGPU)。它允许开发者在 GPU 上运行计算密集型任务——如矩阵乘法、卷积和模拟——相比在 CPU 上执行常规 JavaScript,性能可提升 1-15 倍甚至更多。

工作原理

该库会自动将简单的 JavaScript 函数(称为内核)转换为着色器语言(如 GLSL 或 WGSL),并编译为可在 GPU 上运行的代码。它支持多种后端,包括通过 WGSL 计算着色器的 WebGPU、WebGL2、WebGL,以及用于 Node.js 的 HeadlessGL。如果无法使用 GPU,它会提供保证的回退方案:纯 JavaScript(CPU 后端)或使用 SIMD 和线程的 WebAssembly。

适用人群

专为希望在不手动编写复杂着色器代码的情况下加速其应用的 JavaScript 和 TypeScript 开发者设计。它也作为学习 GPGPU 编程基础的教学工具使用。

主要亮点

  • 自动转换:将 JS 函数转换为 GPU 内核。
  • 多后端支持:支持 WebGPU、WebGL、WebGL2 和 HeadlessGL。
  • 跨平台:可在浏览器和 Node.js 中运行。
  • 流水线处理:允许将中间结果保留在 GPU 上,避免昂贵的回读到 CPU 的操作。
  • 以异步优先的架构:正向异步 API(v3)演进,以更好地利用 WebGPU 并防止主线程冻结。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目