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";
45 int chunk_bytes = 16384;
46};
47
49inline const char* chunkCoderOpName(ChunkCoderKind k) {
50 return (k == ChunkCoderKind::RRE) ? "RRECoder" : "RZECoder";
51}
52
56
59
73 const ChunkFusionSpec& spec, const float* d_in, size_t n, const uint8_t* d_params,
74 uint8_t* d_scratch, uint32_t* d_sizes, unsigned nc, fz::stream_t stream,
75 uint32_t* d_side_idxs = nullptr, float* d_side_vals = nullptr,
76 uint32_t* d_side_count = nullptr, uint32_t side_max = 0);
77
94 const ChunkFusionSpec& spec, const float* d_in, size_t n,
95 const uint8_t* host_params, size_t params_bytes,
96 uint8_t* d_out, MemoryPool* pool, fz::stream_t stream,
97 uint32_t* d_side_idxs = nullptr, float* d_side_vals = nullptr,
98 uint32_t side_max = 0, uint32_t* out_side_count = nullptr);
99
100} // namespace fused
101} // 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:49
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
int chunk_bytes
Definition nvrtc_chunk_fusion.h:45
Backend-neutral GPU type aliases.