5 #include "DeviceCodecTemplatesImpl.hpp" 32 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceCopyCodec,DeviceCopyCodec>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
34 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceCopyCodec>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
36 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceDeltaCodec>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
38 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceVarintCodec>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
40 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceBitPackingCodec>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
42 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceCompositeCodec<DeviceBitPackingCodec,DeviceCopyCodec>>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
44 genie::compression::decodeArrayParallel<DeviceSerialCodec<DeviceDeltaCodec,DeviceCompositeCodec<DeviceBitPackingCodec,DeviceVarintCodec>>>(int, int, uint32_t*, size_t, uint32_t*, size_t,
size_t*);
47 template <
class Codec1,
class Codec2>
void 55 size_t nvalue1 = nvalue;
56 codec1.encodeArray(in, length, mid, nvalue1);
57 assert(nvalue1 <= nvalue);
59 size_t nvalue2 = nvalue;
60 codec2.encodeArray(mid, nvalue1, out, nvalue2);
61 assert(nvalue2 <= nvalue);
67 template <
class Codec1,
class Codec2>
const uint32_t*
73 size_t nvalue2 = nvalue;
74 codec2.decodeArray(in, comprLength, mid, nvalue2);
75 assert(nvalue2 <= nvalue);
81 size_t nvalue1 = nvalue;
82 codec1.decodeArray(mid, nvalue2, out, nvalue1);
83 assert(nvalue1 <= nvalue);
94 template <
class Codec1,
class Codec2> __device__ uint32_t*
101 template <
class Codec1,
class Codec2> __device__ uint32_t*
103 uint32_t *d_in,
size_t comprLength, uint32_t *d_out,
size_t &nvalue)
108 size_t nvalue2 = nvalue;
109 uint32_t *d_inAfterCodec2 = codec2.decodeArrayParallel(d_in, comprLength, s_Mid, nvalue2);
112 assert(nvalue2 <= nvalue);
113 assert(d_inAfterCodec2 == d_in + comprLength);
122 size_t nvalue1 = nvalue;
123 uint32_t *s_MidAfterCodec1 = codec1.decodeArrayParallel(s_Mid, nvalue2, d_out, nvalue1);
126 assert(nvalue1 <= nvalue);
127 assert(s_MidAfterCodec1 == s_Mid + nvalue2);
136 return d_inAfterCodec2;
void encodeArray(uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
__device__ uint32_t * decodeArrayParallel(uint32_t *d_in, size_t length, uint32_t *d_out, size_t &nvalue)
__device__ uint32_t * decodeArraySequential(uint32_t *d_in, size_t length, uint32_t *d_out, size_t &nvalue)
#define GPUGENIE_CODEC_SERIAL_MAX_UNCOMPR_LENGTH
const uint32_t * decodeArray(const uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)