1use std::ffi::c_void;
2
3use crate::runtime::{CudaRustError, CudaStreamHandle, KernelPtr};
4
5extern "C" {
6 pub fn sum_kernel_u32() -> KernelPtr;
8 pub fn sum_kernel_felt() -> KernelPtr;
9 pub fn sum_kernel_ext() -> KernelPtr;
10
11 pub fn generate_col_index() -> KernelPtr;
13 pub fn generate_start_indices() -> KernelPtr;
14 pub fn fill_buffer() -> KernelPtr;
15 pub fn count_and_add_kernel() -> KernelPtr;
16 pub fn sum_to_trace_kernel() -> KernelPtr;
17
18 pub fn reduce_kernel_felt() -> KernelPtr;
20 pub fn reduce_kernel_ext() -> KernelPtr;
21
22 pub fn jagged_eval_kernel_chunked_felt() -> KernelPtr;
24 pub fn jagged_eval_kernel_chunked_ext() -> KernelPtr;
25
26 pub fn initialize_jagged_info() -> KernelPtr;
28 pub fn fix_last_variable_jagged_info() -> KernelPtr;
29
30 pub fn fix_last_variable_jagged_felt() -> KernelPtr;
32 pub fn fix_last_variable_jagged_ext() -> KernelPtr;
33
34 pub fn fix_last_two_variables_jagged_felt() -> KernelPtr;
37
38 pub fn zerocheck_fused_sequential_kb_32_kernel() -> KernelPtr;
42 pub fn zerocheck_fused_sequential_kb_64_kernel() -> KernelPtr;
43 pub fn zerocheck_fused_sequential_kb_128_kernel() -> KernelPtr;
44 pub fn zerocheck_fused_sequential_kb_256_kernel() -> KernelPtr;
45 pub fn zerocheck_fused_sequential_kb_512_kernel() -> KernelPtr;
46 pub fn zerocheck_fused_sequential_kb_1024_kernel() -> KernelPtr;
47 pub fn zerocheck_fused_sequential_ext_32_kernel() -> KernelPtr;
48 pub fn zerocheck_fused_sequential_ext_64_kernel() -> KernelPtr;
49 pub fn zerocheck_fused_sequential_ext_128_kernel() -> KernelPtr;
50 pub fn zerocheck_fused_sequential_ext_256_kernel() -> KernelPtr;
51 pub fn zerocheck_fused_sequential_ext_512_kernel() -> KernelPtr;
52 pub fn zerocheck_fused_sequential_ext_1024_kernel() -> KernelPtr;
53
54 pub fn zerocheck_fused_sequential_bivariate_kb_32_kernel() -> KernelPtr;
59 pub fn zerocheck_fused_sequential_bivariate_kb_64_kernel() -> KernelPtr;
60 pub fn zerocheck_fused_sequential_bivariate_kb_128_kernel() -> KernelPtr;
61 pub fn zerocheck_fused_sequential_bivariate_kb_256_kernel() -> KernelPtr;
62 pub fn zerocheck_fused_sequential_bivariate_kb_512_kernel() -> KernelPtr;
63 pub fn zerocheck_fused_sequential_bivariate_kb_1024_kernel() -> KernelPtr;
64
65 pub fn zerocheck_column_tile_kb_kernel() -> KernelPtr;
67 pub fn zerocheck_column_tile_ext_kernel() -> KernelPtr;
68
69 pub fn zerocheck_geq_corrections_kernel() -> KernelPtr;
73
74 pub fn zerocheck_geq_corrections_bivariate_kernel() -> KernelPtr;
78
79 pub fn zerocheck_fix_geq_state_kernel() -> KernelPtr;
82
83 pub fn zerocheck_aggregate_partials_kernel() -> KernelPtr;
87
88 pub fn zerocheck_aggregate_partials_strided_kernel() -> KernelPtr;
92
93 pub fn zerocheck_gkr_sweep_kb_kernel() -> KernelPtr;
97 pub fn zerocheck_gkr_sweep_ext_kernel() -> KernelPtr;
98
99 pub fn zerocheck_gkr_corner_sweep_kb_kernel() -> KernelPtr;
103
104 pub fn zerocheck_pad_adj_32_kernel() -> KernelPtr;
110 pub fn zerocheck_pad_adj_64_kernel() -> KernelPtr;
111 pub fn zerocheck_pad_adj_128_kernel() -> KernelPtr;
112 pub fn zerocheck_pad_adj_256_kernel() -> KernelPtr;
113 pub fn zerocheck_pad_adj_512_kernel() -> KernelPtr;
114 pub fn zerocheck_pad_adj_1024_kernel() -> KernelPtr;
115
116 pub fn jagged_fold_metadata_kernel() -> KernelPtr;
123 pub fn jagged_fold_metadata_block_dim() -> u32;
124 pub fn jagged_fold_metadata_section_size() -> u32;
125
126 pub fn jagged_chip_layouts_kernel() -> KernelPtr;
131
132 pub fn jagged_constraint_poly_eval_32_koala_bear_kernel() -> KernelPtr;
134 pub fn jagged_constraint_poly_eval_64_koala_bear_kernel() -> KernelPtr;
135 pub fn jagged_constraint_poly_eval_128_koala_bear_kernel() -> KernelPtr;
136 pub fn jagged_constraint_poly_eval_256_koala_bear_kernel() -> KernelPtr;
137 pub fn jagged_constraint_poly_eval_512_koala_bear_kernel() -> KernelPtr;
138 pub fn jagged_constraint_poly_eval_1024_koala_bear_kernel() -> KernelPtr;
139
140 pub fn jagged_constraint_poly_eval_32_koala_bear_extension_kernel() -> KernelPtr;
141 pub fn jagged_constraint_poly_eval_64_koala_bear_extension_kernel() -> KernelPtr;
142 pub fn jagged_constraint_poly_eval_128_koala_bear_extension_kernel() -> KernelPtr;
143 pub fn jagged_constraint_poly_eval_256_koala_bear_extension_kernel() -> KernelPtr;
144 pub fn jagged_constraint_poly_eval_512_koala_bear_extension_kernel() -> KernelPtr;
145 pub fn jagged_constraint_poly_eval_1024_koala_bear_extension_kernel() -> KernelPtr;
146
147 pub fn zerocheck_sum_as_poly_base_ext_kernel() -> KernelPtr;
149 pub fn zerocheck_sum_as_poly_ext_ext_kernel() -> KernelPtr;
150
151 pub fn zerocheck_fix_last_variable_and_sum_as_poly_base_ext_kernel() -> KernelPtr;
152 pub fn zerocheck_fix_last_variable_and_sum_as_poly_ext_ext_kernel() -> KernelPtr;
153
154 pub fn hadamard_sum_as_poly_base_ext_kernel() -> KernelPtr;
156 pub fn hadamard_sum_as_poly_ext_ext_kernel() -> KernelPtr;
157
158 pub fn hadamard_fix_last_variable_and_sum_as_poly_base_ext_kernel() -> KernelPtr;
159 pub fn hadamard_fix_last_variable_and_sum_as_poly_ext_ext_kernel() -> KernelPtr;
160
161 pub fn fix_last_variable_felt_ext_kernel() -> KernelPtr;
162 pub fn fix_last_variable_ext_ext_kernel() -> KernelPtr;
163 pub fn mle_fix_last_variable_koala_bear_base_base_constant_padding() -> KernelPtr;
164 pub fn mle_fix_last_variable_koala_bear_base_extension_constant_padding() -> KernelPtr;
165 pub fn mle_fix_last_variable_koala_bear_ext_ext_constant_padding() -> KernelPtr;
166
167 pub fn mle_fix_last_variable_koala_bear_ext_ext_zero_padding() -> KernelPtr;
168
169 pub fn logup_gkr_sum_as_poly_circuit_layer() -> KernelPtr;
171 pub fn logup_gkr_first_sum_as_poly_circuit_layer() -> KernelPtr;
172 pub fn logup_gkr_fix_last_variable_circuit_layer() -> KernelPtr;
173 pub fn logup_gkr_fix_last_variable_last_circuit_layer() -> KernelPtr;
174 pub fn logup_gkr_sum_as_poly_interactions_layer() -> KernelPtr;
175 pub fn logup_gkr_fix_last_variable_interactions_layer() -> KernelPtr;
176
177 pub fn logup_gkr_fix_last_variable_first_layer() -> KernelPtr;
179 pub fn logup_gkr_fix_and_sum_first_layer() -> KernelPtr;
180 pub fn logup_gkr_sum_as_poly_first_layer() -> KernelPtr;
181 pub fn logup_gkr_first_layer_transition() -> KernelPtr;
182
183 pub fn logup_gkr_circuit_transition() -> KernelPtr;
185 pub fn logup_gkr_populate_last_circuit_layer() -> KernelPtr;
186 pub fn logup_gkr_extract_output() -> KernelPtr;
187
188 pub fn logup_gkr_fix_and_sum_circuit_layer() -> KernelPtr;
190 pub fn logup_gkr_fix_and_sum_last_circuit_layer() -> KernelPtr;
191 pub fn logup_gkr_fix_and_sum_interactions_layer() -> KernelPtr;
192
193 pub fn logup_gkr_two_round_sum_circuit_layer() -> KernelPtr;
195 pub fn logup_gkr_two_round_sum_first_layer() -> KernelPtr;
196 pub fn logup_gkr_two_round_fix_and_sum_circuit_layer() -> KernelPtr;
197 pub fn logup_gkr_two_round_fix_and_sum_first_layer() -> KernelPtr;
198
199 pub fn jagged_two_round_sum_as_poly() -> KernelPtr;
201 pub fn jagged_two_round_fix_and_sum() -> KernelPtr;
202 pub fn padded_hadamard_fix_and_sum() -> KernelPtr;
203
204 pub fn populate_restrict_eq_host(
206 src: *const c_void,
207 len: usize,
208 stream: CudaStreamHandle,
209 ) -> CudaRustError;
210 pub fn populate_restrict_eq_device(
211 src: *const c_void,
212 len: usize,
213 stream: CudaStreamHandle,
214 ) -> CudaRustError;
215
216 pub fn round_kernel_1_32_2_2_false() -> KernelPtr;
219 pub fn round_kernel_2_32_2_2_true() -> KernelPtr;
220 pub fn round_kernel_2_32_2_2_false() -> KernelPtr;
221 pub fn round_kernel_4_32_2_2_true() -> KernelPtr;
222 pub fn round_kernel_4_32_2_2_false() -> KernelPtr;
223 pub fn round_kernel_8_32_2_2_true() -> KernelPtr;
224 pub fn round_kernel_8_32_2_2_false() -> KernelPtr;
225
226 pub fn round_kernel_1_64_2_2_false() -> KernelPtr;
228 pub fn round_kernel_2_64_2_2_true() -> KernelPtr;
229 pub fn round_kernel_2_64_2_2_false() -> KernelPtr;
230 pub fn round_kernel_4_64_2_2_true() -> KernelPtr;
231 pub fn round_kernel_4_64_2_2_false() -> KernelPtr;
232 pub fn round_kernel_8_64_2_2_true() -> KernelPtr;
233 pub fn round_kernel_8_64_2_2_false() -> KernelPtr;
234
235 pub fn round_kernel_1_32_2_3_false() -> KernelPtr;
237 pub fn round_kernel_2_32_2_3_true() -> KernelPtr;
238 pub fn round_kernel_2_32_2_3_false() -> KernelPtr;
239 pub fn round_kernel_4_32_2_3_true() -> KernelPtr;
240 pub fn round_kernel_4_32_2_3_false() -> KernelPtr;
241 pub fn round_kernel_8_32_2_3_true() -> KernelPtr;
242 pub fn round_kernel_8_32_2_3_false() -> KernelPtr;
243
244 pub fn round_kernel_1_64_2_3_false() -> KernelPtr;
246 pub fn round_kernel_1_64_4_8_false() -> KernelPtr;
247 pub fn round_kernel_2_64_2_3_true() -> KernelPtr;
248 pub fn round_kernel_2_64_2_3_false() -> KernelPtr;
249 pub fn round_kernel_4_64_2_3_true() -> KernelPtr;
250 pub fn round_kernel_4_64_2_3_false() -> KernelPtr;
251 pub fn round_kernel_4_64_4_8_true() -> KernelPtr;
252 pub fn round_kernel_4_64_4_8_false() -> KernelPtr;
253 pub fn round_kernel_8_64_2_3_true() -> KernelPtr;
254 pub fn round_kernel_8_64_2_3_false() -> KernelPtr;
255
256 pub fn round_kernel_1_128_4_8_false() -> KernelPtr;
258}