FZGPUModules 2.0
GPU-accelerated modular compression pipelines
Loading...
Searching...
No Matches
nvrtc_chunk_fusion.h
Go to the documentation of this file.
1#pragma once
2
24#include "fused/chunk_fusion/chunk_fusion.h" // ChunkCoderKind, chunk geometry
25#include "backend/types.h"
26#include <cstddef>
27#include <cstdint>
28#include <string>
29#include <vector>
30
31namespace fz {
32namespace fused {
33
38 std::string quant_op = "QuantInplaceZigzag";
39 std::vector<std::string> transforms = {"DiffNegabinary", "Bitshuffle32"};
40 std::string coder = "RZECoder";
41};
42
44inline const char* chunkCoderOpName(ChunkCoderKind k) {
45 return (k == ChunkCoderKind::RRE) ? "RRECoder" : "RZECoder";
46}
47
51
54
68 const ChunkFusionSpec& spec, const float* d_in, size_t n, const uint8_t* d_params,
69 uint8_t* d_scratch, uint32_t* d_sizes, unsigned nc, fz::stream_t stream,
70 uint32_t* d_side_idxs = nullptr, float* d_side_vals = nullptr,
71 uint32_t* d_side_count = nullptr, uint32_t side_max = 0);
72
89 const ChunkFusionSpec& spec, const float* d_in, size_t n,
90 const uint8_t* host_params, size_t params_bytes,
91 uint8_t* d_out, MemoryPool* pool, fz::stream_t stream,
92 uint32_t* d_side_idxs = nullptr, float* d_side_vals = nullptr,
93 uint32_t side_max = 0, uint32_t* out_side_count = nullptr);
94
95} // namespace fused
96} // namespace fz
Public launcher for chunk-cooperative fused compress (see chunk_fusion.cuh).
ChunkCoderKind
The variable-length coder that terminates a chunk-fused chain (the swappable sink).
Definition chunk_fusion.h:26
Definition mempool.h:82
Definition dag.h:24
bool nvrtcChunkFusionAvailable()
std::string generateChunkFusionSource(const ChunkFusionSpec &spec)
The CUDA source the codegen emits for spec (exposed for tests/inspection).
const char * chunkCoderOpName(ChunkCoderKind k)
Map a coder enum to its device-op name (the swappable sink).
Definition nvrtc_chunk_fusion.h:44
void launchNvrtcChunkFusedEncode(const ChunkFusionSpec &spec, const float *d_in, size_t n, const uint8_t *d_params, uint8_t *d_scratch, uint32_t *d_sizes, unsigned nc, fz::stream_t stream, uint32_t *d_side_idxs=nullptr, float *d_side_vals=nullptr, uint32_t *d_side_count=nullptr, uint32_t side_max=0)
size_t launchGenericChunkFusion(const ChunkFusionSpec &spec, const float *d_in, size_t n, const uint8_t *host_params, size_t params_bytes, uint8_t *d_out, MemoryPool *pool, fz::stream_t stream, uint32_t *d_side_idxs=nullptr, float *d_side_vals=nullptr, uint32_t side_max=0, uint32_t *out_side_count=nullptr)
Definition nvrtc_chunk_fusion.h:37
Backend-neutral GPU type aliases.