2023-05-12
GPUを気軽に使えるライブラリ、GPGPU.js で、1億コの三角関数計算をしてみました。


「GPGPU simple benchmark by WebGL」
GPUとCPUでそれぞれ1億コの三角関数sinを計算して、その結果を表示します。
M1 MacBook Proで、GPU 200msec、CPU 800msec (JavaScript)という感じでした。


「code4fukui/GPGPU-examples」

GPGPU.jsのプログラムはオープンソース。いつものようにGitHubにあります。 import { GPGPU } from "./GPGPU.js"; const vstf = `#version 300 es in float position; out float vPosition; void main() { vPosition = sin(position); } `; const len = 10000 * 10000; const position = new Float32Array(len); for (let i = 0; i < len; i++) { position[i] = i; } const vPosition = new Float32Array(position.length); const gpu = new GPGPU(null, vstf, { position }, { vPosition }); const st1 = performance.now(); const res1 = gpu.calc(); const dt1 = performance.now() - st1; console.log(gpu.inv.position, gpu.outv.vPosition); result.innerHTML = `GPU: ${dt1.toFixed(1)}msec`; コアのコード、GLSL言語で、三角関数sinの計算をしています

vPosition = sin(position);

links
- ブラウザ上で気軽に汎用並列計算するライブラリ GPGPU.js by GLSL.js
- 神山まるごと高専ITブートキャンプおまけ1、アートで学ぶC言語の親戚GLSLで学ぶ変数と計算

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS