1use crate::api::*;
3
4pub struct rknn {
5 __library: ::libloading::Library,
6 pub rknn_init: Result<
7 unsafe extern "C" fn(
8 context: *mut rknn_context,
9 model: *mut ::std::os::raw::c_void,
10 size: u32,
11 flag: u32,
12 extend: *mut rknn_init_extend,
13 ) -> ::std::os::raw::c_int,
14 ::libloading::Error,
15 >,
16 pub rknn_dup_context: Result<
17 unsafe extern "C" fn(
18 context_in: *mut rknn_context,
19 context_out: *mut rknn_context,
20 ) -> ::std::os::raw::c_int,
21 ::libloading::Error,
22 >,
23 pub rknn_destroy: Result<
24 unsafe extern "C" fn(context: rknn_context) -> ::std::os::raw::c_int,
25 ::libloading::Error,
26 >,
27 pub rknn_query: Result<
28 unsafe extern "C" fn(
29 context: rknn_context,
30 cmd: rknn_query_cmd,
31 info: *mut ::std::os::raw::c_void,
32 size: u32,
33 ) -> ::std::os::raw::c_int,
34 ::libloading::Error,
35 >,
36 pub rknn_inputs_set: Result<
37 unsafe extern "C" fn(
38 context: rknn_context,
39 n_inputs: u32,
40 inputs: *mut rknn_input,
41 ) -> ::std::os::raw::c_int,
42 ::libloading::Error,
43 >,
44 pub rknn_set_batch_core_num: Result<
45 unsafe extern "C" fn(
46 context: rknn_context,
47 core_num: ::std::os::raw::c_int,
48 ) -> ::std::os::raw::c_int,
49 ::libloading::Error,
50 >,
51 pub rknn_set_core_mask: Result<
52 unsafe extern "C" fn(
53 context: rknn_context,
54 core_mask: rknn_core_mask,
55 ) -> ::std::os::raw::c_int,
56 ::libloading::Error,
57 >,
58 pub rknn_run: Result<
59 unsafe extern "C" fn(
60 context: rknn_context,
61 extend: *mut rknn_run_extend,
62 ) -> ::std::os::raw::c_int,
63 ::libloading::Error,
64 >,
65 pub rknn_wait: Result<
66 unsafe extern "C" fn(
67 context: rknn_context,
68 extend: *mut rknn_run_extend,
69 ) -> ::std::os::raw::c_int,
70 ::libloading::Error,
71 >,
72 pub rknn_outputs_get: Result<
73 unsafe extern "C" fn(
74 context: rknn_context,
75 n_outputs: u32,
76 outputs: *mut rknn_output,
77 extend: *mut rknn_output_extend,
78 ) -> ::std::os::raw::c_int,
79 ::libloading::Error,
80 >,
81 pub rknn_outputs_release: Result<
82 unsafe extern "C" fn(
83 context: rknn_context,
84 n_ouputs: u32,
85 outputs: *mut rknn_output,
86 ) -> ::std::os::raw::c_int,
87 ::libloading::Error,
88 >,
89 pub rknn_create_mem_from_phys: Result<
90 unsafe extern "C" fn(
91 ctx: rknn_context,
92 phys_addr: u64,
93 virt_addr: *mut ::std::os::raw::c_void,
94 size: u32,
95 ) -> *mut rknn_tensor_mem,
96 ::libloading::Error,
97 >,
98 pub rknn_create_mem_from_fd: Result<
99 unsafe extern "C" fn(
100 ctx: rknn_context,
101 fd: i32,
102 virt_addr: *mut ::std::os::raw::c_void,
103 size: u32,
104 offset: i32,
105 ) -> *mut rknn_tensor_mem,
106 ::libloading::Error,
107 >,
108 pub rknn_create_mem_from_mb_blk: Result<
109 unsafe extern "C" fn(
110 ctx: rknn_context,
111 mb_blk: *mut ::std::os::raw::c_void,
112 offset: i32,
113 ) -> *mut rknn_tensor_mem,
114 ::libloading::Error,
115 >,
116 pub rknn_create_mem: Result<
117 unsafe extern "C" fn(ctx: rknn_context, size: u32) -> *mut rknn_tensor_mem,
118 ::libloading::Error,
119 >,
120 pub rknn_create_mem2: Result<
121 unsafe extern "C" fn(
122 ctx: rknn_context,
123 size: u64,
124 alloc_flags: u64,
125 ) -> *mut rknn_tensor_mem,
126 ::libloading::Error,
127 >,
128 pub rknn_destroy_mem: Result<
129 unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
130 ::libloading::Error,
131 >,
132 pub rknn_set_weight_mem: Result<
133 unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
134 ::libloading::Error,
135 >,
136 pub rknn_set_internal_mem: Result<
137 unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
138 ::libloading::Error,
139 >,
140 pub rknn_set_io_mem: Result<
141 unsafe extern "C" fn(
142 ctx: rknn_context,
143 mem: *mut rknn_tensor_mem,
144 attr: *mut rknn_tensor_attr,
145 ) -> ::std::os::raw::c_int,
146 ::libloading::Error,
147 >,
148 pub rknn_set_input_shape: Result<
149 unsafe extern "C" fn(
150 ctx: rknn_context,
151 attr: *mut rknn_tensor_attr,
152 ) -> ::std::os::raw::c_int,
153 ::libloading::Error,
154 >,
155 pub rknn_set_input_shapes: Result<
156 unsafe extern "C" fn(
157 ctx: rknn_context,
158 n_inputs: u32,
159 attr: *mut rknn_tensor_attr,
160 ) -> ::std::os::raw::c_int,
161 ::libloading::Error,
162 >,
163 pub rknn_mem_sync: Result<
164 unsafe extern "C" fn(
165 context: rknn_context,
166 mem: *mut rknn_tensor_mem,
167 mode: rknn_mem_sync_mode,
168 ) -> ::std::os::raw::c_int,
169 ::libloading::Error,
170 >,
171 pub rknn_matmul_create: Result<
172 unsafe extern "C" fn(
173 ctx: *mut rknn_matmul_ctx,
174 info: *mut rknn_matmul_info,
175 io_attr: *mut rknn_matmul_io_attr,
176 ) -> ::std::os::raw::c_int,
177 ::libloading::Error,
178 >,
179 pub rknn_matmul_create_dynamic_shape: Result<
180 unsafe extern "C" fn(
181 ctx: *mut rknn_matmul_ctx,
182 info: *mut rknn_matmul_info,
183 shape_num: ::std::os::raw::c_int,
184 dynamic_shapes: *mut rknn_matmul_shape,
185 io_attrs: *mut rknn_matmul_io_attr,
186 ) -> ::std::os::raw::c_int,
187 ::libloading::Error,
188 >,
189 pub rknn_matmul_set_io_mem: Result<
190 unsafe extern "C" fn(
191 ctx: rknn_matmul_ctx,
192 mem: *mut rknn_tensor_mem,
193 attr: *mut rknn_matmul_tensor_attr,
194 ) -> ::std::os::raw::c_int,
195 ::libloading::Error,
196 >,
197 pub rknn_matmul_set_core_mask: Result<
198 unsafe extern "C" fn(
199 context: rknn_matmul_ctx,
200 core_mask: rknn_core_mask,
201 ) -> ::std::os::raw::c_int,
202 ::libloading::Error,
203 >,
204 pub rknn_matmul_set_quant_params: Result<
205 unsafe extern "C" fn(
206 context: rknn_matmul_ctx,
207 params: *mut rknn_quant_params,
208 ) -> ::std::os::raw::c_int,
209 ::libloading::Error,
210 >,
211 pub rknn_matmul_get_quant_params: Result<
212 unsafe extern "C" fn(
213 ctx: rknn_matmul_ctx,
214 params: *mut rknn_quant_params,
215 scale: *mut f32,
216 ) -> ::std::os::raw::c_int,
217 ::libloading::Error,
218 >,
219 pub rknn_matmul_set_dynamic_shape: Result<
220 unsafe extern "C" fn(
221 ctx: rknn_matmul_ctx,
222 shape: *mut rknn_matmul_shape,
223 ) -> ::std::os::raw::c_int,
224 ::libloading::Error,
225 >,
226 pub rknn_matmul_run: Result<
227 unsafe extern "C" fn(ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int,
228 ::libloading::Error,
229 >,
230 pub rknn_matmul_destroy: Result<
231 unsafe extern "C" fn(ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int,
232 ::libloading::Error,
233 >,
234 pub rknn_B_normal_layout_to_native_layout: Result<
235 unsafe extern "C" fn(
236 B_input: *mut ::std::os::raw::c_void,
237 B_output: *mut ::std::os::raw::c_void,
238 K: ::std::os::raw::c_int,
239 N: ::std::os::raw::c_int,
240 info: *mut rknn_matmul_info,
241 ) -> ::std::os::raw::c_int,
242 ::libloading::Error,
243 >,
244 pub rknn_register_custom_ops: Result<
245 unsafe extern "C" fn(
246 ctx: rknn_context,
247 op: *mut rknn_custom_op,
248 custom_op_num: u32,
249 ) -> ::std::os::raw::c_int,
250 ::libloading::Error,
251 >,
252 pub rknn_custom_op_get_op_attr: Result<
253 unsafe extern "C" fn(
254 op_ctx: *mut rknn_custom_op_context,
255 attr_name: *const ::std::os::raw::c_char,
256 op_attr: *mut rknn_custom_op_attr,
257 ),
258 ::libloading::Error,
259 >,
260}
261impl rknn {
262 pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
263 where
264 P: AsRef<::std::ffi::OsStr>,
265 {
266 let library = ::libloading::Library::new(path)?;
267 Self::from_library(library)
268 }
269 pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
270 where
271 L: Into<::libloading::Library>,
272 {
273 let __library = library.into();
274 let rknn_init = __library.get(b"rknn_init\0").map(|sym| *sym);
275 let rknn_dup_context = __library.get(b"rknn_dup_context\0").map(|sym| *sym);
276 let rknn_destroy = __library.get(b"rknn_destroy\0").map(|sym| *sym);
277 let rknn_query = __library.get(b"rknn_query\0").map(|sym| *sym);
278 let rknn_inputs_set = __library.get(b"rknn_inputs_set\0").map(|sym| *sym);
279 let rknn_set_batch_core_num = __library.get(b"rknn_set_batch_core_num\0").map(|sym| *sym);
280 let rknn_set_core_mask = __library.get(b"rknn_set_core_mask\0").map(|sym| *sym);
281 let rknn_run = __library.get(b"rknn_run\0").map(|sym| *sym);
282 let rknn_wait = __library.get(b"rknn_wait\0").map(|sym| *sym);
283 let rknn_outputs_get = __library.get(b"rknn_outputs_get\0").map(|sym| *sym);
284 let rknn_outputs_release = __library.get(b"rknn_outputs_release\0").map(|sym| *sym);
285 let rknn_create_mem_from_phys = __library
286 .get(b"rknn_create_mem_from_phys\0")
287 .map(|sym| *sym);
288 let rknn_create_mem_from_fd = __library.get(b"rknn_create_mem_from_fd\0").map(|sym| *sym);
289 let rknn_create_mem_from_mb_blk = __library
290 .get(b"rknn_create_mem_from_mb_blk\0")
291 .map(|sym| *sym);
292 let rknn_create_mem = __library.get(b"rknn_create_mem\0").map(|sym| *sym);
293 let rknn_create_mem2 = __library.get(b"rknn_create_mem2\0").map(|sym| *sym);
294 let rknn_destroy_mem = __library.get(b"rknn_destroy_mem\0").map(|sym| *sym);
295 let rknn_set_weight_mem = __library.get(b"rknn_set_weight_mem\0").map(|sym| *sym);
296 let rknn_set_internal_mem = __library.get(b"rknn_set_internal_mem\0").map(|sym| *sym);
297 let rknn_set_io_mem = __library.get(b"rknn_set_io_mem\0").map(|sym| *sym);
298 let rknn_set_input_shape = __library.get(b"rknn_set_input_shape\0").map(|sym| *sym);
299 let rknn_set_input_shapes = __library.get(b"rknn_set_input_shapes\0").map(|sym| *sym);
300 let rknn_mem_sync = __library.get(b"rknn_mem_sync\0").map(|sym| *sym);
301 let rknn_matmul_create = __library.get(b"rknn_matmul_create\0").map(|sym| *sym);
302 let rknn_matmul_create_dynamic_shape = __library
303 .get(b"rknn_matmul_create_dynamic_shape\0")
304 .map(|sym| *sym);
305 let rknn_matmul_set_io_mem = __library.get(b"rknn_matmul_set_io_mem\0").map(|sym| *sym);
306 let rknn_matmul_set_core_mask = __library
307 .get(b"rknn_matmul_set_core_mask\0")
308 .map(|sym| *sym);
309 let rknn_matmul_set_quant_params = __library
310 .get(b"rknn_matmul_set_quant_params\0")
311 .map(|sym| *sym);
312 let rknn_matmul_get_quant_params = __library
313 .get(b"rknn_matmul_get_quant_params\0")
314 .map(|sym| *sym);
315 let rknn_matmul_set_dynamic_shape = __library
316 .get(b"rknn_matmul_set_dynamic_shape\0")
317 .map(|sym| *sym);
318 let rknn_matmul_run = __library.get(b"rknn_matmul_run\0").map(|sym| *sym);
319 let rknn_matmul_destroy = __library.get(b"rknn_matmul_destroy\0").map(|sym| *sym);
320 let rknn_B_normal_layout_to_native_layout = __library
321 .get(b"rknn_B_normal_layout_to_native_layout\0")
322 .map(|sym| *sym);
323 let rknn_register_custom_ops = __library.get(b"rknn_register_custom_ops\0").map(|sym| *sym);
324 let rknn_custom_op_get_op_attr = __library
325 .get(b"rknn_custom_op_get_op_attr\0")
326 .map(|sym| *sym);
327 Ok(rknn {
328 __library,
329 rknn_init,
330 rknn_dup_context,
331 rknn_destroy,
332 rknn_query,
333 rknn_inputs_set,
334 rknn_set_batch_core_num,
335 rknn_set_core_mask,
336 rknn_run,
337 rknn_wait,
338 rknn_outputs_get,
339 rknn_outputs_release,
340 rknn_create_mem_from_phys,
341 rknn_create_mem_from_fd,
342 rknn_create_mem_from_mb_blk,
343 rknn_create_mem,
344 rknn_create_mem2,
345 rknn_destroy_mem,
346 rknn_set_weight_mem,
347 rknn_set_internal_mem,
348 rknn_set_io_mem,
349 rknn_set_input_shape,
350 rknn_set_input_shapes,
351 rknn_mem_sync,
352 rknn_matmul_create,
353 rknn_matmul_create_dynamic_shape,
354 rknn_matmul_set_io_mem,
355 rknn_matmul_set_core_mask,
356 rknn_matmul_set_quant_params,
357 rknn_matmul_get_quant_params,
358 rknn_matmul_set_dynamic_shape,
359 rknn_matmul_run,
360 rknn_matmul_destroy,
361 rknn_B_normal_layout_to_native_layout,
362 rknn_register_custom_ops,
363 rknn_custom_op_get_op_attr,
364 })
365 }
366 pub unsafe fn rknn_init(
367 &self,
368 context: *mut rknn_context,
369 model: *mut ::std::os::raw::c_void,
370 size: u32,
371 flag: u32,
372 extend: *mut rknn_init_extend,
373 ) -> ::std::os::raw::c_int {
374 (self
375 .rknn_init
376 .as_ref()
377 .expect("Expected function, got error."))(context, model, size, flag, extend)
378 }
379 pub unsafe fn rknn_dup_context(
380 &self,
381 context_in: *mut rknn_context,
382 context_out: *mut rknn_context,
383 ) -> ::std::os::raw::c_int {
384 (self
385 .rknn_dup_context
386 .as_ref()
387 .expect("Expected function, got error."))(context_in, context_out)
388 }
389 pub unsafe fn rknn_destroy(&self, context: rknn_context) -> ::std::os::raw::c_int {
390 (self
391 .rknn_destroy
392 .as_ref()
393 .expect("Expected function, got error."))(context)
394 }
395 pub unsafe fn rknn_query(
396 &self,
397 context: rknn_context,
398 cmd: rknn_query_cmd,
399 info: *mut ::std::os::raw::c_void,
400 size: u32,
401 ) -> ::std::os::raw::c_int {
402 (self
403 .rknn_query
404 .as_ref()
405 .expect("Expected function, got error."))(context, cmd, info, size)
406 }
407 pub unsafe fn rknn_inputs_set(
408 &self,
409 context: rknn_context,
410 n_inputs: u32,
411 inputs: *mut rknn_input,
412 ) -> ::std::os::raw::c_int {
413 (self
414 .rknn_inputs_set
415 .as_ref()
416 .expect("Expected function, got error."))(context, n_inputs, inputs)
417 }
418 pub unsafe fn rknn_set_batch_core_num(
419 &self,
420 context: rknn_context,
421 core_num: ::std::os::raw::c_int,
422 ) -> ::std::os::raw::c_int {
423 (self
424 .rknn_set_batch_core_num
425 .as_ref()
426 .expect("Expected function, got error."))(context, core_num)
427 }
428 pub unsafe fn rknn_set_core_mask(
429 &self,
430 context: rknn_context,
431 core_mask: rknn_core_mask,
432 ) -> ::std::os::raw::c_int {
433 (self
434 .rknn_set_core_mask
435 .as_ref()
436 .expect("Expected function, got error."))(context, core_mask)
437 }
438 pub unsafe fn rknn_run(
439 &self,
440 context: rknn_context,
441 extend: *mut rknn_run_extend,
442 ) -> ::std::os::raw::c_int {
443 (self
444 .rknn_run
445 .as_ref()
446 .expect("Expected function, got error."))(context, extend)
447 }
448 pub unsafe fn rknn_wait(
449 &self,
450 context: rknn_context,
451 extend: *mut rknn_run_extend,
452 ) -> ::std::os::raw::c_int {
453 (self
454 .rknn_wait
455 .as_ref()
456 .expect("Expected function, got error."))(context, extend)
457 }
458 pub unsafe fn rknn_outputs_get(
459 &self,
460 context: rknn_context,
461 n_outputs: u32,
462 outputs: *mut rknn_output,
463 extend: *mut rknn_output_extend,
464 ) -> ::std::os::raw::c_int {
465 (self
466 .rknn_outputs_get
467 .as_ref()
468 .expect("Expected function, got error."))(context, n_outputs, outputs, extend)
469 }
470 pub unsafe fn rknn_outputs_release(
471 &self,
472 context: rknn_context,
473 n_ouputs: u32,
474 outputs: *mut rknn_output,
475 ) -> ::std::os::raw::c_int {
476 (self
477 .rknn_outputs_release
478 .as_ref()
479 .expect("Expected function, got error."))(context, n_ouputs, outputs)
480 }
481 pub unsafe fn rknn_create_mem_from_phys(
482 &self,
483 ctx: rknn_context,
484 phys_addr: u64,
485 virt_addr: *mut ::std::os::raw::c_void,
486 size: u32,
487 ) -> *mut rknn_tensor_mem {
488 (self
489 .rknn_create_mem_from_phys
490 .as_ref()
491 .expect("Expected function, got error."))(ctx, phys_addr, virt_addr, size)
492 }
493 pub unsafe fn rknn_create_mem_from_fd(
494 &self,
495 ctx: rknn_context,
496 fd: i32,
497 virt_addr: *mut ::std::os::raw::c_void,
498 size: u32,
499 offset: i32,
500 ) -> *mut rknn_tensor_mem {
501 (self
502 .rknn_create_mem_from_fd
503 .as_ref()
504 .expect("Expected function, got error."))(ctx, fd, virt_addr, size, offset)
505 }
506 pub unsafe fn rknn_create_mem_from_mb_blk(
507 &self,
508 ctx: rknn_context,
509 mb_blk: *mut ::std::os::raw::c_void,
510 offset: i32,
511 ) -> *mut rknn_tensor_mem {
512 (self
513 .rknn_create_mem_from_mb_blk
514 .as_ref()
515 .expect("Expected function, got error."))(ctx, mb_blk, offset)
516 }
517 pub unsafe fn rknn_create_mem(&self, ctx: rknn_context, size: u32) -> *mut rknn_tensor_mem {
518 (self
519 .rknn_create_mem
520 .as_ref()
521 .expect("Expected function, got error."))(ctx, size)
522 }
523 pub unsafe fn rknn_create_mem2(
524 &self,
525 ctx: rknn_context,
526 size: u64,
527 alloc_flags: u64,
528 ) -> *mut rknn_tensor_mem {
529 (self
530 .rknn_create_mem2
531 .as_ref()
532 .expect("Expected function, got error."))(ctx, size, alloc_flags)
533 }
534 pub unsafe fn rknn_destroy_mem(
535 &self,
536 ctx: rknn_context,
537 mem: *mut rknn_tensor_mem,
538 ) -> ::std::os::raw::c_int {
539 (self
540 .rknn_destroy_mem
541 .as_ref()
542 .expect("Expected function, got error."))(ctx, mem)
543 }
544 pub unsafe fn rknn_set_weight_mem(
545 &self,
546 ctx: rknn_context,
547 mem: *mut rknn_tensor_mem,
548 ) -> ::std::os::raw::c_int {
549 (self
550 .rknn_set_weight_mem
551 .as_ref()
552 .expect("Expected function, got error."))(ctx, mem)
553 }
554 pub unsafe fn rknn_set_internal_mem(
555 &self,
556 ctx: rknn_context,
557 mem: *mut rknn_tensor_mem,
558 ) -> ::std::os::raw::c_int {
559 (self
560 .rknn_set_internal_mem
561 .as_ref()
562 .expect("Expected function, got error."))(ctx, mem)
563 }
564 pub unsafe fn rknn_set_io_mem(
565 &self,
566 ctx: rknn_context,
567 mem: *mut rknn_tensor_mem,
568 attr: *mut rknn_tensor_attr,
569 ) -> ::std::os::raw::c_int {
570 (self
571 .rknn_set_io_mem
572 .as_ref()
573 .expect("Expected function, got error."))(ctx, mem, attr)
574 }
575 pub unsafe fn rknn_set_input_shape(
576 &self,
577 ctx: rknn_context,
578 attr: *mut rknn_tensor_attr,
579 ) -> ::std::os::raw::c_int {
580 (self
581 .rknn_set_input_shape
582 .as_ref()
583 .expect("Expected function, got error."))(ctx, attr)
584 }
585 pub unsafe fn rknn_set_input_shapes(
586 &self,
587 ctx: rknn_context,
588 n_inputs: u32,
589 attr: *mut rknn_tensor_attr,
590 ) -> ::std::os::raw::c_int {
591 (self
592 .rknn_set_input_shapes
593 .as_ref()
594 .expect("Expected function, got error."))(ctx, n_inputs, attr)
595 }
596 pub unsafe fn rknn_mem_sync(
597 &self,
598 context: rknn_context,
599 mem: *mut rknn_tensor_mem,
600 mode: rknn_mem_sync_mode,
601 ) -> ::std::os::raw::c_int {
602 (self
603 .rknn_mem_sync
604 .as_ref()
605 .expect("Expected function, got error."))(context, mem, mode)
606 }
607 pub unsafe fn rknn_matmul_create(
608 &self,
609 ctx: *mut rknn_matmul_ctx,
610 info: *mut rknn_matmul_info,
611 io_attr: *mut rknn_matmul_io_attr,
612 ) -> ::std::os::raw::c_int {
613 (self
614 .rknn_matmul_create
615 .as_ref()
616 .expect("Expected function, got error."))(ctx, info, io_attr)
617 }
618 pub unsafe fn rknn_matmul_create_dynamic_shape(
619 &self,
620 ctx: *mut rknn_matmul_ctx,
621 info: *mut rknn_matmul_info,
622 shape_num: ::std::os::raw::c_int,
623 dynamic_shapes: *mut rknn_matmul_shape,
624 io_attrs: *mut rknn_matmul_io_attr,
625 ) -> ::std::os::raw::c_int {
626 (self
627 .rknn_matmul_create_dynamic_shape
628 .as_ref()
629 .expect("Expected function, got error."))(
630 ctx,
631 info,
632 shape_num,
633 dynamic_shapes,
634 io_attrs,
635 )
636 }
637 pub unsafe fn rknn_matmul_set_io_mem(
638 &self,
639 ctx: rknn_matmul_ctx,
640 mem: *mut rknn_tensor_mem,
641 attr: *mut rknn_matmul_tensor_attr,
642 ) -> ::std::os::raw::c_int {
643 (self
644 .rknn_matmul_set_io_mem
645 .as_ref()
646 .expect("Expected function, got error."))(ctx, mem, attr)
647 }
648 pub unsafe fn rknn_matmul_set_core_mask(
649 &self,
650 context: rknn_matmul_ctx,
651 core_mask: rknn_core_mask,
652 ) -> ::std::os::raw::c_int {
653 (self
654 .rknn_matmul_set_core_mask
655 .as_ref()
656 .expect("Expected function, got error."))(context, core_mask)
657 }
658 pub unsafe fn rknn_matmul_set_quant_params(
659 &self,
660 context: rknn_matmul_ctx,
661 params: *mut rknn_quant_params,
662 ) -> ::std::os::raw::c_int {
663 (self
664 .rknn_matmul_set_quant_params
665 .as_ref()
666 .expect("Expected function, got error."))(context, params)
667 }
668 pub unsafe fn rknn_matmul_get_quant_params(
669 &self,
670 ctx: rknn_matmul_ctx,
671 params: *mut rknn_quant_params,
672 scale: *mut f32,
673 ) -> ::std::os::raw::c_int {
674 (self
675 .rknn_matmul_get_quant_params
676 .as_ref()
677 .expect("Expected function, got error."))(ctx, params, scale)
678 }
679 pub unsafe fn rknn_matmul_set_dynamic_shape(
680 &self,
681 ctx: rknn_matmul_ctx,
682 shape: *mut rknn_matmul_shape,
683 ) -> ::std::os::raw::c_int {
684 (self
685 .rknn_matmul_set_dynamic_shape
686 .as_ref()
687 .expect("Expected function, got error."))(ctx, shape)
688 }
689 pub unsafe fn rknn_matmul_run(&self, ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int {
690 (self
691 .rknn_matmul_run
692 .as_ref()
693 .expect("Expected function, got error."))(ctx)
694 }
695 pub unsafe fn rknn_matmul_destroy(&self, ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int {
696 (self
697 .rknn_matmul_destroy
698 .as_ref()
699 .expect("Expected function, got error."))(ctx)
700 }
701 pub unsafe fn rknn_B_normal_layout_to_native_layout(
702 &self,
703 B_input: *mut ::std::os::raw::c_void,
704 B_output: *mut ::std::os::raw::c_void,
705 K: ::std::os::raw::c_int,
706 N: ::std::os::raw::c_int,
707 info: *mut rknn_matmul_info,
708 ) -> ::std::os::raw::c_int {
709 (self
710 .rknn_B_normal_layout_to_native_layout
711 .as_ref()
712 .expect("Expected function, got error."))(B_input, B_output, K, N, info)
713 }
714 pub unsafe fn rknn_register_custom_ops(
715 &self,
716 ctx: rknn_context,
717 op: *mut rknn_custom_op,
718 custom_op_num: u32,
719 ) -> ::std::os::raw::c_int {
720 (self
721 .rknn_register_custom_ops
722 .as_ref()
723 .expect("Expected function, got error."))(ctx, op, custom_op_num)
724 }
725 pub unsafe fn rknn_custom_op_get_op_attr(
726 &self,
727 op_ctx: *mut rknn_custom_op_context,
728 attr_name: *const ::std::os::raw::c_char,
729 op_attr: *mut rknn_custom_op_attr,
730 ) {
731 (self
732 .rknn_custom_op_get_op_attr
733 .as_ref()
734 .expect("Expected function, got error."))(op_ctx, attr_name, op_attr)
735 }
736}