GENIE
|
#include <DeviceCodecs.h>
Public Member Functions | |
__device__ __host__ | DeviceIntegerCODEC () |
virtual void | encodeArray (uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)=0 |
virtual const uint32_t * | decodeArray (const uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)=0 |
__device__ const uint32_t * | decodeArraySequential (const uint32_t *d_in, const size_t length, uint32_t *d_out, size_t &nvalue) |
__device__ const uint32_t * | decodeArrayParallel (const uint32_t *d_in, const size_t length, uint32_t *d_out, size_t &nvalue) |
virtual std::string | name () const |
virtual __device__ __host__ int | decodeArrayParallel_minEffectiveLength () |
virtual __device__ __host__ int | decodeArrayParallel_maxBlocks () |
virtual __device__ __host__ int | decodeArrayParallel_lengthPerBlock () |
virtual __device__ __host__ int | decodeArrayParallel_threadsPerBlock () |
virtual __device__ __host__ int | decodeArrayParallel_threadLoad () |
Definition at line 35 of file DeviceCodecs.h.
|
inline |
Definition at line 38 of file DeviceCodecs.h.
|
pure virtual |
Implemented in genie::compression::DeviceDeltaCodec, genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceVarintCodec, and genie::compression::DeviceCompositeCodec< Codec1, Codec2 >.
|
inline |
Decompress compressed list using thread parallelism.
Node, this function should be pure virtual, but CUDA doesn't allow combination of virtual functions on both host and device.
Definition at line 63 of file DeviceCodecs.h.
|
inlinevirtual |
Maximal uncompressed (or compressed) size of the array the codec is able to process
Reimplemented in genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceCompositeCodec< Codec1, Codec2 >, and genie::compression::DeviceVarintCodec.
Definition at line 78 of file DeviceCodecs.h.
|
inlinevirtual |
The amount of CUDA blocks this codec is able to operate on at the same time
Reimplemented in genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceCompositeCodec< Codec1, Codec2 >, and genie::compression::DeviceVarintCodec.
Definition at line 74 of file DeviceCodecs.h.
|
inlinevirtual |
Minimal effective lenth of the compression
Reimplemented in genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceCompositeCodec< Codec1, Codec2 >, and genie::compression::DeviceVarintCodec.
Definition at line 70 of file DeviceCodecs.h.
|
inlinevirtual |
Number of decompressed values extracted by a single thread
Reimplemented in genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceCompositeCodec< Codec1, Codec2 >, and genie::compression::DeviceVarintCodec.
Definition at line 86 of file DeviceCodecs.h.
|
inlinevirtual |
Maximal number of threads per single block
Reimplemented in genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceCompositeCodec< Codec1, Codec2 >, and genie::compression::DeviceVarintCodec.
Definition at line 82 of file DeviceCodecs.h.
|
inline |
The function must make sure not to write in d_out[nvalue] and beyond. If decompressed size is greater than the capacity (nvalue), there is no need to write any output at all.
Node, this function should be pure virtual, but CUDA doesn't allow combination of virtual functions on both host and device. If a function is pure virtual, it has to be overridden on both host and device
Definition at line 54 of file DeviceCodecs.h.
|
pure virtual |
Implemented in genie::compression::DeviceDeltaCodec, genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceVarintCodec, and genie::compression::DeviceCompositeCodec< Codec1, Codec2 >.
|
inlinevirtual |
Reimplemented in genie::compression::DeviceBitPackingPrefixedCodec, genie::compression::DeviceDeltaCodec, genie::compression::DeviceCopyCodec, genie::compression::DeviceCopyMultiblockCodec, genie::compression::DeviceBitPackingCodec, genie::compression::DeviceSerialCodec< Codec1, Codec2 >, genie::compression::DeviceVarintCodec, and genie::compression::DeviceCompositeCodec< Codec1, Codec2 >.
Definition at line 66 of file DeviceCodecs.h.