1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-17 07:17:06 +01:00

Merge branch 'develop' of https://github.com/paboyle/Grid into feature/staggering

This commit is contained in:
Azusa Yamaguchi
2016-12-14 09:23:22 +00:00
8 changed files with 257 additions and 127 deletions

View File

@ -41,7 +41,7 @@ int main (int argc, char ** argv)
std::cout<<GridLogMessage << "Grid is setup to use "<<threads<<" threads"<<std::endl;
std::vector<int> latt4 = GridDefaultLatt();
const int Ls=8;
const int Ls=16;
GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(), GridDefaultSimd(Nd,vComplex::Nsimd()),GridDefaultMpi());
GridRedBlackCartesian * UrbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(UGrid);
GridCartesian * FGrid = SpaceTimeGrid::makeFiveDimGrid(Ls,UGrid);
@ -70,7 +70,7 @@ int main (int argc, char ** argv)
if (1)
{
const int ncall=100;
const int ncall=1000;
std::cout << GridLogMessage<< "*********************************************************" <<std::endl;
std::cout << GridLogMessage<< "* Benchmarking DomainWallFermionR::Dhop "<<std::endl;
@ -81,18 +81,7 @@ int main (int argc, char ** argv)
LatticeFermion result(FGrid);
DomainWallFermionR Dw(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
FGrid->Barrier();
double t0,t1;
t0=usecond();
for(int i=0;i<ncall;i++){
Dw.Dhop(src,result,0);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Dhop "<< (t1-t0)/ncall<<" us"<<std::endl;
LatticeFermion r_eo(FGrid);
LatticeFermion src_e (FrbGrid);
@ -109,48 +98,46 @@ int main (int argc, char ** argv)
r_e = zero;
r_o = zero;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.DhopEO(src_o, r_e, DaggerNo);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called DhopEO "<< (t1-t0)/ncall<<" us"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.Mooee(src_o, r_o);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Mooee "<< (t1-t0)/ncall<<" us"<<std::endl;
#define BENCH_DW(A,in,out) \
Dw.CayleyZeroCounters(); \
Dw. A (in,out); \
FGrid->Barrier(); \
t0=usecond(); \
for(int i=0;i<ncall;i++){ \
Dw. A (in,out); \
} \
t1=usecond(); \
FGrid->Barrier(); \
Dw.CayleyReport(); \
std::cout<<GridLogMessage << "Called " #A " "<< (t1-t0)/ncall<<" us"<<std::endl;\
std::cout<<GridLogMessage << "******************"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.MooeeInv(src_o, r_o);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called MooeeInv "<< (t1-t0)/ncall<<" us"<<std::endl;
#define BENCH_DW_MEO(A,in,out) \
Dw.CayleyZeroCounters(); \
Dw. A (in,out,0); \
FGrid->Barrier(); \
t0=usecond(); \
for(int i=0;i<ncall;i++){ \
Dw. A (in,out,0); \
} \
t1=usecond(); \
FGrid->Barrier(); \
Dw.CayleyReport(); \
std::cout<<GridLogMessage << "Called " #A " "<< (t1-t0)/ncall<<" us"<<std::endl;\
std::cout<<GridLogMessage << "******************"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.Meooe(src_o, r_e);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Meooe "<< (t1-t0)/ncall<<" us"<<std::endl;
BENCH_DW_MEO(Dhop ,src,result);
BENCH_DW_MEO(DhopEO ,src_o,r_e);
BENCH_DW(Meooe ,src_o,r_e);
BENCH_DW(Mooee ,src_o,r_o);
BENCH_DW(MooeeInv,src_o,r_o);
}
if (1)
{
const int ncall=100;
const int ncall=1000;
std::cout << GridLogMessage<< "*********************************************************" <<std::endl;
std::cout << GridLogMessage<< "* Benchmarking DomainWallFermionVec5dR::Dhop "<<std::endl;
@ -168,14 +155,6 @@ int main (int argc, char ** argv)
FGrid->Barrier();
double t0,t1;
t0=usecond();
for(int i=0;i<ncall;i++){
Dw.Dhop(src,result,0);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Vec5D Dhop "<< (t1-t0)/ncall<<" us"<<std::endl;
LatticeFermion r_eo(sFGrid);
LatticeFermion src_e (sFrbGrid);
@ -192,46 +171,13 @@ int main (int argc, char ** argv)
r_e = zero;
r_o = zero;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.DhopEO(src_o, r_e, DaggerNo);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Vec5D DhopEO "<< (t1-t0)/ncall<<" us"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.Mooee(src_o, r_o);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Vec5D Mooee "<< (t1-t0)/ncall<<" us"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.MooeeInv(src_o, r_o);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Vec5D MooeeInv "<< (t1-t0)/ncall<<" us"<<std::endl;
FGrid->Barrier();
t0=usecond();
for (int i = 0; i < ncall; i++) {
Dw.Meooe(src_o, r_e);
}
t1=usecond();
FGrid->Barrier();
std::cout<<GridLogMessage << "Called Vec5D Meooe "<< (t1-t0)/ncall<<" us"<<std::endl;
BENCH_DW_MEO(Dhop ,src,result);
BENCH_DW_MEO(DhopEO ,src_o,r_e);
BENCH_DW(Meooe ,src_o,r_e);
BENCH_DW(Mooee ,src_o,r_o);
BENCH_DW(MooeeInv,src_o,r_o);
}
Grid_finalize();
}