1 #ifndef DEVICE_VARINT_CODEC_H_ 2 #define DEVICE_VARINT_CODEC_H_ 12 #define GPUGENIE_CODEC_VARINT_THREADBLOCK_SIZE (256) 15 #define GPUGENIE_CODEC_VARINT_THREAD_LOAD (4) 18 #define GPUGENIE_CODEC_VARINT_MAX_UNCOMPR_LENGTH (GPUGENIE_CODEC_VARINT_THREAD_LOAD * \ 19 GPUGENIE_CODEC_VARINT_THREADBLOCK_SIZE) 34 encodeArray(uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue);
37 decodeArray(
const uint32_t *in,
const size_t , uint32_t *out,
size_t &nvalue);
46 name()
const {
return "Varint"; }
57 encodeToByteArray(uint32_t *in,
const size_t length, uint8_t *bout,
size_t &nvalue);
60 decodeFromByteArray(
const uint8_t *inbyte,
const size_t length, uint32_t *out,
size_t &nvalue);
62 template <u
int32_t i> uint8_t
63 extract7bits(
const uint32_t val) {
64 return static_cast<uint8_t
>((val >> (7 * i)) & ((1U << 7) - 1));
67 template <u
int32_t i> uint8_t
68 extract7bitsmaskless(
const uint32_t val) {
69 return static_cast<uint8_t
>((val >> (7 * i)));
72 template <
class T>
inline bool 73 needPaddingTo32Bits(
const T *inbyte) {
74 return (reinterpret_cast<uintptr_t>(inbyte) & 3) != 0;
78 numIntsStartingHere(uint32_t *d_in,
int idxUnpack,
int comprLength);
This is the top-level namespace of the project.
__device__ __host__ int decodeArrayParallel_maxBlocks()
const uint32_t * decodeArray(const uint32_t *in, const size_t, uint32_t *out, size_t &nvalue)
__device__ uint32_t * decodeArrayParallel(uint32_t *d_in, size_t, uint32_t *d_out, size_t &capacity)
__device__ __host__ int decodeArrayParallel_threadsPerBlock()
__device__ __host__ int decodeArrayParallel_lengthPerBlock()
#define GPUGENIE_CODEC_VARINT_THREAD_LOAD
__device__ __host__ int decodeArrayParallel_minEffectiveLength()
void encodeArray(uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
#define GPUGENIE_CODEC_VARINT_MAX_UNCOMPR_LENGTH
__device__ uint32_t * decodeArraySequential(uint32_t *d_in, const size_t, uint32_t *d_out, size_t &nvalue)
__device__ __host__ int decodeArrayParallel_threadLoad()
#define GPUGENIE_CODEC_VARINT_THREADBLOCK_SIZE