Skip to main content

sp1_gpu_cudart/
tracegen.rs

1use sp1_gpu_sys::runtime::KernelPtr;
2use sp1_primitives::SP1Field;
3
4use crate::TaskScope;
5
6/// # Safety
7pub unsafe trait TracegenRiscvGlobalKernel<F> {
8    fn tracegen_riscv_global_decompress_kernel() -> KernelPtr;
9    fn tracegen_riscv_global_finalize_kernel() -> KernelPtr;
10}
11
12unsafe impl TracegenRiscvGlobalKernel<SP1Field> for TaskScope {
13    fn tracegen_riscv_global_decompress_kernel() -> KernelPtr {
14        unsafe { sp1_gpu_sys::tracegen::riscv_global_generate_trace_decompress_kernel() }
15    }
16    fn tracegen_riscv_global_finalize_kernel() -> KernelPtr {
17        unsafe { sp1_gpu_sys::tracegen::riscv_global_generate_trace_finalize_kernel() }
18    }
19}
20
21/// # Safety
22pub unsafe trait TracegenPreprocessedRecursionBaseAluKernel<F> {
23    fn tracegen_preprocessed_recursion_base_alu_kernel() -> KernelPtr;
24}
25
26unsafe impl TracegenPreprocessedRecursionBaseAluKernel<SP1Field> for TaskScope {
27    fn tracegen_preprocessed_recursion_base_alu_kernel() -> KernelPtr {
28        unsafe {
29            sp1_gpu_sys::tracegen::recursion_base_alu_generate_preprocessed_trace_koala_bear_kernel(
30            )
31        }
32    }
33}
34
35/// # Safety
36pub unsafe trait TracegenRecursionBaseAluKernel<F> {
37    fn tracegen_recursion_base_alu_kernel() -> KernelPtr;
38}
39
40unsafe impl TracegenRecursionBaseAluKernel<SP1Field> for TaskScope {
41    fn tracegen_recursion_base_alu_kernel() -> KernelPtr {
42        unsafe { sp1_gpu_sys::tracegen::recursion_base_alu_generate_trace_koala_bear_kernel() }
43    }
44}
45
46/// # Safety
47pub unsafe trait TracegenPreprocessedRecursionExtAluKernel<F> {
48    fn tracegen_preprocessed_recursion_ext_alu_kernel() -> KernelPtr;
49}
50
51unsafe impl TracegenPreprocessedRecursionExtAluKernel<SP1Field> for TaskScope {
52    fn tracegen_preprocessed_recursion_ext_alu_kernel() -> KernelPtr {
53        unsafe {
54            sp1_gpu_sys::tracegen::recursion_ext_alu_generate_preprocessed_trace_koala_bear_kernel()
55        }
56    }
57}
58
59/// # Safety
60pub unsafe trait TracegenRecursionExtAluKernel<F> {
61    fn tracegen_recursion_ext_alu_kernel() -> KernelPtr;
62}
63
64unsafe impl TracegenRecursionExtAluKernel<SP1Field> for TaskScope {
65    fn tracegen_recursion_ext_alu_kernel() -> KernelPtr {
66        unsafe { sp1_gpu_sys::tracegen::recursion_ext_alu_generate_trace_koala_bear_kernel() }
67    }
68}
69
70/// # Safety
71pub unsafe trait TracegenPreprocessedRecursionPoseidon2WideKernel<F> {
72    fn tracegen_preprocessed_recursion_poseidon2_wide_kernel() -> KernelPtr;
73}
74
75unsafe impl TracegenPreprocessedRecursionPoseidon2WideKernel<SP1Field> for TaskScope {
76    fn tracegen_preprocessed_recursion_poseidon2_wide_kernel() -> KernelPtr {
77        unsafe {
78            sp1_gpu_sys::tracegen::recursion_poseidon2_wide_generate_preprocessed_trace_koala_bear_kernel(
79            )
80        }
81    }
82}
83
84/// # Safety
85pub unsafe trait TracegenRecursionPoseidon2WideKernel<F> {
86    fn tracegen_recursion_poseidon2_wide_kernel() -> KernelPtr;
87}
88
89unsafe impl TracegenRecursionPoseidon2WideKernel<SP1Field> for TaskScope {
90    fn tracegen_recursion_poseidon2_wide_kernel() -> KernelPtr {
91        unsafe {
92            sp1_gpu_sys::tracegen::recursion_poseidon2_wide_generate_trace_koala_bear_kernel()
93        }
94    }
95}
96
97/// # Safety
98pub unsafe trait TracegenPreprocessedRecursionSelectKernel<F> {
99    fn tracegen_preprocessed_recursion_select_kernel() -> KernelPtr;
100}
101
102unsafe impl TracegenPreprocessedRecursionSelectKernel<SP1Field> for TaskScope {
103    fn tracegen_preprocessed_recursion_select_kernel() -> KernelPtr {
104        unsafe {
105            sp1_gpu_sys::tracegen::recursion_select_generate_preprocessed_trace_koala_bear_kernel()
106        }
107    }
108}
109
110/// # Safety
111pub unsafe trait TracegenRecursionSelectKernel<F> {
112    fn tracegen_recursion_select_kernel() -> KernelPtr;
113}
114
115unsafe impl TracegenRecursionSelectKernel<SP1Field> for TaskScope {
116    fn tracegen_recursion_select_kernel() -> KernelPtr {
117        unsafe { sp1_gpu_sys::tracegen::recursion_select_generate_trace_koala_bear_kernel() }
118    }
119}
120
121/// # Safety
122pub unsafe trait TracegenRecursionPrefixSumChecksKernel<F> {
123    fn tracegen_recursion_prefix_sum_checks_kernel() -> KernelPtr;
124}
125
126unsafe impl TracegenRecursionPrefixSumChecksKernel<SP1Field> for TaskScope {
127    fn tracegen_recursion_prefix_sum_checks_kernel() -> KernelPtr {
128        unsafe {
129            sp1_gpu_sys::tracegen::recursion_prefix_sum_checks_generate_trace_koala_bear_kernel()
130        }
131    }
132}
133
134/// # Safety
135pub unsafe trait TracegenPreprocessedRecursionConvertKernel<F> {
136    fn tracegen_preprocessed_recursion_convert_kernel() -> KernelPtr;
137}
138
139unsafe impl TracegenPreprocessedRecursionConvertKernel<SP1Field> for TaskScope {
140    fn tracegen_preprocessed_recursion_convert_kernel() -> KernelPtr {
141        unsafe {
142            sp1_gpu_sys::tracegen::recursion_convert_generate_preprocessed_trace_koala_bear_kernel()
143        }
144    }
145}
146
147/// # Safety
148pub unsafe trait TracegenRecursionConvertKernel<F> {
149    fn tracegen_recursion_convert_kernel() -> KernelPtr;
150}
151
152unsafe impl TracegenRecursionConvertKernel<SP1Field> for TaskScope {
153    fn tracegen_recursion_convert_kernel() -> KernelPtr {
154        unsafe { sp1_gpu_sys::tracegen::recursion_convert_generate_trace_koala_bear_kernel() }
155    }
156}
157
158/// # Safety
159pub unsafe trait TracegenPreprocessedRecursionLinearLayerKernel<F> {
160    fn tracegen_preprocessed_recursion_linear_layer_kernel() -> KernelPtr;
161}
162
163unsafe impl TracegenPreprocessedRecursionLinearLayerKernel<SP1Field> for TaskScope {
164    fn tracegen_preprocessed_recursion_linear_layer_kernel() -> KernelPtr {
165        unsafe {
166            sp1_gpu_sys::tracegen::recursion_linear_layer_generate_preprocessed_trace_koala_bear_kernel(
167            )
168        }
169    }
170}
171
172/// # Safety
173pub unsafe trait TracegenRecursionLinearLayerKernel<F> {
174    fn tracegen_recursion_linear_layer_kernel() -> KernelPtr;
175}
176
177unsafe impl TracegenRecursionLinearLayerKernel<SP1Field> for TaskScope {
178    fn tracegen_recursion_linear_layer_kernel() -> KernelPtr {
179        unsafe { sp1_gpu_sys::tracegen::recursion_linear_layer_generate_trace_koala_bear_kernel() }
180    }
181}
182
183/// # Safety
184pub unsafe trait TracegenPreprocessedRecursionSBoxKernel<F> {
185    fn tracegen_preprocessed_recursion_sbox_kernel() -> KernelPtr;
186}
187
188unsafe impl TracegenPreprocessedRecursionSBoxKernel<SP1Field> for TaskScope {
189    fn tracegen_preprocessed_recursion_sbox_kernel() -> KernelPtr {
190        unsafe {
191            sp1_gpu_sys::tracegen::recursion_sbox_generate_preprocessed_trace_koala_bear_kernel()
192        }
193    }
194}
195
196/// # Safety
197pub unsafe trait TracegenRecursionSBoxKernel<F> {
198    fn tracegen_recursion_sbox_kernel() -> KernelPtr;
199}
200
201unsafe impl TracegenRecursionSBoxKernel<SP1Field> for TaskScope {
202    fn tracegen_recursion_sbox_kernel() -> KernelPtr {
203        unsafe { sp1_gpu_sys::tracegen::recursion_sbox_generate_trace_koala_bear_kernel() }
204    }
205}