1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

Streaming store option ifdef

This commit is contained in:
Peter Boyle 2015-05-21 06:47:05 +01:00
parent 1559dd4adc
commit 9601890549

View File

@ -1,6 +1,8 @@
#ifndef GRID_LATTICE_BASE_H #ifndef GRID_LATTICE_BASE_H
#define GRID_LATTICE_BASE_H #define GRID_LATTICE_BASE_H
#define STREAMING_STORES
namespace Grid { namespace Grid {
// TODO: // TODO:
@ -66,8 +68,12 @@ public:
{ {
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
vobj tmp= eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(ss,expr);
vstream(_odata[ss] ,tmp); vstream(_odata[ss] ,tmp);
#else
_odata[ss]=eval(ss,expr);
#endif
} }
return *this; return *this;
} }
@ -75,8 +81,12 @@ PARALLEL_FOR_LOOP
{ {
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
vobj tmp= eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(ss,expr);
vstream(_odata[ss] ,tmp); vstream(_odata[ss] ,tmp);
#else
_odata[ss]=eval(ss,expr);
#endif
} }
return *this; return *this;
} }
@ -84,8 +94,12 @@ PARALLEL_FOR_LOOP
{ {
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
vobj tmp= eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(ss,expr);
vstream(_odata[ss] ,tmp); vstream(_odata[ss] ,tmp);
#else
_odata[ss] = eval(ss,expr);
#endif
} }
return *this; return *this;
} }
@ -97,7 +111,12 @@ PARALLEL_FOR_LOOP
_odata.resize(_grid->oSites()); _odata.resize(_grid->oSites());
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
_odata[ss] = eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(ss,expr);
vstream(_odata[ss] ,tmp);
#else
_odata[ss]=_eval(ss,expr);
#endif
} }
}; };
template<class Op,class T1, class T2> template<class Op,class T1, class T2>
@ -107,7 +126,12 @@ PARALLEL_FOR_LOOP
_odata.resize(_grid->oSites()); _odata.resize(_grid->oSites());
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
_odata[ss] = eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(tmp,ss,expr);
vstream(_odata[ss] ,tmp);
#else
_odata[ss]=eval(ss,expr);
#endif
} }
}; };
template<class Op,class T1, class T2, class T3> template<class Op,class T1, class T2, class T3>
@ -117,7 +141,12 @@ PARALLEL_FOR_LOOP
_odata.resize(_grid->oSites()); _odata.resize(_grid->oSites());
PARALLEL_FOR_LOOP PARALLEL_FOR_LOOP
for(int ss=0;ss<_grid->oSites();ss++){ for(int ss=0;ss<_grid->oSites();ss++){
_odata[ss] = eval(ss,expr); #ifdef STREAMING_STORES
vobj tmp = eval(ss,expr);
vstream(_odata[ss] ,tmp);
#else
_odata[ss]=eval(ss,expr);
#endif
} }
}; };