From fdd9b14e82dc25045cfb8db7b86f98154a26e8e1 Mon Sep 17 00:00:00 2001 From: gfilaci Date: Mon, 2 Sep 2019 14:49:51 +0100 Subject: [PATCH] speed up MooeeInvDag for DWF EOFA --- .../DomainWallEOFAFermionCache.h | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h b/Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h index 2ffb89b8..8bdab03f 100644 --- a/Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h +++ b/Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h @@ -175,23 +175,15 @@ void DomainWallEOFAFermion::MooeeInvDag(const FermionField& psi_i, Fermion auto chi = chi_i.View(); int Ls = this->Ls; + auto plee = & this->lee[0]; + auto pdee = & this->dee[0]; + auto puee = & this->uee[0]; + + auto pleem = & this->leem[0]; + auto pueem = & this->ueem[0]; + assert(psi.Checkerboard() == psi.Checkerboard()); - Vector ueec(Ls); - Vector deec(Ls+1); - Vector leec(Ls); - Vector ueemc(Ls); - Vector leemc(Ls); - - for(int s=0; suee[s]); - deec[s] = conjugate(this->dee[s]); - leec[s] = conjugate(this->lee[s]); - ueemc[s] = conjugate(this->ueem[s]); - leemc[s] = conjugate(this->leem[s]); - } - deec[Ls] = conjugate(this->dee[Ls]); - this->MooeeInvCalls++; this->MooeeInvTime -= usecond(); auto nloop = grid->oSites()/Ls; @@ -204,27 +196,27 @@ void DomainWallEOFAFermion::MooeeInvDag(const FermionField& psi_i, Fermion coalescedWrite(chi[ss], psi(ss)); for(int s=1; s=0; s--){ spProj5p(tmp1, chi(ss+s+1)); - coalescedWrite(chi[ss+s],chi(ss+s) - leec[s]*tmp1); + coalescedWrite(chi[ss+s],chi(ss+s) - conjugate(plee[s])*tmp1); } });