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

Photon syntax gave problems with NVCC

This commit is contained in:
Peter Boyle 2019-01-01 15:03:29 +00:00
parent 4bf86ae60a
commit 7df58dd883
3 changed files with 36 additions and 33 deletions

View File

@ -127,6 +127,8 @@ template<class Gimpl>
{
auto *grid = dynamic_cast<GridCartesian *>(out.Grid());
LatticeReal xmu(grid);
LatticeReal pmusq(grid);
LatticeComplex pmusq_z(grid);
GaugeLinkField one(grid);
const unsigned int nd = grid->_ndimension;
Coordinate &l = grid->_fdimensions;
@ -137,12 +139,13 @@ template<class Gimpl>
one = Complex(1.0,0.0);
out = Zero();
for(int mu = 0; mu < nd; mu++)
{
for(int mu = 0; mu < nd; mu++) {
LatticeCoordinate(xmu,mu);
Real lo2 = l[mu]/2.0;
xmu = where(xmu < lo2, xmu, xmu-double(l[mu]));
out = out + toComplex(4*M_PI*M_PI*xmu*xmu);
pmusq = (4.0*M_PI*M_PI)*xmu*xmu;
pmusq_z= toComplex(pmusq);
out = out + pmusq_z;
}
pokeSite(Tone, out, x0);
out = one/out;

View File

@ -94,7 +94,7 @@ public:
for (int mu = 0; mu < Ndim; mu++)
{
// pshift = Cshift(p, mu, +1); // not efficient, implement with stencils
parallel_for(int i = 0; i < p.Grid()->oSites(); i++)
thread_loop( (int i = 0; i < p.Grid()->oSites(); i++),
{
int permute_type;
StencilEntry *SE;
@ -117,7 +117,7 @@ public:
{
action_v[i] -= phiStencil.CommBuf()[SE->_offset] * (*t_p) + (*t_p) * phiStencil.CommBuf()[SE->_offset];
}
}
});
// action -= pshift*p + p*pshift;
}
// NB the trace in the algebra is normalised to 1/2
@ -137,7 +137,7 @@ public:
phiStencil.HaloExchange(p, compressor);
double halo_t = usecond();
int chunk = 128;
// int chunk = 128;
//for (int mu = 0; mu < Nd; mu++) force -= Cshift(p, mu, -1) + Cshift(p, mu, 1);
// inverting the order of the loops slows down the code(! g++ 7)
@ -153,7 +153,7 @@ public:
StencilEntry *SE;
const vobj *temp;
parallel_for (int i = 0; i < p.Grid()->oSites(); i++) {
thread_loop( (int i = 0; i < p.Grid()->oSites(); i++) ,{
SE = phiStencil.GetEntry(permute_type, point, i);
// prefetch next p?
@ -171,7 +171,7 @@ public:
} else {
force_v[i] -= phiStencil.CommBuf()[SE->_offset];
}
}
});
}
force *= N / g;

View File

@ -980,7 +980,7 @@ void A2Autils<FImpl>::ContractWWVV(std::vector<PropagatorField> &WWVV,
{
GridBase *grid = vs[0].Grid();
int nd = grid->_ndimension;
// int nd = grid->_ndimension;
int Nsimd = grid->Nsimd();
int N_t = WW_sd.dimension(0);
int N_s = WW_sd.dimension(1);