diff --git a/Grid/qcd/action/fermion/WilsonKernels.h b/Grid/qcd/action/fermion/WilsonKernels.h index 75403e93..7d6b091d 100644 --- a/Grid/qcd/action/fermion/WilsonKernels.h +++ b/Grid/qcd/action/fermion/WilsonKernels.h @@ -59,9 +59,10 @@ public: int Ls, int Nsite, const FermionField &in, FermionField &out, int interior=1,int exterior=1) ; - template static accelerator - typename std::enable_if::type - DhopSite(int Opt,StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, + template + static accelerator_inline void + DhopSite(typename std::enable_if<(Impl::isFundamental==true && Nc == 3 &&EnableBool), int>::type Opt, + StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1) { @@ -110,9 +111,10 @@ public: //bgq_l1p_optimisation(0); } - template static accelerator - typename std::enable_if<(Impl::Dimension != 3 || (Impl::Dimension == 3 && Nc != 3)) && EnableBool, void>::type - DhopSite(int Opt, StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, + template + static accelerator_inline void + DhopSite(typename std::enable_if<((Impl::isFundamental==false)||(Nc != 3))&& EnableBool, int>::type Opt, + StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1 ) { // no kernel choice @@ -128,9 +130,10 @@ public: } } - template static accelerator - typename std::enable_if::type - DhopSiteDag(int Opt, StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, + template + static accelerator_inline void + DhopSiteDag(typename std::enable_if<(Impl::isFundamental==true && Nc == 3 &&EnableBool), int>::type Opt, + StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf, int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1) { //bgq_l1p_optimisation(1); @@ -178,9 +181,10 @@ public: //bgq_l1p_optimisation(0); } - template static accelerator - typename std::enable_if<(Impl::Dimension != 3 || (Impl::Dimension == 3 && Nc != 3)) && EnableBool,void>::type - DhopSiteDag(int Opt,StencilView &st, DoubledGaugeFieldView &U,SiteHalfSpinor * buf, + template + static accelerator_inline void + DhopSiteDag(typename std::enable_if<((Impl::isFundamental==false)||(Nc != 3))&& EnableBool, int>::type Opt, + StencilView &st, DoubledGaugeFieldView &U,SiteHalfSpinor * buf, int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1) { for (int site = 0; site < Nsite; site++) { diff --git a/Grid/qcd/action/fermion/WilsonKernelsAsm.cc b/Grid/qcd/action/fermion/WilsonKernelsAsm.cc index 436083b0..c3ffc46c 100644 --- a/Grid/qcd/action/fermion/WilsonKernelsAsm.cc +++ b/Grid/qcd/action/fermion/WilsonKernelsAsm.cc @@ -82,7 +82,7 @@ WilsonKernels::AsmDhopSiteDagExt(StencilView &st, DoubledGaugeFieldView & #include #include -#define INSTANTIATE_ASM(A)\ +#define INSTANTIATE_ASM(A) \ template void WilsonKernels::AsmDhopSite(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\ int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\ \ @@ -99,27 +99,27 @@ template void WilsonKernels::AsmDhopSiteExt(StencilView &st, DoubledGaugeFiel template void WilsonKernels::AsmDhopSiteDagExt(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\ int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\ -INSTANTIATE_ASM(WilsonImplF); -INSTANTIATE_ASM(WilsonImplD); -INSTANTIATE_ASM(ZWilsonImplF); -INSTANTIATE_ASM(ZWilsonImplD); +//INSTANTIATE_ASM(WilsonImplF); +//INSTANTIATE_ASM(WilsonImplD); INSTANTIATE_ASM(GparityWilsonImplF); INSTANTIATE_ASM(GparityWilsonImplD); -INSTANTIATE_ASM(DomainWallVec5dImplF); -INSTANTIATE_ASM(DomainWallVec5dImplD); -INSTANTIATE_ASM(ZDomainWallVec5dImplF); -INSTANTIATE_ASM(ZDomainWallVec5dImplD); +//INSTANTIATE_ASM(ZWilsonImplF); +//INSTANTIATE_ASM(ZWilsonImplD); +//INSTANTIATE_ASM(DomainWallVec5dImplF); +//INSTANTIATE_ASM(DomainWallVec5dImplD); +//INSTANTIATE_ASM(ZDomainWallVec5dImplF); +//INSTANTIATE_ASM(ZDomainWallVec5dImplD); -INSTANTIATE_ASM(WilsonImplFH); -INSTANTIATE_ASM(WilsonImplDF); -INSTANTIATE_ASM(ZWilsonImplFH); -INSTANTIATE_ASM(ZWilsonImplDF); +//INSTANTIATE_ASM(WilsonImplFH); +//INSTANTIATE_ASM(WilsonImplDF); +//INSTANTIATE_ASM(ZWilsonImplFH); +//INSTANTIATE_ASM(ZWilsonImplDF); INSTANTIATE_ASM(GparityWilsonImplFH); INSTANTIATE_ASM(GparityWilsonImplDF); -INSTANTIATE_ASM(DomainWallVec5dImplFH); -INSTANTIATE_ASM(DomainWallVec5dImplDF); -INSTANTIATE_ASM(ZDomainWallVec5dImplFH); -INSTANTIATE_ASM(ZDomainWallVec5dImplDF); +//INSTANTIATE_ASM(DomainWallVec5dImplFH); +//INSTANTIATE_ASM(DomainWallVec5dImplDF); +//INSTANTIATE_ASM(ZDomainWallVec5dImplFH); +//INSTANTIATE_ASM(ZDomainWallVec5dImplDF); NAMESPACE_END(Grid); diff --git a/Grid/qcd/action/fermion/WilsonKernelsGpu.cc b/Grid/qcd/action/fermion/WilsonKernelsGpu.cc index 632138f1..8f4ed634 100644 --- a/Grid/qcd/action/fermion/WilsonKernelsGpu.cc +++ b/Grid/qcd/action/fermion/WilsonKernelsGpu.cc @@ -328,7 +328,7 @@ void WilsonKernels::DhopKernel(int Opt,StencilImpl &st, DoubledGaugeField accelerator_loop( ss, U_v, { int sU = ss; int sF = Ls * sU; - DhopSite(Opt,st_v,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v); + WilsonKernels::DhopSite(Opt,st_v,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v); }); } } @@ -359,7 +359,7 @@ void WilsonKernels::DhopKernel(int Opt,StencilImpl &st, DoubledGaugeField accelerator_loop( ss, U_v, { int sU = ss; int sF = Ls * sU; - DhopSiteDag(Opt,st,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v); + WilsonKernels::DhopSiteDag(Opt,st,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v); }); } }