GENIE
genie::compression::DeviceIntegerCODEC Class Referenceabstract

#include <DeviceCodecs.h>

Inheritance diagram for genie::compression::DeviceIntegerCODEC:
genie::compression::DeviceBitPackingCodec genie::compression::DeviceBitPackingPrefixedCodec genie::compression::DeviceCompositeCodec< Codec1, Codec2 > genie::compression::DeviceCopyCodec genie::compression::DeviceCopyMultiblockCodec genie::compression::DeviceDeltaCodec genie::compression::DeviceSerialCodec< Codec1, Codec2 > genie::compression::DeviceVarintCodec

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 ()
 

Detailed Description

Definition at line 35 of file DeviceCodecs.h.

Constructor & Destructor Documentation

◆ DeviceIntegerCODEC()

__device__ __host__ genie::compression::DeviceIntegerCODEC::DeviceIntegerCODEC ( )
inline

Definition at line 38 of file DeviceCodecs.h.

Member Function Documentation

◆ decodeArray()

◆ decodeArrayParallel()

__device__ const uint32_t* genie::compression::DeviceIntegerCODEC::decodeArrayParallel ( const uint32_t *  d_in,
const size_t  length,
uint32_t *  d_out,
size_t &  nvalue 
)
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.

◆ decodeArrayParallel_lengthPerBlock()

virtual __device__ __host__ int genie::compression::DeviceIntegerCODEC::decodeArrayParallel_lengthPerBlock ( )
inlinevirtual

◆ decodeArrayParallel_maxBlocks()

virtual __device__ __host__ int genie::compression::DeviceIntegerCODEC::decodeArrayParallel_maxBlocks ( )
inlinevirtual

◆ decodeArrayParallel_minEffectiveLength()

virtual __device__ __host__ int genie::compression::DeviceIntegerCODEC::decodeArrayParallel_minEffectiveLength ( )
inlinevirtual

◆ decodeArrayParallel_threadLoad()

virtual __device__ __host__ int genie::compression::DeviceIntegerCODEC::decodeArrayParallel_threadLoad ( )
inlinevirtual

◆ decodeArrayParallel_threadsPerBlock()

◆ decodeArraySequential()

__device__ const uint32_t* genie::compression::DeviceIntegerCODEC::decodeArraySequential ( const uint32_t *  d_in,
const size_t  length,
uint32_t *  d_out,
size_t &  nvalue 
)
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.

◆ encodeArray()

◆ name()


The documentation for this class was generated from the following file: