mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-27 14:15:55 +01:00
GPU related updates
This commit is contained in:
parent
715babeac8
commit
ad2e65dad5
@ -629,8 +629,8 @@ class BinaryIO {
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Read a RNG; use IOobject and lexico map to an array of state
|
// Read a RNG; use IOobject and lexico map to an array of state
|
||||||
//////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
static inline void readRNG(GridSerialRNG &serial,
|
static inline void readRNG(GridSerialRNG &serial_rng,
|
||||||
GridParallelRNG ¶llel,
|
GridParallelRNG ¶llel_rng,
|
||||||
std::string file,
|
std::string file,
|
||||||
uint64_t offset,
|
uint64_t offset,
|
||||||
uint32_t &nersc_csum,
|
uint32_t &nersc_csum,
|
||||||
@ -644,7 +644,7 @@ class BinaryIO {
|
|||||||
|
|
||||||
std::string format = "IEEE32BIG";
|
std::string format = "IEEE32BIG";
|
||||||
|
|
||||||
GridBase *grid = parallel.Grid();
|
GridBase *grid = parallel_rng.Grid();
|
||||||
uint64_t gsites = grid->gSites();
|
uint64_t gsites = grid->gSites();
|
||||||
uint64_t lsites = grid->lSites();
|
uint64_t lsites = grid->lSites();
|
||||||
|
|
||||||
@ -661,10 +661,10 @@ class BinaryIO {
|
|||||||
nersc_csum,scidac_csuma,scidac_csumb);
|
nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
|
|
||||||
timer.Start();
|
timer.Start();
|
||||||
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++),{
|
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++), {
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
std::copy(iodata[lidx].begin(),iodata[lidx].end(),tmp.begin());
|
std::copy(iodata[lidx].begin(),iodata[lidx].end(),tmp.begin());
|
||||||
parallel.SetState(tmp,lidx);
|
parallel_rng.SetState(tmp,lidx);
|
||||||
});
|
});
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
|
|
||||||
@ -675,7 +675,7 @@ class BinaryIO {
|
|||||||
{
|
{
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
std::copy(iodata[0].begin(),iodata[0].end(),tmp.begin());
|
std::copy(iodata[0].begin(),iodata[0].end(),tmp.begin());
|
||||||
serial.SetState(tmp,0);
|
serial_rng.SetState(tmp,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
nersc_csum = nersc_csum + nersc_csum_tmp;
|
nersc_csum = nersc_csum + nersc_csum_tmp;
|
||||||
@ -691,8 +691,8 @@ class BinaryIO {
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Write a RNG; lexico map to an array of state and use IOobject
|
// Write a RNG; lexico map to an array of state and use IOobject
|
||||||
//////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
static inline void writeRNG(GridSerialRNG &serial,
|
static inline void writeRNG(GridSerialRNG &serial_rng,
|
||||||
GridParallelRNG ¶llel,
|
GridParallelRNG ¶llel_rng,
|
||||||
std::string file,
|
std::string file,
|
||||||
uint64_t offset,
|
uint64_t offset,
|
||||||
uint32_t &nersc_csum,
|
uint32_t &nersc_csum,
|
||||||
@ -704,7 +704,7 @@ class BinaryIO {
|
|||||||
const int RngStateCount = GridSerialRNG::RngStateCount;
|
const int RngStateCount = GridSerialRNG::RngStateCount;
|
||||||
typedef std::array<RngStateType,RngStateCount> RNGstate;
|
typedef std::array<RngStateType,RngStateCount> RNGstate;
|
||||||
|
|
||||||
GridBase *grid = parallel.Grid();
|
GridBase *grid = parallel_rng.Grid();
|
||||||
uint64_t gsites = grid->gSites();
|
uint64_t gsites = grid->gSites();
|
||||||
uint64_t lsites = grid->lSites();
|
uint64_t lsites = grid->lSites();
|
||||||
|
|
||||||
@ -721,7 +721,7 @@ class BinaryIO {
|
|||||||
std::vector<RNGstate> iodata(lsites);
|
std::vector<RNGstate> iodata(lsites);
|
||||||
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++),{
|
thread_loop( (uint64_t lidx=0;lidx<lsites;lidx++),{
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
parallel.GetState(tmp,lidx);
|
parallel_rng.GetState(tmp,lidx);
|
||||||
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
|
std::copy(tmp.begin(),tmp.end(),iodata[lidx].begin());
|
||||||
});
|
});
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
@ -731,7 +731,7 @@ class BinaryIO {
|
|||||||
iodata.resize(1);
|
iodata.resize(1);
|
||||||
{
|
{
|
||||||
std::vector<RngStateType> tmp(RngStateCount);
|
std::vector<RngStateType> tmp(RngStateCount);
|
||||||
serial.GetState(tmp,0);
|
serial_rng.GetState(tmp,0);
|
||||||
std::copy(tmp.begin(),tmp.end(),iodata[0].begin());
|
std::copy(tmp.begin(),tmp.end(),iodata[0].begin());
|
||||||
}
|
}
|
||||||
IOobject(w,grid,iodata,file,offset,format,BINARYIO_WRITE|BINARYIO_MASTER_APPEND,
|
IOobject(w,grid,iodata,file,offset,format,BINARYIO_WRITE|BINARYIO_MASTER_APPEND,
|
||||||
|
@ -796,6 +796,7 @@ class IldgReader : public GridLimeReader {
|
|||||||
// Minimally must find binary segment and checksum
|
// Minimally must find binary segment and checksum
|
||||||
// Since this is an ILDG reader require ILDG format
|
// Since this is an ILDG reader require ILDG format
|
||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
|
assert(found_ildgLFN);
|
||||||
assert(found_ildgBinary);
|
assert(found_ildgBinary);
|
||||||
assert(found_ildgFormat);
|
assert(found_ildgFormat);
|
||||||
assert(found_scidacChecksum);
|
assert(found_scidacChecksum);
|
||||||
|
@ -56,7 +56,6 @@ public:
|
|||||||
// for the header-reader
|
// for the header-reader
|
||||||
static inline int readHeader(std::string file,GridBase *grid, FieldMetaData &field)
|
static inline int readHeader(std::string file,GridBase *grid, FieldMetaData &field)
|
||||||
{
|
{
|
||||||
uint64_t offset=0;
|
|
||||||
std::map<std::string,std::string> header;
|
std::map<std::string,std::string> header;
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user