Loading source/adios2/helper/adiosMemory.h +4 −8 Original line number Diff line number Diff line Loading @@ -186,18 +186,14 @@ void Resize(std::vector<T> &vec, const size_t dataSize, const bool debugMode, * true: runs a bit slower, same algorithm using the explicit * stack/simulated stack which has more overhead for the algm. */ template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode = false); template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const Dims &inMemStart, const Dims &inMemCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const Dims &outMemStart, const Dims &outMemCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode = false); const bool outIsLittleEndian, const Dims &inMemStart = Dims(), const Dims &inMemCount =Dims(),const Dims &outMemStart=Dims(), const Dims &outMemCount=Dims(), const bool safeMode = false); template <class T> size_t PayloadSize(const T *data, const Dims &count) noexcept; Loading source/adios2/helper/adiosMemory.inl +18 −18 Original line number Diff line number Diff line Loading @@ -640,20 +640,20 @@ static void NdCopyIterDFDynamicRevEndian(const char *inBase, char *outBase, template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const Dims &inMemStart, const Dims &inMemCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const Dims &outMemStart, const Dims &outMemCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode) { } const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const Dims &inMemStart, const Dims &inMemCount, const Dims &outMemStart,const Dims &outMemCount, const bool safeMode) template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode) { Dims inMemStartNC = inMemStart.empty()? inStart : inMemStart; Dims inMemCountNC = inMemCount.empty()? inCount : inMemCount; Dims outMemStartNC = outMemStart.empty()? outStart : outMemStart; Dims outMemCountNC = outMemCount.empty()? outCount : outMemCount; Dims inEnd(inStart.size()); Dims outEnd(inStart.size()); Dims ovlpStart(inStart.size()); Loading Loading @@ -786,13 +786,13 @@ int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, GetOvlpCount(ovlpCount, ovlpStart, ovlpEnd); if (!HasOvlp(ovlpStart, ovlpEnd)) return 1; // no overlap found GetIoStrides(inStride, inCount, sizeof(T)); GetIoStrides(outStride, outCount, sizeof(T)); GetIoOvlpGapSize(inOvlpGapSize, inStride, inCount, ovlpCount); GetIoOvlpGapSize(outOvlpGapSize, outStride, outCount, ovlpCount); GetInOvlpBase(inOvlpBase, in, inStart, inStride, ovlpStart); GetOutOvlpBase(outOvlpBase, out, outStart, outStride, ovlpStart); minContDim = GetMinContDim(inCount, outCount, ovlpCount); GetIoStrides(inStride, inMemCount, sizeof(T)); GetIoStrides(outStride, outMemCount, sizeof(T)); GetIoOvlpGapSize(inOvlpGapSize, inStride, inMemCount, ovlpCount); GetIoOvlpGapSize(outOvlpGapSize, outStride, outMemCount, ovlpCount); GetInOvlpBase(inOvlpBase, in, inMemStart, inStride, ovlpStart); GetOutOvlpBase(outOvlpBase, out, outMemStart, outStride, ovlpStart); minContDim = GetMinContDim(inMemCount, outMemCount, ovlpCount); blockSize = GetBlockSize(ovlpCount, minContDim, sizeof(T)); // same endianess mode: most optimized, contiguous data copying // algorithm used. Loading Loading
source/adios2/helper/adiosMemory.h +4 −8 Original line number Diff line number Diff line Loading @@ -186,18 +186,14 @@ void Resize(std::vector<T> &vec, const size_t dataSize, const bool debugMode, * true: runs a bit slower, same algorithm using the explicit * stack/simulated stack which has more overhead for the algm. */ template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode = false); template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const Dims &inMemStart, const Dims &inMemCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const Dims &outMemStart, const Dims &outMemCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode = false); const bool outIsLittleEndian, const Dims &inMemStart = Dims(), const Dims &inMemCount =Dims(),const Dims &outMemStart=Dims(), const Dims &outMemCount=Dims(), const bool safeMode = false); template <class T> size_t PayloadSize(const T *data, const Dims &count) noexcept; Loading
source/adios2/helper/adiosMemory.inl +18 −18 Original line number Diff line number Diff line Loading @@ -640,20 +640,20 @@ static void NdCopyIterDFDynamicRevEndian(const char *inBase, char *outBase, template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const Dims &inMemStart, const Dims &inMemCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const Dims &outMemStart, const Dims &outMemCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode) { } const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const Dims &inMemStart, const Dims &inMemCount, const Dims &outMemStart,const Dims &outMemCount, const bool safeMode) template <class T> int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, const bool inIsRowMajor, const bool inIsLittleEndian, char *out, const Dims &outStart, const Dims &outCount, const bool outIsRowMajor, const bool outIsLittleEndian, const bool safeMode) { Dims inMemStartNC = inMemStart.empty()? inStart : inMemStart; Dims inMemCountNC = inMemCount.empty()? inCount : inMemCount; Dims outMemStartNC = outMemStart.empty()? outStart : outMemStart; Dims outMemCountNC = outMemCount.empty()? outCount : outMemCount; Dims inEnd(inStart.size()); Dims outEnd(inStart.size()); Dims ovlpStart(inStart.size()); Loading Loading @@ -786,13 +786,13 @@ int NdCopy(const char *in, const Dims &inStart, const Dims &inCount, GetOvlpCount(ovlpCount, ovlpStart, ovlpEnd); if (!HasOvlp(ovlpStart, ovlpEnd)) return 1; // no overlap found GetIoStrides(inStride, inCount, sizeof(T)); GetIoStrides(outStride, outCount, sizeof(T)); GetIoOvlpGapSize(inOvlpGapSize, inStride, inCount, ovlpCount); GetIoOvlpGapSize(outOvlpGapSize, outStride, outCount, ovlpCount); GetInOvlpBase(inOvlpBase, in, inStart, inStride, ovlpStart); GetOutOvlpBase(outOvlpBase, out, outStart, outStride, ovlpStart); minContDim = GetMinContDim(inCount, outCount, ovlpCount); GetIoStrides(inStride, inMemCount, sizeof(T)); GetIoStrides(outStride, outMemCount, sizeof(T)); GetIoOvlpGapSize(inOvlpGapSize, inStride, inMemCount, ovlpCount); GetIoOvlpGapSize(outOvlpGapSize, outStride, outMemCount, ovlpCount); GetInOvlpBase(inOvlpBase, in, inMemStart, inStride, ovlpStart); GetOutOvlpBase(outOvlpBase, out, outMemStart, outStride, ovlpStart); minContDim = GetMinContDim(inMemCount, outMemCount, ovlpCount); blockSize = GetBlockSize(ovlpCount, minContDim, sizeof(T)); // same endianess mode: most optimized, contiguous data copying // algorithm used. Loading