FZGPUModules 2.0
GPU-accelerated modular compression pipelines
Loading...
Searching...
No Matches
config.h File Reference

TOML-based pipeline configuration file support. More...

#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  fz::StageFingerprintInfo
 A stage's name paired with a hash of the source that implements it. More...
 

Namespaces

namespace  fz
 

Functions

std::vector< std::string > fz::registeredStageTypes ()
 Every stage type string loadConfig() accepts, in registry order.
 
std::vector< StageFingerprintInfofz::stageFingerprints ()
 Per-stage source fingerprints for THIS build.
 

Detailed Description

TOML-based pipeline configuration file support.

Loaded by Pipeline::loadConfig() / Pipeline(path) and written by Pipeline::saveConfig(). This header contains no toml++ types — the dependency is an implementation detail confined to config.cpp.

Supported stage type values: query registeredStageTypes() (below) or run fzgmod-cli --list-stages. Both read the single stage registry in config.cpp, so they cannot go stale — a prose list here did, silently, omitting GInterp, AdaptiveBitpack, TiledLorenzo, GPULZ, ANS, Huffman, ADM and others long after they shipped.

File format: human-readable TOML v1.0

Minimal example:

[pipeline]
dims = [3600, 1800, 1]
input_size = 25920000
[[stage]]
name = "lorenzo"
type = "LorenzoQuant"
input_type = "float32"
code_type = "uint16"
error_bound = 1e-4
error_bound_mode = "ABS"
quant_radius = 32768
outlier_capacity = 0.10
zigzag_codes = true
[[stage]]
name = "bshuf"
type = "Bitshuffle"
block_size = 16384
element_width = 2
inputs = [{ from = "lorenzo", port = "codes" }]
[[stage]]
name = "rze"
type = "RZE"
chunk_size = 16384
levels = 4
inputs = [{ from = "bshuf" }]