diff --git a/Grid/qcd/action/fermion/CayleyFermion5D.cc b/Grid/qcd/action/fermion/CayleyFermion5D.cc index ad732825..ecb87b2f 100644 --- a/Grid/qcd/action/fermion/CayleyFermion5D.cc +++ b/Grid/qcd/action/fermion/CayleyFermion5D.cc @@ -163,10 +163,16 @@ template void CayleyFermion5D::CayleyReport(void) std::cout << GridLogMessage << "CayleyFermion5D Number of M5D Calls : " << M5Dcalls << std::endl; std::cout << GridLogMessage << "CayleyFermion5D ComputeTime/Calls : " << M5Dtime / M5Dcalls << " us" << std::endl; - // Flops = 6.0*(Nc*Ns) *Ls*vol - RealD mflops = 6.0*12*volume*M5Dcalls/M5Dtime/2; // 2 for red black counting + // Flops = 10.0*(Nc*Ns) *Ls*vol + RealD mflops = 10.0*(Nc*Ns)*volume*M5Dcalls/M5Dtime/2; // 2 for red black counting std::cout << GridLogMessage << "Average mflops/s per call : " << mflops << std::endl; std::cout << GridLogMessage << "Average mflops/s per call per rank : " << mflops/NP << std::endl; + + // Bytes = sizeof(RealD) * (Nc*Ns*Nreim) * Ls * vol * (read+write) (/2 for red black counting) + // read = 2 ( psi[ss+s+1] and psi[ss+s-1] count as 1 ) + // write = 1 + RealD Gbytes = sizeof(RealD) * (Nc*Ns*2) * volume * 3 /2. * 1.e-9; + std::cout << GridLogMessage << "Average bandwidth (GB/s) : " << Gbytes/M5Dtime*M5Dcalls*1.e6 << std::endl; } if ( MooeeInvCalls > 0 ) {