1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-10 06:00:45 +01:00

L1p controls

This commit is contained in:
Peter Boyle 2016-12-22 17:52:55 +00:00
parent 9ae81c06d2
commit caba0d42a5

View File

@ -34,6 +34,8 @@ directory
namespace Grid { namespace Grid {
namespace QCD { namespace QCD {
void bgq_l1p_optimisation(int mode);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Helper routines that implement Wilson stencil for a single site. // Helper routines that implement Wilson stencil for a single site.
// Common to both the WilsonFermion and WilsonFermion5D // Common to both the WilsonFermion and WilsonFermion5D
@ -58,8 +60,9 @@ public:
DiracOptDhopSite(StencilImpl &st, LebesgueOrder &lo, DoubledGaugeField &U, SiteHalfSpinor * buf, DiracOptDhopSite(StencilImpl &st, LebesgueOrder &lo, DoubledGaugeField &U, SiteHalfSpinor * buf,
int sF, int sU, int Ls, int Ns, const FermionField &in, FermionField &out) int sF, int sU, int Ls, int Ns, const FermionField &in, FermionField &out)
{ {
bgq_l1p_optimisation(1);
switch(Opt) { switch(Opt) {
#ifdef AVX512 #if defined(AVX512) || defined (QPX)
case OptInlineAsm: case OptInlineAsm:
WilsonKernels<Impl>::DiracOptAsmDhopSite(st,lo,U,buf,sF,sU,Ls,Ns,in,out); WilsonKernels<Impl>::DiracOptAsmDhopSite(st,lo,U,buf,sF,sU,Ls,Ns,in,out);
break; break;
@ -85,6 +88,7 @@ public:
default: default:
assert(0); assert(0);
} }
bgq_l1p_optimisation(0);
} }
template <bool EnableBool = true> template <bool EnableBool = true>
@ -106,8 +110,9 @@ public:
DiracOptDhopSiteDag(StencilImpl &st, LebesgueOrder &lo, DoubledGaugeField &U, SiteHalfSpinor * buf, DiracOptDhopSiteDag(StencilImpl &st, LebesgueOrder &lo, DoubledGaugeField &U, SiteHalfSpinor * buf,
int sF, int sU, int Ls, int Ns, const FermionField &in, FermionField &out) { int sF, int sU, int Ls, int Ns, const FermionField &in, FermionField &out) {
bgq_l1p_optimisation(1);
switch(Opt) { switch(Opt) {
#ifdef AVX512 #if defined(AVX512) || defined (QPX)
case OptInlineAsm: case OptInlineAsm:
WilsonKernels<Impl>::DiracOptAsmDhopSiteDag(st,lo,U,buf,sF,sU,Ls,Ns,in,out); WilsonKernels<Impl>::DiracOptAsmDhopSiteDag(st,lo,U,buf,sF,sU,Ls,Ns,in,out);
break; break;
@ -133,6 +138,7 @@ public:
default: default:
assert(0); assert(0);
} }
bgq_l1p_optimisation(0);
} }
template <bool EnableBool = true> template <bool EnableBool = true>