1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-09 23:45:36 +00:00

Problems remain in the red black preconditioning of the Ls vectorisation

This commit is contained in:
paboyle 2016-06-06 07:05:51 -07:00
parent 53d06046b0
commit 786ca52c43
2 changed files with 13 additions and 4 deletions

View File

@ -69,9 +69,11 @@ int main (int argc, char ** argv)
GridCartesian * FGrid = SpaceTimeGrid::makeFiveDimGrid(Ls,UGrid);
GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,UGrid);
std::cout << GridLogMessage << "Making s innermost grids"<<std::endl;
GridCartesian * sUGrid = SpaceTimeGrid::makeFourDimDWFGrid(GridDefaultLatt(),GridDefaultMpi());
GridRedBlackCartesian * sUrbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(sUGrid);
GridCartesian * sFGrid = SpaceTimeGrid::makeFiveDimDWFGrid(Ls,UGrid);
std::cout << GridLogMessage << "Making s innermost rb grids"<<std::endl;
GridRedBlackCartesian * sFrbGrid = SpaceTimeGrid::makeFiveDimDWFRedBlackGrid(Ls,UGrid);
std::vector<int> seeds4({1,2,3,4});
@ -131,7 +133,7 @@ int main (int argc, char ** argv)
RealD NP = UGrid->_Nprocessors;
for(int doasm=1;doasm<2;doasm++){
for(int doasm=0;doasm<1;doasm++){
QCD::WilsonKernelsStatic::AsmOpt=doasm;
@ -139,7 +141,7 @@ int main (int argc, char ** argv)
std::cout<<GridLogMessage << "Calling Dw"<<std::endl;
int ncall =50;
if (0) {
if (1) {
double t0=usecond();
for(int i=0;i<ncall;i++){
@ -160,7 +162,7 @@ int main (int argc, char ** argv)
// Dw.Report();
}
if (1)
if (0)
{
typedef WilsonFermion5D<DomainWallRedBlack5dImplF> WilsonFermion5DF;
LatticeFermionF ssrc(sFGrid);

View File

@ -175,7 +175,14 @@ public:
//
// If Ls vectorised, this must still be the case; e.g.
// layout == 8 , require _rdimensions[d] >= 2;
if ( simd_layout[d]>1 ) assert((_rdimensions[d]&0x1)==0);
// std::cout << GridLogMessage << " dimension "<<d<< " layout "<< _simd_layout[d] <<" ldimension "<<_ldimensions[d]<<std::endl;
if ( _simd_layout[d]>1 ) {
if ( _rdimensions[d]&0x1 ) {
std::cout << GridLogMessage << " dimension "<<d<< " bad layout "<<
_simd_layout[d] << " " << _ldimensions[d] << std::endl;
// assert(0);
}
}
_osites *= _rdimensions[d];
_isites *= _simd_layout[d];