mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Added profiling messages to pick and set checkerboard functions
This commit is contained in:
parent
d38ae2fd18
commit
3e2ae1e9af
@ -49,10 +49,15 @@ inline void subdivides(GridBase *coarse,GridBase *fine)
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
template<class vobj> inline void pickCheckerboard(int cb,Lattice<vobj> &half,const Lattice<vobj> &full)
|
template<class vobj> inline void pickCheckerboard(int cb,Lattice<vobj> &half,const Lattice<vobj> &full)
|
||||||
{
|
{
|
||||||
|
static double time_autoview = 0;
|
||||||
|
static double time_loop = 0;
|
||||||
half.Checkerboard() = cb;
|
half.Checkerboard() = cb;
|
||||||
|
|
||||||
|
double start = usecond();
|
||||||
autoView( half_v, half, CpuWrite);
|
autoView( half_v, half, CpuWrite);
|
||||||
autoView( full_v, full, CpuRead);
|
autoView( full_v, full, CpuRead);
|
||||||
|
time_autoview += usecond()-start;
|
||||||
|
start = usecond();
|
||||||
thread_for(ss, full.Grid()->oSites(),{
|
thread_for(ss, full.Grid()->oSites(),{
|
||||||
int cbos;
|
int cbos;
|
||||||
Coordinate coor;
|
Coordinate coor;
|
||||||
@ -64,12 +69,24 @@ template<class vobj> inline void pickCheckerboard(int cb,Lattice<vobj> &half,con
|
|||||||
half_v[ssh] = full_v[ss];
|
half_v[ssh] = full_v[ss];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
time_loop += usecond()-start;
|
||||||
|
std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl;
|
||||||
|
std::cout << "pickCheckerboard" << std::endl;
|
||||||
|
std::cout << "AutoView cumulative time (s) = " << time_autoview/1000000. << "(" << 100*time_autoview/(time_autoview+time_loop) << "% of pickCheckerboard)" << std::endl;
|
||||||
|
std::cout << "Loop cumulative time (s) = " << time_loop/1000000. << "(" << 100*time_loop/(time_autoview+time_loop) << "% of pickCheckerboard)" << std::endl;
|
||||||
}
|
}
|
||||||
template<class vobj> inline void setCheckerboard(Lattice<vobj> &full,const Lattice<vobj> &half)
|
template<class vobj> inline void setCheckerboard(Lattice<vobj> &full,const Lattice<vobj> &half)
|
||||||
{
|
{
|
||||||
|
static double time_autoview = 0;
|
||||||
|
static double time_loop = 0;
|
||||||
int cb = half.Checkerboard();
|
int cb = half.Checkerboard();
|
||||||
|
|
||||||
|
double start = usecond();
|
||||||
autoView( half_v , half, CpuRead);
|
autoView( half_v , half, CpuRead);
|
||||||
autoView( full_v , full, CpuWrite);
|
autoView( full_v , full, CpuWrite);
|
||||||
|
time_autoview += usecond()-start;
|
||||||
|
start = usecond();
|
||||||
thread_for(ss,full.Grid()->oSites(),{
|
thread_for(ss,full.Grid()->oSites(),{
|
||||||
|
|
||||||
Coordinate coor;
|
Coordinate coor;
|
||||||
@ -83,6 +100,13 @@ template<class vobj> inline void setCheckerboard(Lattice<vobj> &full,const Latti
|
|||||||
full_v[ss]=half_v[ssh];
|
full_v[ss]=half_v[ssh];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
time_loop += usecond()-start;
|
||||||
|
std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl;
|
||||||
|
std::cout << "setCheckerboard" << std::endl;
|
||||||
|
std::cout << "AutoView cumulative time (s) = " << time_autoview/1000000. << "(" << 100*time_autoview/(time_autoview+time_loop) << "% of setCheckerboard)" << std::endl;
|
||||||
|
std::cout << "Loop cumulative time (s) = " << time_loop/1000000. << "(" << 100*time_loop/(time_autoview+time_loop) << "% of setCheckerboard)" << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user