Mult test

This commit is contained in:
Fazli Sapuan 2016-01-23 19:05:10 +08:00
parent 37e5ef986f
commit cd971d61b7
3 changed files with 64 additions and 2 deletions

View File

@ -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);

View 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
View 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");
});