From f4c85ce9663d2a0bb809651d25deec4ed7a5fe4b Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sun, 9 Jun 2019 00:21:47 +0200 Subject: Add periodic performance reporting --- implosion.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/implosion.py b/implosion.py index 491e2ff..e33f1a8 100644 --- a/implosion.py +++ b/implosion.py @@ -183,6 +183,9 @@ class D2Q9_BGK_Lattice: self.tick = True self.program.collide_and_stream(self.queue, (self.nX,self.nY), (64,1), self.cl_pop_b, self.cl_pop_a, self.cl_moments, self.cl_material) + def sync(self): + self.queue.finish() + def show(self, i): cl.enqueue_copy(LBM.queue, LBM.np_moments, LBM.cl_moments).wait(); @@ -198,24 +201,23 @@ class D2Q9_BGK_Lattice: def MLUPS(cells, steps, time): return cells * steps / time * 1e-6 -LBM = D2Q9_BGK_Lattice(1024, 1024) - nUpdates = 1000 +nStat = 100 -start = time.time() +print("Initializing simulation...\n") -for i in range(0,nUpdates): - LBM.evolve() +LBM = D2Q9_BGK_Lattice(1024, 1024) -LBM.queue.finish() +print("Starting simulation using %d cells...\n" % LBM.nCells) -end = time.time() +lastStat = time.time() -LBM.show(nUpdates) +for i in range(1,nUpdates+1): + if i % nStat == 0: + LBM.sync() + print("i = %4d; %3.0f MLUPS" % (i, MLUPS(LBM.nCells, nStat, time.time() - lastStat))) + lastStat = time.time() -runtime = end - start + LBM.evolve() -print("Cells: " + str(LBM.nCells)) -print("Updates: " + str(nUpdates)) -print("Time: " + str(runtime)) -print("MLUPS: " + str(MLUPS(LBM.nCells, nUpdates, end - start))) +LBM.show(nUpdates) -- cgit v1.2.3