#include using namespace std; using namespace Grid; using namespace Grid::QCD; int main (int argc, char ** argv) { Grid_init(&argc,&argv); std::vector simd_layout({1,2,2,2}); std::vector mpi_layout ({1,1,1,1}); const int Nvec=8; typedef Lattice< iVector< vReal,Nvec> > LatticeVec; int Nloop=100; std::cout << "===================================================================================================="< latt_size ({lat,lat,lat,lat}); GridCartesian Grid(latt_size,simd_layout,mpi_layout); GridParallelRNG pRNG(&Grid); pRNG.SeedRandomDevice(); LatticeVec z(&Grid); random(pRNG,z); LatticeVec x(&Grid); random(pRNG,x); LatticeVec y(&Grid); random(pRNG,y); double a=1.0; double start=usecond(); for(int i=0;i &ret,double a,const Lattice &lhs,const Lattice &rhs){ axpy(z,a,x,y); } double stop=usecond(); double time = stop-start; double bytes=3*lat*lat*lat*lat*Nvec*sizeof(Real)*Nloop; std::cout << lat<<"\t\t"< latt_size ({lat,lat,lat,lat}); GridCartesian Grid(latt_size,simd_layout,mpi_layout); GridParallelRNG pRNG(&Grid); pRNG.SeedRandomDevice(); LatticeVec z(&Grid); random(pRNG,z); LatticeVec x(&Grid); random(pRNG,x); LatticeVec y(&Grid); random(pRNG,y); double a=1.0; double start=usecond(); for(int i=0;i latt_size ({lat,lat,lat,lat}); GridCartesian Grid(latt_size,simd_layout,mpi_layout); GridParallelRNG pRNG(&Grid); pRNG.SeedRandomDevice(); LatticeVec z(&Grid); random(pRNG,z); LatticeVec x(&Grid); random(pRNG,x); LatticeVec y(&Grid); random(pRNG,y); RealD a=1.0; double start=usecond(); for(int i=0;i latt_size ({lat,lat,lat,lat}); GridCartesian Grid(latt_size,simd_layout,mpi_layout); GridParallelRNG pRNG(&Grid); pRNG.SeedRandomDevice(); LatticeVec z(&Grid); random(pRNG,z); LatticeVec x(&Grid); random(pRNG,x); LatticeVec y(&Grid); random(pRNG,y); RealD a=1.0; ComplexD nn; double start=usecond(); for(int i=0;i