mirror of
https://github.com/paboyle/Grid.git
synced 2026-10-11 18:28:06 +01:00
Profiling split grid
This commit is contained in:
1 parent
44f24f395e
commit
7a9cdb45bc
4 files changed
+13
No files matched your search
@@ -56,6 +56,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk>
|
|||||||
#include <Grid/communicator/Communicator.h>
|
#include <Grid/communicator/Communicator.h>
|
||||||
#include <Grid/communicator/RingAllReduce.h>
|
#include <Grid/communicator/RingAllReduce.h>
|
||||||
#include <Grid/cartesian/Cartesian.h>
|
#include <Grid/cartesian/Cartesian.h>
|
||||||
|
#include <Grid/perfmon/HostMemory.h>
|
||||||
#include <Grid/tensors/Tensors.h>
|
#include <Grid/tensors/Tensors.h>
|
||||||
#include <Grid/lattice/Lattice.h>
|
#include <Grid/lattice/Lattice.h>
|
||||||
#include <Grid/cshift/Cshift.h>
|
#include <Grid/cshift/Cshift.h>
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ public:
|
|||||||
SplitCloneTimer.Stop();
|
SplitCloneTimer.Stop();
|
||||||
if ( split == nullptr ) {
|
if ( split == nullptr ) {
|
||||||
std::cout << GridLogMessage << "MixedPrecisionConjugateGradientBatched: operator cannot be split; serial inner solves" << std::endl;
|
std::cout << GridLogMessage << "MixedPrecisionConjugateGradientBatched: operator cannot be split; serial inner solves" << std::endl;
|
||||||
|
} else {
|
||||||
|
HostMemoryReport(DoublePrecGrid,GridLogMessage,"MixedPrecisionConjugateGradientBatched: after split clone");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,6 +161,7 @@ public:
|
|||||||
for(outer_iter = 0; outer_iter < MaxOuterIterations; outer_iter++){
|
for(outer_iter = 0; outer_iter < MaxOuterIterations; outer_iter++){
|
||||||
std::cout << GridLogMessage << std::endl;
|
std::cout << GridLogMessage << std::endl;
|
||||||
std::cout << GridLogMessage << "Outer iteration " << outer_iter << std::endl;
|
std::cout << GridLogMessage << "Outer iteration " << outer_iter << std::endl;
|
||||||
|
HostMemoryReport(DoublePrecGrid,GridLogMessage,"MixedPrecisionConjugateGradientBatched: outer iteration "+std::to_string(outer_iter));
|
||||||
|
|
||||||
bool allConverged = true;
|
bool allConverged = true;
|
||||||
|
|
||||||
|
|||||||
@@ -1741,6 +1741,10 @@ void Grid_split(std::vector<Lattice<Vobj> > & full,Lattice<Vobj> & split)
|
|||||||
<< " alltoall " << t_a2a/1.0e6
|
<< " alltoall " << t_a2a/1.0e6
|
||||||
<< " reorder " << t_reorder/1.0e6
|
<< " reorder " << t_reorder/1.0e6
|
||||||
<< " vectorise " << t_vec/1.0e6 << std::endl;
|
<< " vectorise " << t_vec/1.0e6 << std::endl;
|
||||||
|
// Staging vectors are still live here, so this is the high-water point of the call
|
||||||
|
if ( GridLogPerformance.isActive() ) {
|
||||||
|
HostMemoryReport(full_grid,GridLogPerformance,"Grid_split");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Vobj>
|
template<class Vobj>
|
||||||
@@ -1906,6 +1910,10 @@ void Grid_unsplit(std::vector<Lattice<Vobj> > & full,Lattice<Vobj> & split)
|
|||||||
<< " alltoall " << t_a2a/1.0e6
|
<< " alltoall " << t_a2a/1.0e6
|
||||||
<< " reorder " << t_reorder/1.0e6
|
<< " reorder " << t_reorder/1.0e6
|
||||||
<< " vectorise " << t_vec/1.0e6 << std::endl;
|
<< " vectorise " << t_vec/1.0e6 << std::endl;
|
||||||
|
// Staging vectors are still live here, so this is the high-water point of the call
|
||||||
|
if ( GridLogPerformance.isActive() ) {
|
||||||
|
HostMemoryReport(full_grid,GridLogPerformance,"Grid_unsplit");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ void ReportMemory(GridBase *grid,const std::string &phase)
|
|||||||
<< " : host RSS " << rss << " GB, peak " << peak
|
<< " : host RSS " << rss << " GB, peak " << peak
|
||||||
<< " GB; allocator cache host " << hostcache << " GB, device " << devcache
|
<< " GB; allocator cache host " << hostcache << " GB, device " << devcache
|
||||||
<< " GB (max over ranks)" << std::endl;
|
<< " GB (max over ranks)" << std::endl;
|
||||||
|
HostMemoryReport(grid,GridLogMessage,phase);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef LatticeFermionD FieldD;
|
typedef LatticeFermionD FieldD;
|
||||||
|
|||||||
Reference in new issue
Block a user