mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-27 14:15:55 +01:00
Fixing AVX 512 instantiation error. Need to move to extern templates urgently.
This commit is contained in:
parent
350508bdb3
commit
a4d9200293
@ -59,9 +59,10 @@ public:
|
|||||||
int Ls, int Nsite, const FermionField &in, FermionField &out,
|
int Ls, int Nsite, const FermionField &in, FermionField &out,
|
||||||
int interior=1,int exterior=1) ;
|
int interior=1,int exterior=1) ;
|
||||||
|
|
||||||
template <bool EnableBool = true> static accelerator
|
template<bool EnableBool=true>
|
||||||
typename std::enable_if<Impl::Dimension == 3 && Nc == 3 &&EnableBool, void>::type
|
static accelerator_inline void
|
||||||
DhopSite(int Opt,StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf,
|
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,
|
int sF, int sU, int Ls, int Nsite,
|
||||||
const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1)
|
const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1)
|
||||||
{
|
{
|
||||||
@ -110,9 +111,10 @@ public:
|
|||||||
//bgq_l1p_optimisation(0);
|
//bgq_l1p_optimisation(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <bool EnableBool = true> static accelerator
|
template<bool EnableBool=true>
|
||||||
typename std::enable_if<(Impl::Dimension != 3 || (Impl::Dimension == 3 && Nc != 3)) && EnableBool, void>::type
|
static accelerator_inline void
|
||||||
DhopSite(int Opt, StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf,
|
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 )
|
int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1 )
|
||||||
{
|
{
|
||||||
// no kernel choice
|
// no kernel choice
|
||||||
@ -128,9 +130,10 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <bool EnableBool = true> static accelerator
|
template<bool EnableBool=true>
|
||||||
typename std::enable_if<Impl::Dimension == 3 && Nc == 3 && EnableBool,void>::type
|
static accelerator_inline void
|
||||||
DhopSiteDag(int Opt, StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor * buf,
|
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)
|
int sF, int sU, int Ls, int Nsite, const FermionFieldView &in, FermionFieldView &out,int interior=1,int exterior=1)
|
||||||
{
|
{
|
||||||
//bgq_l1p_optimisation(1);
|
//bgq_l1p_optimisation(1);
|
||||||
@ -178,9 +181,10 @@ public:
|
|||||||
//bgq_l1p_optimisation(0);
|
//bgq_l1p_optimisation(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <bool EnableBool = true> static accelerator
|
template<bool EnableBool=true>
|
||||||
typename std::enable_if<(Impl::Dimension != 3 || (Impl::Dimension == 3 && Nc != 3)) && EnableBool,void>::type
|
static accelerator_inline void
|
||||||
DhopSiteDag(int Opt,StencilView &st, DoubledGaugeFieldView &U,SiteHalfSpinor * buf,
|
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)
|
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++) {
|
for (int site = 0; site < Nsite; site++) {
|
||||||
|
@ -82,7 +82,7 @@ WilsonKernels<Impl >::AsmDhopSiteDagExt(StencilView &st, DoubledGaugeFieldView &
|
|||||||
#include <qcd/action/fermion/WilsonKernelsAsmAvx512.h>
|
#include <qcd/action/fermion/WilsonKernelsAsmAvx512.h>
|
||||||
#include <qcd/action/fermion/WilsonKernelsAsmQPX.h>
|
#include <qcd/action/fermion/WilsonKernelsAsmQPX.h>
|
||||||
|
|
||||||
#define INSTANTIATE_ASM(A)\
|
#define INSTANTIATE_ASM(A) \
|
||||||
template void WilsonKernels<A>::AsmDhopSite(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\
|
template void WilsonKernels<A>::AsmDhopSite(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\
|
||||||
int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\
|
int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\
|
||||||
\
|
\
|
||||||
@ -99,27 +99,27 @@ template void WilsonKernels<A>::AsmDhopSiteExt(StencilView &st, DoubledGaugeFiel
|
|||||||
template void WilsonKernels<A>::AsmDhopSiteDagExt(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\
|
template void WilsonKernels<A>::AsmDhopSiteDagExt(StencilView &st, DoubledGaugeFieldView &U, SiteHalfSpinor *buf,\
|
||||||
int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\
|
int ss,int ssU,int Ls,int Ns,const FermionFieldView &in, FermionFieldView &out);\
|
||||||
|
|
||||||
INSTANTIATE_ASM(WilsonImplF);
|
//INSTANTIATE_ASM(WilsonImplF);
|
||||||
INSTANTIATE_ASM(WilsonImplD);
|
//INSTANTIATE_ASM(WilsonImplD);
|
||||||
INSTANTIATE_ASM(ZWilsonImplF);
|
|
||||||
INSTANTIATE_ASM(ZWilsonImplD);
|
|
||||||
INSTANTIATE_ASM(GparityWilsonImplF);
|
INSTANTIATE_ASM(GparityWilsonImplF);
|
||||||
INSTANTIATE_ASM(GparityWilsonImplD);
|
INSTANTIATE_ASM(GparityWilsonImplD);
|
||||||
INSTANTIATE_ASM(DomainWallVec5dImplF);
|
//INSTANTIATE_ASM(ZWilsonImplF);
|
||||||
INSTANTIATE_ASM(DomainWallVec5dImplD);
|
//INSTANTIATE_ASM(ZWilsonImplD);
|
||||||
INSTANTIATE_ASM(ZDomainWallVec5dImplF);
|
//INSTANTIATE_ASM(DomainWallVec5dImplF);
|
||||||
INSTANTIATE_ASM(ZDomainWallVec5dImplD);
|
//INSTANTIATE_ASM(DomainWallVec5dImplD);
|
||||||
|
//INSTANTIATE_ASM(ZDomainWallVec5dImplF);
|
||||||
|
//INSTANTIATE_ASM(ZDomainWallVec5dImplD);
|
||||||
|
|
||||||
INSTANTIATE_ASM(WilsonImplFH);
|
//INSTANTIATE_ASM(WilsonImplFH);
|
||||||
INSTANTIATE_ASM(WilsonImplDF);
|
//INSTANTIATE_ASM(WilsonImplDF);
|
||||||
INSTANTIATE_ASM(ZWilsonImplFH);
|
//INSTANTIATE_ASM(ZWilsonImplFH);
|
||||||
INSTANTIATE_ASM(ZWilsonImplDF);
|
//INSTANTIATE_ASM(ZWilsonImplDF);
|
||||||
INSTANTIATE_ASM(GparityWilsonImplFH);
|
INSTANTIATE_ASM(GparityWilsonImplFH);
|
||||||
INSTANTIATE_ASM(GparityWilsonImplDF);
|
INSTANTIATE_ASM(GparityWilsonImplDF);
|
||||||
INSTANTIATE_ASM(DomainWallVec5dImplFH);
|
//INSTANTIATE_ASM(DomainWallVec5dImplFH);
|
||||||
INSTANTIATE_ASM(DomainWallVec5dImplDF);
|
//INSTANTIATE_ASM(DomainWallVec5dImplDF);
|
||||||
INSTANTIATE_ASM(ZDomainWallVec5dImplFH);
|
//INSTANTIATE_ASM(ZDomainWallVec5dImplFH);
|
||||||
INSTANTIATE_ASM(ZDomainWallVec5dImplDF);
|
//INSTANTIATE_ASM(ZDomainWallVec5dImplDF);
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ void WilsonKernels<Impl>::DhopKernel(int Opt,StencilImpl &st, DoubledGaugeField
|
|||||||
accelerator_loop( ss, U_v, {
|
accelerator_loop( ss, U_v, {
|
||||||
int sU = ss;
|
int sU = ss;
|
||||||
int sF = Ls * sU;
|
int sF = Ls * sU;
|
||||||
DhopSite(Opt,st_v,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v);
|
WilsonKernels<Impl>::DhopSite(Opt,st_v,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -359,7 +359,7 @@ void WilsonKernels<Impl>::DhopKernel(int Opt,StencilImpl &st, DoubledGaugeField
|
|||||||
accelerator_loop( ss, U_v, {
|
accelerator_loop( ss, U_v, {
|
||||||
int sU = ss;
|
int sU = ss;
|
||||||
int sF = Ls * sU;
|
int sF = Ls * sU;
|
||||||
DhopSiteDag(Opt,st,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v);
|
WilsonKernels<Impl>::DhopSiteDag(Opt,st,U_v,st.CommBuf(),sF,sU,Ls,1,in_v,out_v);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user