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

Offloadable compression

This commit is contained in:
Peter Boyle 2018-09-10 11:20:50 +01:00
parent b5329d8852
commit 704ca162c1

View File

@ -7,20 +7,20 @@ template<class vobj>
class SimpleCompressor { class SimpleCompressor {
public: public:
void Point(int) {}; void Point(int) {};
inline int CommDatumSize(void) { return sizeof(vobj); } accelerator_inline int CommDatumSize(void) { return sizeof(vobj); }
inline bool DecompressionStep(void) { return false; } accelerator_inline bool DecompressionStep(void) { return false; }
inline void Compress(vobj *buf,int o,const vobj &in) { buf[o]=in; } accelerator_inline void Compress(vobj *buf,int o,const vobj &in) { buf[o]=in; }
inline void Exchange(vobj *mp,vobj *vp0,vobj *vp1,Integer type,Integer o){ accelerator_inline void Exchange(vobj *mp,vobj *vp0,vobj *vp1,Integer type,Integer o){
exchange(mp[2*o],mp[2*o+1],vp0[o],vp1[o],type); exchange(mp[2*o],mp[2*o+1],vp0[o],vp1[o],type);
} }
inline void Decompress(vobj *out,vobj *in, int o){ assert(0); } accelerator_inline void Decompress(vobj *out,vobj *in, int o){ assert(0); }
inline void CompressExchange(vobj *out0,vobj *out1,const vobj *in, accelerator_inline void CompressExchange(vobj *out0,vobj *out1,const vobj *in,
int j,int k, int m,int type){ int j,int k, int m,int type){
exchange(out0[j],out1[j],in[k],in[m],type); exchange(out0[j],out1[j],in[k],in[m],type);
} }
// For cshift. Cshift should drop compressor coupling altogether // For cshift. Cshift should drop compressor coupling altogether
// because I had to decouple the code from the Stencil anyway // because I had to decouple the code from the Stencil anyway
inline vobj operator() (const vobj &arg) { accelerator_inline vobj operator() (const vobj &arg) {
return arg; return arg;
} }
}; };