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

#include <DeviceSerialCodec.h>

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

Public Member Functions

__device__ __host__ DeviceSerialCodec ()
 
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::DeviceSerialCodec< Codec1, Codec2 >

Definition at line 28 of file DeviceSerialCodec.h.

Constructor & Destructor Documentation

◆ DeviceSerialCodec()

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

Definition at line 32 of file DeviceSerialCodec.h.

Member Function Documentation

◆ decodeArray()

template<class Codec1 , class Codec2 >
const uint32_t * genie::compression::DeviceSerialCodec< 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 68 of file DeviceSerialCodec.cu.

◆ decodeArrayParallel()

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

Definition at line 102 of file DeviceSerialCodec.cu.

◆ decodeArrayParallel_lengthPerBlock()

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

◆ decodeArrayParallel_maxBlocks()

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

◆ decodeArrayParallel_minEffectiveLength()

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

Minimal effective lenth of the compression

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 63 of file DeviceSerialCodec.h.

◆ decodeArrayParallel_threadLoad()

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

Number of decompressed values extracted by a single thread

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 84 of file DeviceSerialCodec.h.

◆ decodeArrayParallel_threadsPerBlock()

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

Maximal number of threads per single block

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 79 of file DeviceSerialCodec.h.

◆ decodeArraySequential()

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

Definition at line 95 of file DeviceSerialCodec.cu.

◆ encodeArray()

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

Implements genie::compression::DeviceIntegerCODEC.

Definition at line 48 of file DeviceSerialCodec.cu.

◆ name()

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

Reimplemented from genie::compression::DeviceIntegerCODEC.

Definition at line 56 of file DeviceSerialCodec.h.

Member Data Documentation

◆ codec1

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

Definition at line 40 of file DeviceSerialCodec.h.

◆ codec2

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

Definition at line 41 of file DeviceSerialCodec.h.


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