System.out.println(_modes[_imode]+": frames/sec = "+rate); _npaint = 0; _stopwatch.restart(); ++_imode; if (_imode==_modes.length)
int nmul; s.restart(); for (nmul=0; s.time()<maxtime; ++nmul) mul1(a,b,c1); System.out.println("mul1: rate="+(int)(nmul*mflops/s.time())+" mflops"); s.restart(); for (nmul=0; s.time()<maxtime; ++nmul) mul2(a,b,c2); System.out.println("mul2: rate="+(int)(nmul*mflops/s.time())+" mflops"); s.restart(); for (nmul=0; s.time()<maxtime; ++nmul) mul3(a,b,c3); System.out.println("mul3: rate="+(int)(nmul*mflops/s.time())+" mflops"); s.restart(); for (nmul=0; s.time()<maxtime; ++nmul) mul4(a,b,c4); s.restart(); for (nmul=0; s.time()<maxtime; ++nmul) mul5(a,b,c5);
Stopwatch sw = new Stopwatch(); for (int niter=0; niter<5; ++niter) { sw.restart(); for (n=0; sw.time()<maxtime; ++n) filter1(b0,b1,b2,a1,a2,x,y); System.out.println("filter1: rate="+rate+" sum="+sum); sw.restart(); for (n=0; sw.time()<maxtime; ++n) filter2a(b0,b1,b2,a1,a2,x,y); System.out.println("filter2a: rate="+rate+" sum="+sum); sw.restart(); for (n=0; sw.time()<maxtime; ++n) filter2b(b0,b1,b2,a1,a2,x,y);
public void benchAddNode() { java.util.Random random = new java.util.Random(); for (int itest=0; itest<3; ++itest) { for (int nnode=1000; nnode<=64000; nnode*=2) { Stopwatch sw = new Stopwatch(); sw.restart(); TriMesh tm = new TriMesh(); for (int inode=0; inode<nnode; ++inode) { float x = random.nextFloat(); float y = random.nextFloat(); TriMesh.Node node = new TriMesh.Node(x,y); tm.addNode(node); } sw.stop(); System.out.println( "Added "+nnode+" nodes to make "+tm.countTris() + " tris in "+sw.time()+" seconds."); tm.validate(); } try { System.out.println("Sleeping"); Thread.sleep(5000,0); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
sw.restart(); sum = 0.0f; for(nf=0; sw.time()<1.0; ++nf) rate = nf/sw.time(); System.out.println(" uniform: float/s="+rate+" sum="+sum); sw.restart(); sum = 0.0f; for(nf=0; sw.time()<1.0; ++nf) sw.restart(); sum = 0.0f; for(nf=0; sw.time()<1.0; ++nf) rate = nf/sw.time(); System.out.println(" uniform: float/s="+rate+" sum="+sum); sw.restart(); sum = 0.0f; for(nf=0; sw.time()<1.0; ++nf)
float ss = 0.0f; float sp = 0.0f; sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) ss = sumS(a[0]); rate = (int)((niter*mflop2)/sw.time()); System.out.println("2D S: rate = "+rate); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sp = sumP(a[0]); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) ss = sumS(a); rate = (int)((niter*mflop3)/sw.time()); System.out.println("3D S: rate = "+rate); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sp = sumP(a);
private static void benchMatrixMultiply() { int m = 1001; int n = 1002; System.out.println("Matrix multiply for m="+m+" n="+n); float[][] a = randfloat(n,m); float[][] b = randfloat(m,n); float[][] cs = zerofloat(m,m); float[][] cp = zerofloat(m,m); int niter,rate; double maxtime = 5.0; double mflop = 2.0e-6*m*m*n; Stopwatch sw = new Stopwatch(); for (int ntest=0; ntest<3; ++ntest) { sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) { matrixMultiplySerial(a,b,cs); } sw.stop(); rate = (int)((niter*mflop)/sw.time()); System.out.println("S: rate = "+rate+" mflops"); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) { matrixMultiplyParallel(a,b,cp); } sw.stop(); rate = (int)((niter*mflop)/sw.time()); System.out.println("P: rate = "+rate+" mflops"); } } private static void matrixMultiplySerial(
float[][][] bp = copy(a); for (int ntest=0; ntest<3; ++ntest) { sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sqrS(a[0],bs[0]); rate = (int)((niter*mflop2)/sw.time()); System.out.println("2D S: rate = "+rate); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sqrP(a[0],bp[0]); System.out.println("2D P: rate = "+rate); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sqrS(a,bs); rate = (int)((niter*mflop3)/sw.time()); System.out.println("3D S: rate = "+rate); sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) sqrP(a,bp);
sw.restart(); for (int i=0; i<n; ++i) rt.add(ps[i]); sw.stop(); System.out.println("RTree add points/sec="+(int)(n/sw.time())); sw.restart(); for (int i=0; i<n; ++i) st.add(ps[i]); float[] point = new float[3]; int nr = 0; for (sw.restart(); sw.time()<time; ++nr) { Point p = ps[nr%n]; point[0] = p.x; point[1] = p.y; point[2] = p.z; System.out.println("RTree findInSphere/sec = "+(int)(nr/sw.time())); int ns = 0; for (sw.restart(); sw.time()<time; ++ns) { Point p = ps[nr%n]; point[0] = p.x; point[1] = p.y; point[2] = p.z;
private static void bench3() { int n1 = 501; int n2 = 502; int n3 = 503; Random r = new Random(314159); float[][][] x = randfloat(r,n1,n2,n3); float[][][] y = randfloat(r,n1,n2,n3); RecursiveGaussianFilter rf = new RecursiveGaussianFilter(3.0f); int niter; double maxtime = 5.0; double nsample = (double)n1*(double)n2*(double)n3; Stopwatch sw = new Stopwatch(); for (int itest=0; itest<3; ++itest) { sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) rf.apply000(x,y); sw.stop(); float sum = sum(y); int rate = (int)(1.0e-6*niter*nsample/sw.time()); System.out.println("rate = "+rate+" sum = "+sum); } } }
Stopwatch sw = new Stopwatch(); for (int itest=0; itest<3; ++itest) { sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) ldf.apply(d,0.5f,s,x,y);
Stopwatch sw = new Stopwatch(); for (int itest=0; itest<3; ++itest) { sw.restart(); for (niter=0; sw.time()<maxtime; ++niter) ldf.apply(d,0.5f,s,x,y);
makeQuads(_nq*2); _stopwatch.restart();
_stopwatch.restart();
sw.restart(); sleep(sleepTime); sw.stop();