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

GPU tuple deinterleave stage (AoS -> SoA transpose over fixed-size blocks). More...

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

Go to the source code of this file.

Classes

class  fz::TUPLStage
 

Namespaces

namespace  fz
 

Detailed Description

GPU tuple deinterleave stage (AoS -> SoA transpose over fixed-size blocks).

Given a block of tuples structs, each dim fields wide with fields of word_size bytes (word_size in {1,2,4,8}), the forward pass regroups the data field-major (SoA): all field 0 words, then all field 1 words, etc. The inverse pass recombines SoA back into the original AoS layout. Output is the same byte size as input (pure permutation, no compression).

Any leftover bytes at the tail of a block that don't form a complete tuple (block_size not evenly divisible by dim * word_size) are copied verbatim, unchanged by either direction.

Serialized header (6 bytes): [0..3] block_size (uint32_t LE), [4] word_size (uint8_t), [5] dim (uint8_t).