diff --git a/TensorFlow/tf1pi.html b/TensorFlow/tf1pi.html index e8e0513a2c741e24dc6652d7775d8266b24a48bd..35fd59051d92adab90e47a622dac015d1cb814ac 100644 --- a/TensorFlow/tf1pi.html +++ b/TensorFlow/tf1pi.html @@ -3,7 +3,7 @@ <script src=tf.min.js></script> <script> // -// tfpi.html +// tf1pi.html // Neil Gershenfeld 11/18/18 // Nikhil Thorat 11/20/18 // TensorFlow.js pi calculation benchmark diff --git a/TensorFlow/tf2pi.html b/TensorFlow/tf2pi.html index f1c5097686501792e3fa36b57725aa9307cd357b..a66c38e002fdeee5791a6d6b2ddceee334dd5f36 100644 --- a/TensorFlow/tf2pi.html +++ b/TensorFlow/tf2pi.html @@ -3,7 +3,7 @@ <script src=tf.min.js></script> <script> // -// tfpi.html +// tf2pi.html // Neil Gershenfeld 11/18/18 // Nikhil Thorat 11/20/18 // TensorFlow.js pi calculation benchmark diff --git a/TensorFlow/tf3pi.html b/TensorFlow/tf3pi.html new file mode 100644 index 0000000000000000000000000000000000000000..933036d361ccabc41ce477a71f61f7e890c9b64a --- /dev/null +++ b/TensorFlow/tf3pi.html @@ -0,0 +1,62 @@ +<html> +<body> +<script src=tf.min.js></script> +<script> +// +// tf3pi.html +// Neil Gershenfeld 11/18/18 +// Ann Yuan 11/30/18 +// TensorFlow.js pi calculation benchmark +// pi = 3.14159265358979323846 +// +const points = 1e7 +const a = tf.scalar(0.5) +const b = tf.scalar(0.75) +const c = tf.scalar(0.25) + +const batchSize = 100; +const computeSum = []; + +for(let i=1; i<batchSize; i++) { + computeSum.push(`compute(i * ${batchSize}. + ${i}.)`); +} + +const divMulIndexSubProgram = { + variableNames: ['a', 'b', 'c'], + outputShape: [points / batchSize], + userCode: ` + float compute(float i) { + return a / ((i - b) * (i - c)); + } + + void main() { + float i = float(getOutputCoords()); + setOutput(${computeSum.join(' + ')}); + } + ` +} + +function divMulIndexSub(x, y, z) { + return tf.ENV.backend.compileAndRun(divMulIndexSubProgram, [a, b, c]); +} + +function f() { + return tf.sum(divMulIndexSub(b, c, a)).dataSync(); +} + +// Warmup +f() + +const tstart = performance.now()/1000 +//const sum = tf.range(1,points) +const sum = f() +//const sum = f(); +const tend = performance.now()/1000 +const mflops = points*5.0*1e-6/(tend-tstart); +document.write('pi: '+sum.toString()) +document.write('<br>') +document.write('time: '+(tend-tstart)+'s') +document.write('<br>') +document.write('estimated MFlops: '+mflops) +</script> +