GENIE
genie::compression::DeviceVarintCodec Class Reference

#include <DeviceVarintCodec.h>

Inheritance diagram for genie::compression::DeviceVarintCodec:
genie::compression::DeviceIntegerCODEC

Public Member Functions

void encodeArray (uint32_t *in, const size_t length, uint32_t *out, size_t &nvalue)
 
const uint32_t * decodeArray (const uint32_t *in, const size_t, uint32_t *out, size_t &nvalue)
 
__device__ uint32_t * decodeArraySequential (uint32_t *d_in, const size_t, uint32_t *d_out, size_t &nvalue)
 
__device__ uint32_t * decodeArrayParallel (uint32_t *d_in, size_t, uint32_t *d_out, size_t &capacity)
 
std::string name () const
 
__device__ __host__ int decodeArrayParallel_maxBlocks ()
 
__device__ __host__ int decodeArrayParallel_minEffectiveLength ()
 
__device__ __host__ int decodeArrayParallel_lengthPerBlock ()
 
__device__ __host__ int decodeArrayParallel_threadsPerBlock ()
 
__device__ __host__ int decodeArrayParallel_threadLoad ()
 
- Public Member Functions inherited from genie::compression::DeviceIntegerCODEC
__device__ __host__ DeviceIntegerCODEC ()
 
__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)
 

Detailed Description

This class defines a varint integer codec (a.k.a. variable integer, variable byte,...)

Supports decoding from withing a CUDA kernel.

Based on varint compression from Daniel Lemire.

Definition at line 29 of file DeviceVarintCodec.h.

Member Function Documentation

◆ decodeArray()

const uint32_t * genie::compression::DeviceVarintCodec::decodeArray ( const uint32_t *  in,
const size_t  length,
uint32_t *  out,
size_t &  nvalue 
)
virtual

Implements genie::compression::DeviceIntegerCODEC.

Definition at line 79 of file DeviceVarintCodec.cu.

◆ decodeArrayParallel()

__device__ uint32_t * genie::compression::DeviceVarintCodec::decodeArrayParallel ( uint32_t *  d_in,
size_t  comprLength,
uint32_t *  d_out,
size_t &  capacity 
)

Definition at line 164 of file DeviceVarintCodec.cu.

◆ decodeArrayParallel_lengthPerBlock()

__device__ __host__ int genie::compression::DeviceVarintCodec::decodeArrayParallel_lengthPerBlock ( )
inlinevirtual

Maximal uncompressed (or compressed) size of the array the codec is able to process

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 50 of file DeviceVarintCodec.h.

◆ decodeArrayParallel_maxBlocks()

__device__ __host__ int genie::compression::DeviceVarintCodec::decodeArrayParallel_maxBlocks ( )
inlinevirtual

The amount of CUDA blocks this codec is able to operate on at the same time

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 48 of file DeviceVarintCodec.h.

◆ decodeArrayParallel_minEffectiveLength()

__device__ __host__ int genie::compression::DeviceVarintCodec::decodeArrayParallel_minEffectiveLength ( )
inlinevirtual

Minimal effective lenth of the compression

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 49 of file DeviceVarintCodec.h.

◆ decodeArrayParallel_threadLoad()

__device__ __host__ int genie::compression::DeviceVarintCodec::decodeArrayParallel_threadLoad ( )
inlinevirtual

Number of decompressed values extracted by a single thread

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 52 of file DeviceVarintCodec.h.

◆ decodeArrayParallel_threadsPerBlock()

__device__ __host__ int genie::compression::DeviceVarintCodec::decodeArrayParallel_threadsPerBlock ( )
inlinevirtual

Maximal number of threads per single block

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 51 of file DeviceVarintCodec.h.

◆ decodeArraySequential()

__device__ uint32_t * genie::compression::DeviceVarintCodec::decodeArraySequential ( uint32_t *  d_in,
const size_t  comprLength,
uint32_t *  d_out,
size_t &  nvalue 
)

Definition at line 157 of file DeviceVarintCodec.cu.

◆ encodeArray()

void genie::compression::DeviceVarintCodec::encodeArray ( uint32_t *  in,
const size_t  length,
uint32_t *  out,
size_t &  nvalue 
)
virtual

Implements genie::compression::DeviceIntegerCODEC.

Definition at line 15 of file DeviceVarintCodec.cu.

◆ name()

std::string genie::compression::DeviceVarintCodec::name ( ) const
inlinevirtual

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 46 of file DeviceVarintCodec.h.


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