11#include <cuda_runtime.h>
16#include <unordered_map>
66 void setInverse(
bool inv)
override { is_inverse_ = inv; }
67 bool isInverse()
const override {
return is_inverse_; }
76 const std::vector<void*>& inputs,
77 const std::vector<void*>& outputs,
78 const std::vector<size_t>& sizes
82 std::string
getName()
const override {
return "BitplaneRZE"; }
83 size_t getNumInputs()
const override {
return 1; }
84 size_t getNumOutputs()
const override {
return 1; }
87 const std::vector<size_t>& input_sizes
90 std::unordered_map<std::string, size_t>
92 return {{
"output", actual_output_size_}};
95 return (index == 0) ? actual_output_size_ : 0;
104 return static_cast<uint8_t
>(is_inverse_ ? DataType::UINT16
109 return static_cast<uint8_t
>(is_inverse_ ? DataType::UINT8
118 if (max_size <
sizeof(uint64_t))
return 0;
119 uint64_t len =
static_cast<uint64_t
>(cached_orig_len_);
120 std::memcpy(buf, &len,
sizeof(uint64_t));
121 return sizeof(uint64_t);
124 if (size >=
sizeof(uint64_t)) {
126 std::memcpy(&len, buf,
sizeof(uint64_t));
127 cached_orig_len_ =
static_cast<size_t>(len);
132 void saveState()
override { saved_orig_len_ = cached_orig_len_; }
133 void restoreState()
override { cached_orig_len_ = saved_orig_len_; }
135 size_t getCachedOrigLen()
const {
return cached_orig_len_; }
138 bool is_inverse_ =
false;
139 size_t actual_output_size_ = 0;
143 size_t cached_orig_len_ = 0;
144 size_t saved_orig_len_ = 0;
Definition bitplane_rze_stage.h:60
bool isGraphCompatible() const override
Definition bitplane_rze_stage.h:70
uint16_t getStageTypeId() const override
Definition bitplane_rze_stage.h:98
size_t getActualOutputSize(int index) const override
Definition bitplane_rze_stage.h:94
void saveState() override
Definition bitplane_rze_stage.h:132
void execute(cudaStream_t stream, MemoryPool *pool, const std::vector< void * > &inputs, const std::vector< void * > &outputs, const std::vector< size_t > &sizes) override
size_t serializeHeader(size_t, uint8_t *buf, size_t max_size) const override
Definition bitplane_rze_stage.h:117
uint8_t getOutputDataType(size_t) const override
Definition bitplane_rze_stage.h:103
size_t getMaxHeaderSize(size_t) const override
Definition bitplane_rze_stage.h:130
void deserializeHeader(const uint8_t *buf, size_t size) override
Definition bitplane_rze_stage.h:123
void setInverse(bool inv) override
Definition bitplane_rze_stage.h:66
std::string getName() const override
Definition bitplane_rze_stage.h:82
uint8_t getInputDataType(size_t) const override
Definition bitplane_rze_stage.h:108
std::unordered_map< std::string, size_t > getActualOutputSizesByName() const override
Definition bitplane_rze_stage.h:91
std::vector< size_t > estimateOutputSizes(const std::vector< size_t > &input_sizes) const override
Definition fzm_format.h:25
@ BITPLANE_RZE
Fused bitplane transpose + zero-group RZE (FZ-GPU lossless encoder)
Base class interface for all compression stages.