<html> <body> <script src=tf.min.js></script> <script> // // tf2pi.html // Neil Gershenfeld 11/18/18 // Nikhil Thorat 11/20/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 indexSubProgram = { variableNames: ['X'], outputShape: [points], userCode: ` void main() { float x = getX(); int i = getOutputCoords(); float value = float(i) - x; setOutput(value); } ` } function indexSub(x) { return tf.ENV.backend.compileAndRun(indexSubProgram, [x]); } function f(index) { // const index = tf.range(1,points) return tf.sum(tf.div(a,tf.mul(indexSub(b),indexSub(c)))).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>