41constexpr uint8_t FZM_VERSION_MINOR = 1;
43 |
static_cast<uint16_t
>(FZM_VERSION_MINOR);
56 return (v <= 0xFF) ?
static_cast<uint8_t
>(v) :
static_cast<uint8_t
>(v >> 8);
60 return (v <= 0xFF) ? 0u :
static_cast<uint8_t
>(v & 0xFF);
119constexpr size_t FZM_MAX_STAGE_INPUTS = 8;
120constexpr size_t FZM_MAX_STAGE_OUTPUTS = 8;
160static_assert(
sizeof(FZMStageInfo) == 256,
"FZMStageInfo must be 256 bytes");
211static_assert(
sizeof(FZMBufferEntry) == 256,
"FZMBufferEntry must be 256 bytes");
271static_assert(
sizeof(FZMHeaderCore) == 80,
"FZMHeaderCore must be 80 bytes");
280 case DataType::UINT8:
case DataType::INT8:
return 1;
281 case DataType::UINT16:
case DataType::INT16:
return 2;
282 case DataType::UINT32:
case DataType::INT32:
case DataType::FLOAT32:
return 4;
283 case DataType::UINT64:
case DataType::INT64:
case DataType::FLOAT64:
return 8;
284 default:
throw std::runtime_error(
"Unknown data type");
291 case DataType::UINT8:
return "uint8";
292 case DataType::UINT16:
return "uint16";
293 case DataType::UINT32:
return "uint32";
294 case DataType::UINT64:
return "uint64";
295 case DataType::INT8:
return "int8";
296 case DataType::INT16:
return "int16";
297 case DataType::INT32:
return "int32";
298 case DataType::INT64:
return "int64";
299 case DataType::FLOAT32:
return "float32";
300 case DataType::FLOAT64:
return "float64";
301 default:
return "unknown";
324 default:
return "Unknown";
Definition fzm_format.h:25
size_t getDataTypeSize(DataType type)
Definition fzm_format.h:278
constexpr uint8_t FZM_VERSION_MAJOR
Definition fzm_format.h:40
std::string dataTypeToString(DataType type)
Definition fzm_format.h:289
std::string stageTypeToString(StageType type)
Definition fzm_format.h:306
constexpr uint8_t fzmVersionMinor(uint16_t v)
Definition fzm_format.h:59
constexpr size_t FZM_MAX_SOURCES
Maximum source stages per pipeline.
Definition fzm_format.h:66
constexpr size_t FZM_STAGE_CONFIG_SIZE
Per-stage serialized config slot (bytes)
Definition fzm_format.h:65
constexpr uint8_t fzmVersionMajor(uint16_t v)
Definition fzm_format.h:55
constexpr uint16_t FZM_FLAG_HAS_DATA_CHECKSUM
data_checksum field is valid
Definition fzm_format.h:48
constexpr uint32_t FZM_MAGIC
Definition fzm_format.h:28
StageType
Stage type identifiers written into the FZM header.
Definition fzm_format.h:76
@ BITSHUFFLE
BitshuffleStage — GPU bit-matrix transpose.
@ SCALE
ScaleStage (test utility)
@ RLE
RLEStage — run-length encoding.
@ LORENZO_1D
LorenzoStage — 1-D predictor.
@ LORENZO_3D
LorenzoStage — 3-D predictor.
@ RZE
RZEStage — recursive zero-byte elimination.
@ BITPACK
Reserved (not yet implemented)
@ LORENZO_2D
LorenzoStage — 2-D predictor.
@ HUFFMAN
Reserved (not yet implemented)
@ SPLIT
SplitStage (test utility)
@ MERGE
MergeStage (test utility)
@ ZIGZAG
ZigzagStage — zigzag encode/decode.
@ DIFFERENCE
DifferenceStage — first-order differencing.
@ NEGABINARY
NegabinaryStage — negabinary encode/decode.
@ QUANTIZER
QuantizerStage — direct-value quantization.
@ PASSTHROUGH
PassThroughStage (test utility)
constexpr uint16_t FZM_FLAG_HAS_HEADER_CHECKSUM
header_checksum field is valid
Definition fzm_format.h:49
DataType
Element data type identifiers used in buffer and stage descriptors.
Definition fzm_format.h:103
constexpr size_t FZM_LEGACY_HEADER_CORE_SIZE
Definition fzm_format.h:46
constexpr size_t FZM_MAX_NAME_LEN
Maximum output port name length (bytes, null-terminated)
Definition fzm_format.h:64
constexpr size_t FZM_MAX_BUFFERS
Maximum pipeline output buffers per file.
Definition fzm_format.h:63
Per-buffer metadata record written into the FZM header (256 bytes).
Definition fzm_format.h:170
StageType stage_type
Producer stage type (2B)
Definition fzm_format.h:171
uint64_t data_size
Actual compressed bytes in this segment (8B)
Definition fzm_format.h:178
uint8_t producer_output_idx
Which output port of the producer (1B)
Definition fzm_format.h:174
uint64_t uncompressed_size
Bytes after fully decompressing this stage's output (8B)
Definition fzm_format.h:180
uint8_t stage_config[FZM_STAGE_CONFIG_SIZE]
Producer stage config, see Stage::serializeHeader() (128B)
Definition fzm_format.h:183
char name[FZM_MAX_NAME_LEN]
Output port name, null-terminated (64B)
Definition fzm_format.h:176
DataType data_type
Element data type in this buffer (1B)
Definition fzm_format.h:173
uint64_t allocated_size
Buffer capacity required for decompression (8B)
Definition fzm_format.h:179
uint8_t reserved2[14]
Reserved for future use (14B)
Definition fzm_format.h:186
uint32_t config_size
Valid bytes in stage_config (4B)
Definition fzm_format.h:184
uint16_t dag_buffer_id
DAG buffer ID used for inverse routing; 0xFFFF = unassigned (2B)
Definition fzm_format.h:175
uint16_t stage_version
Producer stage config version (2B)
Definition fzm_format.h:172
uint64_t byte_offset
Byte offset of this segment within the compressed payload (8B)
Definition fzm_format.h:181
Per-stage metadata record written into the FZM header (256 bytes).
Definition fzm_format.h:131
uint8_t stage_config[FZM_STAGE_CONFIG_SIZE]
Serialized stage config, see Stage::serializeHeader() (128B)
Definition fzm_format.h:141
uint8_t num_inputs
Number of input ports (1B)
Definition fzm_format.h:134
uint8_t num_outputs
Number of output ports (1B)
Definition fzm_format.h:135
StageType stage_type
Stage type (2B)
Definition fzm_format.h:132
uint8_t reserved2[84]
Reserved for future use (84B)
Definition fzm_format.h:144
uint16_t input_buffer_ids[FZM_MAX_STAGE_INPUTS]
Input buffer indices (16B); 0xFFFF = unused.
Definition fzm_format.h:138
uint16_t stage_version
Config format version (2B)
Definition fzm_format.h:133
uint32_t config_size
Valid bytes in stage_config (4B)
Definition fzm_format.h:142
uint16_t reserved1
Padding (2B)
Definition fzm_format.h:136
uint16_t output_buffer_ids[FZM_MAX_STAGE_OUTPUTS]
Output buffer indices (16B); 0xFFFF = unused.
Definition fzm_format.h:139