GENIE
genie::compression::DeviceCompositeCodec< Codec1, Codec2 > Class Template Reference

#include <DeviceCompositeCodec.h>

Inheritance diagram for genie::compression::DeviceCompositeCodec< Codec1, Codec2 >:
genie::compression::DeviceIntegerCODEC

Public Member Functions

__device__ __host__ DeviceCompositeCodec ()
 
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 length, uint32_t *out, size_t &nvalue)
 
__device__ uint32_t * decodeArraySequential (uint32_t *d_in, size_t length, uint32_t *d_out, size_t &nvalue)
 
__device__ uint32_t * decodeArrayParallel (uint32_t *d_in, size_t length, uint32_t *d_out, size_t &nvalue)
 
std::string name () const
 
__device__ __host__ int decodeArrayParallel_minEffectiveLength ()
 
__device__ __host__ int decodeArrayParallel_maxBlocks ()
 
__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)
 

Public Attributes

Codec1 codec1
 
Codec2 codec2
 

Detailed Description

template<class Codec1, class Codec2>
class genie::compression::DeviceCompositeCodec< Codec1, Codec2 >

This is a useful class for CODEC that only compress data having length a multiple of some unit length.

Definition at line 19 of file DeviceCompositeCodec.h.

Constructor & Destructor Documentation

◆ DeviceCompositeCodec()

template<class Codec1 , class Codec2 >
__device__ __host__ genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::DeviceCompositeCodec ( )
inline

Definition at line 23 of file DeviceCompositeCodec.h.

Member Function Documentation

◆ decodeArray()

template<class Codec1 , class Codec2 >
const uint32_t * genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArray ( const uint32_t *  in,
const size_t  length,
uint32_t *  out,
size_t &  nvalue 
)
virtual

Implements genie::compression::DeviceIntegerCODEC.

Definition at line 59 of file DeviceCompositeCodec.cu.

◆ decodeArrayParallel()

template<class Codec1 , class Codec2 >
__device__ uint32_t * genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArrayParallel ( uint32_t *  d_in,
size_t  length,
uint32_t *  d_out,
size_t &  nvalue 
)

Definition at line 109 of file DeviceCompositeCodec.cu.

◆ decodeArrayParallel_lengthPerBlock()

template<class Codec1 , class Codec2 >
__device__ __host__ int genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::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 61 of file DeviceCompositeCodec.h.

◆ decodeArrayParallel_maxBlocks()

template<class Codec1 , class Codec2 >
__device__ __host__ int genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::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 56 of file DeviceCompositeCodec.h.

◆ decodeArrayParallel_minEffectiveLength()

template<class Codec1 , class Codec2 >
__device__ __host__ int genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArrayParallel_minEffectiveLength ( )
inlinevirtual

Minimal effective lenth of the compression

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 51 of file DeviceCompositeCodec.h.

◆ decodeArrayParallel_threadLoad()

template<class Codec1 , class Codec2 >
__device__ __host__ int genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArrayParallel_threadLoad ( )
inlinevirtual

Number of decompressed values extracted by a single thread

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 72 of file DeviceCompositeCodec.h.

◆ decodeArrayParallel_threadsPerBlock()

template<class Codec1 , class Codec2 >
__device__ __host__ int genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArrayParallel_threadsPerBlock ( )
inlinevirtual

Maximal number of threads per single block

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 67 of file DeviceCompositeCodec.h.

◆ decodeArraySequential()

template<class Codec1 , class Codec2 >
__device__ uint32_t * genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::decodeArraySequential ( uint32_t *  d_in,
size_t  length,
uint32_t *  d_out,
size_t &  nvalue 
)

Definition at line 101 of file DeviceCompositeCodec.cu.

◆ encodeArray()

template<class Codec1 , class Codec2 >
void genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::encodeArray ( uint32_t *  in,
const size_t  length,
uint32_t *  out,
size_t &  nvalue 
)
virtual

Implements genie::compression::DeviceIntegerCODEC.

Definition at line 29 of file DeviceCompositeCodec.cu.

◆ name()

template<class Codec1 , class Codec2 >
std::string genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::name ( ) const
inlinevirtual

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 44 of file DeviceCompositeCodec.h.

Member Data Documentation

◆ codec1

template<class Codec1 , class Codec2 >
Codec1 genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::codec1

Definition at line 28 of file DeviceCompositeCodec.h.

◆ codec2

template<class Codec1 , class Codec2 >
Codec2 genie::compression::DeviceCompositeCodec< Codec1, Codec2 >::codec2

Definition at line 29 of file DeviceCompositeCodec.h.


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