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

SZx — ultrafast error-bounded lossy compressor, as a fused stage. More...

#include "stage/stage.h"
#include "fzm_format.h"
#include "backend/types.h"
#include <cstdint>
#include <cstring>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <unordered_map>
#include <vector>

Go to the source code of this file.

Classes

struct  fz::SZxConfig
 
class  fz::SZxStage< T >
 

Namespaces

namespace  fz
 

Enumerations

enum class  fz::SZxErrorMode : uint8_t
 

Detailed Description

SZx — ultrafast error-bounded lossy compressor, as a fused stage.

Reference: "SZx: an Ultra-fast Error-bounded Lossy Compressor for Scientific Datasets" (Yu, Di, et al.). This is a from-the-paper reimplementation of the SZx forward/inverse pipeline as a single fused FZGPUModules stage; no SZx source is vendored. Third-party attribution belongs in THIRD_PARTY.md.

SZx is a whole compressor: it consumes raw floats and emits a self-describing byte archive. Unlike the cuSZ-style chain (Lorenzo → Quantizer → coder), SZx has no Lorenzo prediction and no entropy coder — that is what makes it fast. Its one distinguishing move is per-block constant/non-constant classification, which is why it lives here as a fused stage rather than being composed from existing stages.

Forward: float[]/double[] → uint8[] archive Inverse: uint8[] archive → float[]/double[] (error-bounded approximation)