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 <cuda_runtime.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 double eb_r, double ebx2, int radius,
68 const INTERPOLATION_PARAMS& intp_param,
69 cudaStream_t stream);
70
81template <typename TInput, typename TCode>
83 const TCode* d_ectrl, dim3 data_len3,
84 const TInput* d_anchor, dim3 anchor_len3,
85 TInput* d_outlier_tmp,
86 TInput* d_out,
87 double eb_r, double ebx2, int radius,
88 const INTERPOLATION_PARAMS& intp_param,
89 cudaStream_t stream);
90
102template <typename TInput, typename TCode>
104 const TInput* d_data, dim3 data_len3,
105 TCode* d_ectrl,
106 TInput* d_anchor, dim3 anchor_len3,
107 TInput* d_outlier_vals, uint32_t* d_outlier_idxs,
108 uint32_t* d_outlier_count_scratch,
109 double eb_r, double ebx2, int radius,
110 const INTERPOLATION_PARAMS& intp_param,
111 cudaStream_t stream);
112
118template <typename TInput, typename TCode>
120 const TCode* d_ectrl, dim3 data_len3,
121 const TInput* d_anchor, dim3 anchor_len3,
122 TInput* d_outlier_tmp,
123 TInput* d_out,
124 double eb_r, double ebx2, int radius,
125 const INTERPOLATION_PARAMS& intp_param,
126 cudaStream_t stream);
127
132void launchGInterpResetErrors(float* d_errors, cudaStream_t stream);
133
142template <typename TInput>
144 const TInput* d_data, dim3 data_len3,
145 float* d_errors,
146 cudaStream_t stream);
147
158template <typename TInput>
160 const TInput* d_data, dim3 data_len3,
161 int dim,
162 float* d_errors,
163 cudaStream_t stream);
164
196template <typename TInput>
198 const TInput* d_data, dim3 data_len3,
199 int dim,
200 dim3 sample_starts, dim3 sample_block_grid_sizes, dim3 sample_strides,
201 float eb_r, float ebx2,
202 const INTERPOLATION_PARAMS& intp_param,
203 float* d_errors,
204 bool workflow,
205 cudaStream_t stream);
206
216template <typename TInput>
218 const TInput* d_outlier_vals,
219 const uint32_t* d_outlier_idxs,
220 uint32_t n,
221 TInput* d_outlier_tmp,
222 cudaStream_t stream);
223
224} // namespace ginterp
225} // namespace fz
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, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, cudaStream_t stream)
void launchGInterpProfileMode2(const TInput *d_data, dim3 data_len3, int dim, float *d_errors, cudaStream_t stream)
void launchGInterpProfileMode1(const TInput *d_data, dim3 data_len3, float *d_errors, cudaStream_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, cudaStream_t stream)
dim3 ginterpAnchorLen2(size_t nx, size_t ny)
void launchGInterpResetErrors(float *d_errors, cudaStream_t stream)
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, cudaStream_t stream)
dim3 ginterpAnchorLen3(size_t nx, size_t ny, size_t nz)
void launchScatterOutliers(const TInput *d_outlier_vals, const uint32_t *d_outlier_idxs, uint32_t n, TInput *d_outlier_tmp, cudaStream_t stream)
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, cudaStream_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, double eb_r, double ebx2, int radius, const INTERPOLATION_PARAMS &intp_param, cudaStream_t stream)
Definition fzm_format.h:25
Definition cusz_type_subset.h:32