gpu.js - WebブラウザでGPUを手軽に扱えるようにするライブラリ
GPUは単純な計算処理などを行うのに適しています。アニメーションのような処理も得意です。最近ではAIのモデル作成などにGPUが注目されていますが、CSS3アニメーションなどWebブラウザでも利用できる場面が数多くあります。 今回紹介するgpu.jsはそんなGPUによる計算処理を手軽に実現できるようにするJavaScriptライブラリです。
gpu.jsの使い方
gpu.jsを使ったコードは次のようになります。
const gpu = new GPU();
// Create the GPU accelerated function from a kernel
// function that computes a single element in the
// 512 x 512 matrix (2D array). The kernel function
// is run in a parallel manner in the GPU resulting
// in very fast computations! (...sometimes)
const matMult = gpu.createKernel(function(a, b) {
var sum = 0;
for (var i = 0; i < 512; i++) {
sum += a[this.thread.y][i] * b[i][this.thread.x];
}
return sum;
}).setDimensions([512, 512]);
// Perform matrix multiplication on 2 matrices of size 512 x 512
const c = matMult(a, b);
この処理をgpu.jsで行ったところです。
CPUとの比較で約5.5倍GPUのが高速となっています。特に単純な計算処理においてGPUのが高速というのが分かります。このように向き不向きはありますが、gpu.jsを使うことでJavaScript全体の処理を高速化できる可能性がありそうです。
gpu.jsはJavaScripts製のオープンソース・ソフトウェア(MIT License)です。
gpu.js - GPU Accelerated JavaScript gpujs/gpu.js: GPU Accelerated JavaScript