FZGPUModules 2.0
GPU-accelerated modular compression pipelines
Loading...
Searching...
No Matches
nvrtc_warp_fusion.h
Go to the documentation of this file.
1#pragma once
2
17#include "backend/types.h"
18#include <cstddef>
19#include <cstdint>
20#include <string>
21#include <vector>
22
23namespace fz {
24class MemoryPool;
25
26namespace fused {
27
33 std::string predictor = "Lorenzo1DPredictor";
34 std::vector<std::string> transforms; // optional, in execution order
35 std::string coder = "AdaptiveBitpackCoder"; // swappable sink
36 int elems_per_lane = 1;
37
43 std::string predictor_ti;
44 std::string coder_ti;
45};
46
49
61 const WarpFusionSpec& spec, const float* d_in, size_t n_ab,
62 const uint8_t* pred_params, size_t params_bytes,
63 uint8_t* d_out, MemoryPool* pool, fz::stream_t stream,
64 std::string* execution_path = nullptr);
65
81 const WarpFusionSpec& spec, const uint8_t* d_archive, size_t archive_bytes,
82 size_t n_elems, size_t n_out, float ebx2,
83 const uint8_t* pred_params, size_t params_bytes,
84 float* d_out, MemoryPool* pool, fz::stream_t stream);
85
86std::string generateWarpInverseSource(const WarpFusionSpec& spec);
87
88} // namespace fused
89} // namespace fz
Definition mempool.h:82
Definition dag.h:24
size_t launchNvrtcWarpInverseFused(const WarpFusionSpec &spec, const uint8_t *d_archive, size_t archive_bytes, size_t n_elems, size_t n_out, float ebx2, const uint8_t *pred_params, size_t params_bytes, float *d_out, MemoryPool *pool, fz::stream_t stream)
size_t launchNvrtcWarpFused(const WarpFusionSpec &spec, const float *d_in, size_t n_ab, const uint8_t *pred_params, size_t params_bytes, uint8_t *d_out, MemoryPool *pool, fz::stream_t stream, std::string *execution_path=nullptr)
std::string generateWarpFusionSource(const WarpFusionSpec &spec)
The CUDA source the codegen emits for spec (exposed for tests/inspection).
Definition nvrtc_warp_fusion.h:32
std::string predictor_ti
Definition nvrtc_warp_fusion.h:43
Backend-neutral GPU type aliases.