1 #ifndef DEVICE_CODECS_H_ 2 #define DEVICE_CODECS_H_ 15 template <
class CODEC> __global__
void 21 size_t *d_decomprLength);
24 template <
class CODEC>
void 32 size_t *d_decomprLength);
41 encodeArray(uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue) = 0;
43 virtual const uint32_t*
44 decodeArray(
const uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue) = 0;
53 __device__
const uint32_t*
54 decodeArraySequential(
const uint32_t *d_in,
const size_t length, uint32_t *d_out,
size_t &nvalue) {
return NULL;}
62 __device__
const uint32_t*
63 decodeArrayParallel(
const uint32_t *d_in,
const size_t length, uint32_t *d_out,
size_t &nvalue) {
return NULL;}
66 name()
const {
return std::string();};
69 virtual __device__ __host__
int 73 virtual __device__ __host__
int 77 virtual __device__ __host__
int 81 virtual __device__ __host__
int 85 virtual __device__ __host__
int 96 encodeArray(uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue)
98 std::memcpy(out, in,
sizeof(uint32_t) * length);
103 decodeArray(
const uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue)
105 std::memcpy(out, in,
sizeof(uint32_t) * length);
117 name()
const {
return "CopyMB"; }
134 encodeArray(uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue)
136 std::memcpy(out, in,
sizeof(uint32_t) * length);
141 decodeArray(
const uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue)
143 std::memcpy(out, in,
sizeof(uint32_t) * length);
156 name()
const {
return "Copy"; }
174 encodeArray(uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue);
177 decodeArray(
const uint32_t *in,
const size_t length, uint32_t *out,
size_t &nvalue);
179 __device__
const uint32_t*
186 name()
const {
return "Delta"; }
virtual __device__ __host__ int decodeArrayParallel_maxBlocks()
__device__ __host__ int decodeArrayParallel_maxBlocks()
void decodeArrayParallel(int blocks, int threads, uint32_t *d_Input, size_t arrayLength, uint32_t *d_Output, size_t capacity, size_t *d_decomprLength)
This is the top-level namespace of the project.
__device__ __host__ int decodeArrayParallel_threadLoad()
virtual __device__ __host__ int decodeArrayParallel_lengthPerBlock()
virtual __device__ __host__ int decodeArrayParallel_threadLoad()
__device__ __host__ int decodeArrayParallel_lengthPerBlock()
__device__ __host__ int decodeArrayParallel_threadsPerBlock()
virtual void encodeArray(uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)=0
__device__ const uint32_t * decodeArrayParallel(const uint32_t *d_in, const size_t length, uint32_t *d_out, size_t &nvalue)
__device__ __host__ int decodeArrayParallel_threadsPerBlock()
const uint32_t * decodeArray(const uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
__device__ __host__ int decodeArrayParallel_threadLoad()
__device__ __host__ int decodeArrayParallel_lengthPerBlock()
virtual std::string name() const
void encodeArray(uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
__device__ __host__ int decodeArrayParallel_maxBlocks()
virtual const uint32_t * decodeArray(const uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)=0
const uint32_t * decodeArray(const uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
void encodeArray(uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
__device__ __host__ DeviceDeltaCodec()
virtual __device__ __host__ int decodeArrayParallel_minEffectiveLength()
__device__ __host__ int decodeArrayParallel_maxBlocks()
__device__ __host__ DeviceCopyMultiblockCodec()
__device__ __host__ DeviceCopyCodec()
__device__ __host__ int decodeArrayParallel_minEffectiveLength()
__device__ __host__ int decodeArrayParallel_minEffectiveLength()
__device__ __host__ int decodeArrayParallel_minEffectiveLength()
__device__ __host__ int decodeArrayParallel_lengthPerBlock()
__global__ void g_decodeArrayParallel(uint32_t *d_Input, size_t arrayLength, uint32_t *d_Output, size_t capacity, size_t *d_decomprLength)
__device__ const uint32_t * decodeArraySequential(const uint32_t *d_in, const size_t length, uint32_t *d_out, size_t &nvalue)
__device__ __host__ DeviceIntegerCODEC()
__device__ __host__ int decodeArrayParallel_threadLoad()
__device__ __host__ int decodeArrayParallel_threadsPerBlock()
virtual __device__ __host__ int decodeArrayParallel_threadsPerBlock()