mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-25 16:08:02 +00:00
Mult test
This commit is contained in:
parent
37e5ef986f
commit
cd971d61b7
@ -9,6 +9,22 @@
|
||||
// }
|
||||
|
||||
var GPU_jsFallback = (function() {
|
||||
function clone(obj) {
|
||||
if(obj === null || typeof(obj) !== 'object' || 'isActiveClone' in obj)
|
||||
return obj;
|
||||
|
||||
var temp = obj.constructor(); // changed
|
||||
|
||||
for(var key in obj) {
|
||||
if(Object.prototype.hasOwnProperty.call(obj, key)) {
|
||||
obj['isActiveClone'] = null;
|
||||
temp[key] = clone(obj[key]);
|
||||
delete obj['isActiveClone'];
|
||||
}
|
||||
}
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
/// JS fallback transformation, basically pure JS
|
||||
///
|
||||
@ -19,8 +35,8 @@ var GPU_jsFallback = (function() {
|
||||
///
|
||||
/// @returns callable function if converted, else returns null
|
||||
function jsFallback(kernel, _threadDim, _blockDim, paramObj) {
|
||||
var threadDim = new Array(_threadDim);
|
||||
var blockDim = new Array(_blockDim);
|
||||
var threadDim = clone(_threadDim);
|
||||
var blockDim = clone(_blockDim);
|
||||
|
||||
while (threadDim.length < 3) {
|
||||
threadDim.push(1);
|
||||
|
||||
22
test/html/basic_mult_AB.html
Normal file
22
test/html/basic_mult_AB.html
Normal file
@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>GPU.JS : Basic Sum AB</title>
|
||||
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
|
||||
|
||||
<!-- jison -->
|
||||
<script src="../../lib/jison.js"></script>
|
||||
|
||||
<!-- gpu.js scripts -->
|
||||
<script src="../../src/js-fallback.js"></script>
|
||||
<script src="../../src/js-to-webclgl.js"></script>
|
||||
<script src="../../src/gpu.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
<script src="../lib/qunit-1.20.0.js"></script>
|
||||
<script src="../src/basic_mult_AB.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
24
test/src/basic_mult_AB.js
Normal file
24
test/src/basic_mult_AB.js
Normal file
@ -0,0 +1,24 @@
|
||||
QUnit.test( "basic_sum_AB (auto)", function( assert ) {
|
||||
var f = GPU(function(a, b) {
|
||||
var sum = 0;
|
||||
for (var k=0; k<3; k++) {
|
||||
sum += a[this.thread.y][k] * b[k][this.thread.x];
|
||||
}
|
||||
return sum;
|
||||
}, {
|
||||
thread : [3, 3],
|
||||
block : [1, 1]
|
||||
});
|
||||
|
||||
assert.ok( f !== null, "function generated test");
|
||||
assert.deepEqual(f(
|
||||
[[1, 2, 3],
|
||||
[4, 5, 6],
|
||||
[7, 8, 9]],
|
||||
[[1, 2, 3],
|
||||
[4, 5, 6],
|
||||
[7, 8, 9]]),
|
||||
[[30, 36, 42],
|
||||
[66, 81, 96],
|
||||
[102, 126, 150]], "basic mult function test");
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user