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 并防止主线程冻结。
相关
- 项目
- 项目
- 项目
- 项目
- 项目