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 並防止主執行緒凍結。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案