|
FZGPUModules 2.0
GPU-accelerated modular compression pipelines
|
Fused Lorenzo predictor and quantizer stage. More...
#include "stage/stage.h"#include "fzm_format.h"#include <cuda_runtime.h>#include <array>#include <cstdint>#include <cmath>#include <cstring>Go to the source code of this file.
Classes | |
| struct | fz::LorenzoQuantConfig |
| class | fz::LorenzoQuantStage< TInput, TCode > |
| struct | fz::LorenzoQuantStage< TInput, TCode >::Config |
Enumerations | |
| enum class | fz::ErrorBoundMode : uint8_t { ABS = 0 , REL = 1 , NOA = 2 } |
Functions | |
| template<typename TInput , typename TCode > | |
| void | fz::launchLorenzoKernel2D (const TInput *d_input, size_t nx, size_t ny, TInput ebx2_r, TCode quant_radius, TCode *d_codes, TInput *d_outlier_errors, uint32_t *d_outlier_indices, uint32_t *d_outlier_count, size_t max_outliers, bool zigzag_codes, cudaStream_t stream) |
2-D forward Lorenzo kernel launcher. nx is the fast (x) dimension. | |
| template<typename TInput , typename TCode > | |
| void | fz::launchLorenzoInverseKernel2D (const TCode *d_codes, const TInput *d_outlier_errors, const uint32_t *d_outlier_indices, const uint32_t *d_outlier_count, size_t nx, size_t ny, size_t max_outliers, TInput ebx2, TCode quant_radius, TInput *d_output, bool zigzag_codes, cudaStream_t stream, MemoryPool *pool) |
| 2-D inverse Lorenzo kernel launcher. | |
| template<typename TInput , typename TCode > | |
| void | fz::launchLorenzoKernel3D (const TInput *d_input, size_t nx, size_t ny, size_t nz, TInput ebx2_r, TCode quant_radius, TCode *d_codes, TInput *d_outlier_errors, uint32_t *d_outlier_indices, uint32_t *d_outlier_count, size_t max_outliers, bool zigzag_codes, cudaStream_t stream) |
| 3-D forward Lorenzo kernel launcher. | |
| template<typename TInput , typename TCode > | |
| void | fz::launchLorenzoInverseKernel3D (const TCode *d_codes, const TInput *d_outlier_errors, const uint32_t *d_outlier_indices, const uint32_t *d_outlier_count, size_t nx, size_t ny, size_t nz, size_t max_outliers, TInput ebx2, TCode quant_radius, TInput *d_output, bool zigzag_codes, cudaStream_t stream, MemoryPool *pool) |
| 3-D inverse Lorenzo kernel launcher. | |
Fused Lorenzo predictor and quantizer stage.
|
strong |
Interpretation of the user-specified error bound.
|x_orig - x_recon| <= eb (default).|error| / |x_orig| <= eb. For Lorenzo this is a global approximation: abs_eb = eb × max(|data|). Values much smaller than max(|data|) may exceed the per-element ratio. For an exact per-element REL bound use QuantizerStage with REL mode.abs_eb = eb × (max(data) - min(data)). Equivalent to what most other compressors call "relative". | Enumerator | |
|---|---|
| ABS | Absolute error bound. |
| REL | Global-approximate point-wise relative bound. |
| NOA | Value-range relative bound (norm-of-absolute). |