diff --git a/benchmarks/Benchmark_dwf_fp32.cc b/benchmarks/Benchmark_dwf_fp32.cc index 03f3ee61..50cbbc98 100644 --- a/benchmarks/Benchmark_dwf_fp32.cc +++ b/benchmarks/Benchmark_dwf_fp32.cc @@ -28,22 +28,21 @@ #ifdef CUDA_PROFILE #include #endif +#include +#include +#include using namespace std; using namespace Grid; -template -struct scal { - d internal; -}; +typedef DirichletFermionOperator DirichletFermionF; - Gamma::Algebra Gmu [] = { +Gamma::Algebra Gmu [] = { Gamma::Algebra::GammaX, Gamma::Algebra::GammaY, Gamma::Algebra::GammaZ, Gamma::Algebra::GammaT - }; - +}; int main (int argc, char ** argv) { @@ -61,20 +60,17 @@ int main (int argc, char ** argv) GridLogLayout(); + Coordinate latt = GridDefaultLatt(); + Coordinate mpi = GridDefaultMpi(); + Coordinate simd = GridDefaultSimd(Nd,vComplexF::Nsimd()); + long unsigned int single_site_flops = 8*Nc*(7+16*Nc); - - GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(), GridDefaultSimd(Nd,vComplexF::Nsimd()),GridDefaultMpi()); + GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(latt,simd,mpi); GridRedBlackCartesian * UrbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(UGrid); GridCartesian * FGrid = SpaceTimeGrid::makeFiveDimGrid(Ls,UGrid); GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,UGrid); - std::cout << GridLogMessage << "Making s innermost grids"< seeds4({1,2,3,4}); std::vector seeds5({5,6,7,8}); @@ -292,7 +288,6 @@ int main (int argc, char ** argv) std::cout< boundary = {1,1,1,-1}; + DomainWallFermionF::ImplParams DirichletParams(boundary); + DirichletParams.locally_periodic=true; + DomainWallFermionF DwDirichlet(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,DirichletParams); + DirichletFermionF Dirichlet(DwDirichlet,local,nil); + + { + FGrid->Barrier(); + Dirichlet.DhopEO(src_o,r_e,DaggerNo); + DwDirichlet.ZeroCounters(); + double t0=usecond(); + for(int i=0;iBarrier(); + + double volume=Ls; for(int mu=0;mu