mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Merge branch 'develop' of https://github.com/paboyle/Grid into develop
This commit is contained in:
commit
25d1cadd3b
@ -450,7 +450,7 @@ int main (int argc, char ** argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef GRID_OMP
|
||||||
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
||||||
std::cout<<GridLogMessage << "= Benchmarking threaded STENCIL halo exchange in "<<nmu<<" dimensions"<<std::endl;
|
std::cout<<GridLogMessage << "= Benchmarking threaded STENCIL halo exchange in "<<nmu<<" dimensions"<<std::endl;
|
||||||
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
||||||
@ -537,7 +537,7 @@ int main (int argc, char ** argv)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
||||||
std::cout<<GridLogMessage << "= All done; Bye Bye"<<std::endl;
|
std::cout<<GridLogMessage << "= All done; Bye Bye"<<std::endl;
|
||||||
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
std::cout<<GridLogMessage << "===================================================================================================="<<std::endl;
|
||||||
|
@ -69,39 +69,47 @@ class WilsonCompressorTemplate< _HCspinor, _Hspinor, _Spinor, projector,
|
|||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
/* Compress includes precision change if mpi data is not same */
|
/* Compress includes precision change if mpi data is not same */
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
inline void Compress(SiteHalfSpinor *buf,Integer o,const SiteSpinor &in) {
|
inline void Compress(SiteHalfSpinor * __restrict__ buf,Integer o,const SiteSpinor &in) {
|
||||||
projector::Proj(buf[o],in,mu,dag);
|
SiteHalfSpinor tmp;
|
||||||
|
projector::Proj(tmp,in,mu,dag);
|
||||||
|
vstream(buf[o],tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
/* Exchange includes precision change if mpi data is not same */
|
/* Exchange includes precision change if mpi data is not same */
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
inline void Exchange(SiteHalfSpinor *mp,
|
inline void Exchange(SiteHalfSpinor * __restrict__ mp,
|
||||||
SiteHalfSpinor *vp0,
|
const SiteHalfSpinor * __restrict__ vp0,
|
||||||
SiteHalfSpinor *vp1,
|
const SiteHalfSpinor * __restrict__ vp1,
|
||||||
Integer type,Integer o){
|
Integer type,Integer o){
|
||||||
exchange(mp[2*o],mp[2*o+1],vp0[o],vp1[o],type);
|
SiteHalfSpinor tmp1;
|
||||||
|
SiteHalfSpinor tmp2;
|
||||||
|
exchange(tmp1,tmp2,vp0[o],vp1[o],type);
|
||||||
|
vstream(mp[2*o ],tmp1);
|
||||||
|
vstream(mp[2*o+1],tmp2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
/* Have a decompression step if mpi data is not same */
|
/* Have a decompression step if mpi data is not same */
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
inline void Decompress(SiteHalfSpinor *out,
|
inline void Decompress(SiteHalfSpinor * __restrict__ out,
|
||||||
SiteHalfSpinor *in, Integer o) {
|
SiteHalfSpinor * __restrict__ in, Integer o) {
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
/* Compress Exchange */
|
/* Compress Exchange */
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
inline void CompressExchange(SiteHalfSpinor *out0,
|
inline void CompressExchange(SiteHalfSpinor * __restrict__ out0,
|
||||||
SiteHalfSpinor *out1,
|
SiteHalfSpinor * __restrict__ out1,
|
||||||
const SiteSpinor *in,
|
const SiteSpinor * __restrict__ in,
|
||||||
Integer j,Integer k, Integer m,Integer type){
|
Integer j,Integer k, Integer m,Integer type){
|
||||||
SiteHalfSpinor temp1, temp2,temp3,temp4;
|
SiteHalfSpinor temp1, temp2,temp3,temp4;
|
||||||
projector::Proj(temp1,in[k],mu,dag);
|
projector::Proj(temp1,in[k],mu,dag);
|
||||||
projector::Proj(temp2,in[m],mu,dag);
|
projector::Proj(temp2,in[m],mu,dag);
|
||||||
exchange(out0[j],out1[j],temp1,temp2,type);
|
exchange(temp3,temp4,temp1,temp2,type);
|
||||||
|
vstream(out0[j],temp3);
|
||||||
|
vstream(out1[j],temp4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
|
@ -385,6 +385,7 @@ void Grid_init(int *argc,char ***argv)
|
|||||||
if( GridCmdOptionExists(*argv,*argv+*argc,"--comms-threads") ){
|
if( GridCmdOptionExists(*argv,*argv+*argc,"--comms-threads") ){
|
||||||
arg= GridCmdOptionPayload(*argv,*argv+*argc,"--comms-threads");
|
arg= GridCmdOptionPayload(*argv,*argv+*argc,"--comms-threads");
|
||||||
GridCmdOptionInt(arg,CartesianCommunicator::nCommThreads);
|
GridCmdOptionInt(arg,CartesianCommunicator::nCommThreads);
|
||||||
|
assert(CartesianCommunicator::nCommThreads > 0);
|
||||||
}
|
}
|
||||||
if( GridCmdOptionExists(*argv,*argv+*argc,"--cacheblocking") ){
|
if( GridCmdOptionExists(*argv,*argv+*argc,"--cacheblocking") ){
|
||||||
arg= GridCmdOptionPayload(*argv,*argv+*argc,"--cacheblocking");
|
arg= GridCmdOptionPayload(*argv,*argv+*argc,"--cacheblocking");
|
||||||
|
@ -167,7 +167,7 @@ int main (int argc, char ** argv) {
|
|||||||
RealD mass = Params.mass;
|
RealD mass = Params.mass;
|
||||||
RealD M5 = Params.M5;
|
RealD M5 = Params.M5;
|
||||||
std::vector<int> blockSize = Params.blockSize;
|
std::vector<int> blockSize = Params.blockSize;
|
||||||
std::vector<int> latt({16,16,16,16});
|
std::vector<int> latt({32,32,32,32});
|
||||||
uint64_t vol = Ls*latt[0]*latt[1]*latt[2]*latt[3];
|
uint64_t vol = Ls*latt[0]*latt[1]*latt[2]*latt[3];
|
||||||
double mat_flop= 2.0*1320.0*vol;
|
double mat_flop= 2.0*1320.0*vol;
|
||||||
// Grids
|
// Grids
|
||||||
|
Loading…
Reference in New Issue
Block a user