これは特定の問題です。私は最近、gpu.jsをテストしました。このライブラリは、計算を並列化するためにwebglを使って計算を高速化することになっています。私は簡単なテスト製:GPUのパラレル化が遅くなる
var gpu = new GPU();
function product(v, u) {
return gpu.createKernel(function(X, Y) {
return X[this.thread.x] * Y[this.thread.x];
}).dimensions([v.length])(v, u);
}
var before = new Date().getTime();
console.log(product(numeric.random([100000]), numeric.random([100000])).length);
console.log('Parallel Time: ', (new Date().getTime()) - before);
before = new Date().getTime();
v = numeric.random([100000])
u = numeric.random([100000])
for(var i = 0; i < v.length; i++){
v[i] = v[i] * u[i];
}
console.log(v.length);
console.log('Procedural Time: ', (new Date().getTime()) - before);
をそして次の出力ました:
script.js:11 100000
script.js:12 Parallel Time: 340
script.js:20 100000
script.js:21 Procedural Time: 15
並列時間が遅く桁を超えているが。これがどうなるのか何らかの理由がありますか?私は、GPUの異なるいくつかのマシンでこれを試しました。私は同様の操作をいくつか試みました。間違ったことをやっているのですか、それとも図書館に問題がありますか?私はこれを改善できる方法はありますか?
「http:// gpu.rocks /」でベンチマークを実行すると、大幅に加速しますか? –
ええ、私はそれをもともとやったし、私は5.72倍速くなった。私は何が間違っているのか分かりません。 – user5505266