FZGPUModules 2.0
GPU-accelerated modular compression pipelines
Loading...
Searching...
No Matches
ginterp_kernels.h
Go to the documentation of this file.
1#pragma once
2
13#include "backend/types.h"
14#include <cstddef>
15#include <cstdint>
16
17// Forward-declared; full definition lives in `cusz_type_subset.h` (included
18// only by ginterp_kernels.cu and ginterp_stage.cu, the two consumers).
20
21namespace fz {
22namespace ginterp {
23
29dim3 ginterpAnchorLen3(size_t nx, size_t ny, size_t nz);
30
39dim3 ginterpAnchorLen2(size_t nx, size_t ny);
40
60template <typename TInput, typename TCode>
62 const TInput* d_data, dim3 data_len3,
63 TCode* d_ectrl,
64 TInput* d_anchor, dim3 anchor_len3,
65 TInput* d_outlier_vals, uint32_t* d_outlier_idxs,
66 uint32_t* d_outlier_count_scratch,
67 uint32_t d_outlier_capacity,
68 double eb_r, double ebx2, int radius,
69 const INTERPOLATION_PARAMS& intp_param,
70 fz::stream_t stream);
71
82template <typename TInput, typename TCode>
84 const TCode* d_ectrl, dim3 data_len3,
85 const TInput* d_anchor, dim3 anchor_len3,
86 TInput* d_outlier_tmp,
87 TInput* d_out,
88 double eb_r, double ebx2, int radius,
89 const INTERPOLATION_PARAMS& intp_param,
90 fz::stream_t stream);
91
103template <typename TInput, typename TCode>
105 const TInput* d_data, dim3 data_len3,
106 TCode* d_ectrl,
107 TInput* d_anchor, dim3 anchor_len3,
108 TInput* d_outlier_vals, uint32_t* d_outlier_idxs,
109 uint32_t* d_outlier_count_scratch,
110 uint32_t d_outlier_capacity,
111 double eb_r, double ebx2, int radius,
112 const INTERPOLATION_PARAMS& intp_param,
113 fz::stream_t stream);
114
120template <typename TInput, typename TCode>
122 const TCode* d_ectrl, dim3 data_len3,
123 const TInput* d_anchor, dim3 anchor_len3,
124 TInput* d_outlier_tmp,
125 TInput* d_out,
126 double eb_r, double ebx2, int radius,
127 const INTERPOLATION_PARAMS& intp_param,
128 fz::stream_t stream);
129
134void launchGInterpResetErrors(float* d_errors, fz::stream_t stream);
135
144template <typename TInput>
146 const TInput* d_data, dim3 data_len3,
147 float* d_errors,
148 fz::stream_t stream);
149
160template <typename TInput>
162 const TInput* d_data, dim3 data_len3,
163 int dim,
164 float* d_errors,
165 fz::stream_t stream);
166
198template <typename TInput>
200 const TInput* d_data, dim3 data_len3,
201 int dim,
202 dim3 sample_starts, dim3 sample_block_grid_sizes, dim3 sample_strides,
203 float eb_r, float ebx2,
204 const INTERPOLATION_PARAMS& intp_param,
205 float* d_errors,
206 bool workflow,
207 fz::stream_t stream);
208
218template <typename TInput>
220 const TInput* d_outlier_vals,
221 const uint32_t* d_outlier_idxs,
222 uint32_t n,
223 TInput* d_outlier_tmp,
224 fz::stream_t stream);
225
226} // namespace ginterp
227} // namespace fz
void launchGInterpProfileMode3(const TInput *d_data, dim3 data_len3, int dim, dim3 sample_starts, dim3 sample_block_grid_sizes, dim3 sample_strides, float eb_r, float ebx2, const INTERPOLATION_PARAMS &intp_param, float *d_errors, bool workflow, fz::stream_t stream)
void launchGInterpProfileMode1(const TInput *d_data, dim3 data_len3, float *d_errors, fz::stream_t stream)
dim3 ginterpAnchorLen2(size_t nx, size_t ny)
void launchGInterpInverse2D(const TCode *d_ectrl, dim3 data_len3, const TInput *d_anchor, dim3 anchor_len3, TInput *d_outlier_tmp, TInput *d_out, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, fz::stream_t stream)
void launchGInterpProfileMode2(const TInput *d_data, dim3 data_len3, int dim, float *d_errors, fz::stream_t stream)
void launchScatterOutliers(const TInput *d_outlier_vals, const uint32_t *d_outlier_idxs, uint32_t n, TInput *d_outlier_tmp, fz::stream_t stream)
void launchGInterpForward3D(const TInput *d_data, dim3 data_len3, TCode *d_ectrl, TInput *d_anchor, dim3 anchor_len3, TInput *d_outlier_vals, uint32_t *d_outlier_idxs, uint32_t *d_outlier_count_scratch, uint32_t d_outlier_capacity, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, fz::stream_t stream)
void launchGInterpInverse3D(const TCode *d_ectrl, dim3 data_len3, const TInput *d_anchor, dim3 anchor_len3, TInput *d_outlier_tmp, TInput *d_out, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, fz::stream_t stream)
dim3 ginterpAnchorLen3(size_t nx, size_t ny, size_t nz)
void launchGInterpResetErrors(float *d_errors, fz::stream_t stream)
void launchGInterpForward2D(const TInput *d_data, dim3 data_len3, TCode *d_ectrl, TInput *d_anchor, dim3 anchor_len3, TInput *d_outlier_vals, uint32_t *d_outlier_idxs, uint32_t *d_outlier_count_scratch, uint32_t d_outlier_capacity, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, fz::stream_t stream)
Definition algorithms.h:48
Definition cusz_type_subset.h:32
Backend-neutral GPU type aliases.