gpujs/gpu.js
GPU Accelerated JavaScript
何を解決するか
GPU.js は、Web および Node.js 環境で GPU 上での一般目的計算(GPGPU)を可能にする JavaScript の高速化ライブラリです。行列乗算、畳み込み、シミュレーションなどの計算負荷の高いタスクを GPU で実行することで、通常の JavaScript 実行(CPU)と比較して、しばしば 1~15 倍以上のパフォーマンス向上を実現できます。
動作方法
このライブラリは、単純な JavaScript 関数(カーネルと呼ばれる)を自動的にシェーダ言語(GLSL や WGSL など)にトランスパイルし、GPU 上で実行可能な形式にコンパイルします。WebGPU(WGSL コンピュートシェーダ経由)、WebGL2、WebGL、および Node.js 用の HeadlessGL などの複数のバックエンドをサポートしています。GPU が利用できない場合、プレーンな JavaScript(CPU バックエンド)または SIMD とスレッドを活用した WebAssembly への保証されたフォールバックが提供されます。
対象ユーザー
複雑なシェーダコードを手動で書く必要なく、アプリケーションを GPU で高速化したい JavaScript および TypeScript 開発者向けに設計されています。また、GPGPU プログラミングの基礎を学ぶための教育ツールとしても使用されています。
特徴
- 自動トランスパイル:JS 関数を GPU カーネルに変換。
- 複数のバックエンド:WebGPU、WebGL、WebGL2、HeadlessGL をサポート。
- クロスプラットフォーム:ブラウザおよび Node.js で動作。
- パイプライン処理:中間結果を GPU 上に保持することで、CPU への高コストな読み込みを回避。
- 非同期優先アーキテクチャ:WebGPU の利点を最大限に活かし、メインスレッドのフリーズを防ぐために、v3 で非同期 API へ移行中。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト