1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3#[cfg(feature = "raw")]
9#[cfg_attr(docsrs, doc(cfg(feature = "raw")))]
10pub mod bindings {
11 #![allow(unused_imports)]
12 #![allow(non_upper_case_globals)]
13 #![allow(non_camel_case_types)]
14 #![allow(non_snake_case)]
15 #[cfg(fallback)]
16 include!("bindings_docs.rs");
17 #[cfg(not(fallback))]
18 include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
19}
20
21#[cfg(not(feature = "raw"))]
22mod bindings {
23 #![allow(unused_imports)]
24 #![allow(dead_code)]
25 #![allow(non_upper_case_globals)]
26 #![allow(non_camel_case_types)]
27 #![allow(non_snake_case)]
28 #[cfg(fallback)]
29 include!("bindings_docs.rs");
30 #[cfg(not(fallback))]
31 include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
32}
33
34#[cfg(feature = "rknn")]
36#[cfg_attr(docsrs, doc(cfg(feature = "rknn")))]
37pub mod rknn {
38 pub mod flag {
39 pub use crate::bindings::{
40 RKNN_FLAG_PRIOR_HIGH,
41 RKNN_FLAG_PRIOR_MEDIUM,
42 RKNN_FLAG_PRIOR_LOW,
43 RKNN_FLAG_ASYNC_MASK,
44 RKNN_FLAG_COLLECT_PERF_MASK,
45 RKNN_FLAG_MEM_ALLOC_OUTSIDE,
46 RKNN_FLAG_SHARE_WEIGHT_MEM,
47 RKNN_FLAG_FENCE_IN_OUTSIDE,
48 RKNN_FLAG_FENCE_OUT_OUTSIDE,
49 RKNN_FLAG_COLLECT_MODEL_INFO_ONLY,
50 RKNN_FLAG_INTERNAL_ALLOC_OUTSIDE,
51 RKNN_FLAG_EXECUTE_FALLBACK_PRIOR_DEVICE_GPU,
52 RKNN_FLAG_ENABLE_SRAM,
53 RKNN_FLAG_SHARE_SRAM,
54 RKNN_FLAG_DISABLE_PROC_HIGH_PRIORITY,
55 RKNN_FLAG_DISABLE_FLUSH_INPUT_MEM_CACHE,
56 RKNN_FLAG_DISABLE_FLUSH_OUTPUT_MEM_CACHE,
57 RKNN_FLAG_MODEL_BUFFER_ZERO_COPY,
58 RKNN_MEM_FLAG_ALLOC_NO_CONTEXT,
59 };
60 }
61 pub mod error {
62 pub use crate::bindings::{
63 RKNN_SUCC,
64 RKNN_ERR_FAIL,
65 RKNN_ERR_TIMEOUT,
66 RKNN_ERR_DEVICE_UNAVAILABLE,
67 RKNN_ERR_MALLOC_FAIL,
68 RKNN_ERR_PARAM_INVALID,
69 RKNN_ERR_MODEL_INVALID,
70 RKNN_ERR_CTX_INVALID,
71 RKNN_ERR_INPUT_INVALID,
72 RKNN_ERR_OUTPUT_INVALID,
73 RKNN_ERR_DEVICE_UNMATCH,
74 RKNN_ERR_INCOMPATILE_PRE_COMPILE_MODEL,
75 RKNN_ERR_INCOMPATILE_OPTIMIZATION_LEVEL_VERSION,
76 RKNN_ERR_TARGET_PLATFORM_UNMATCH,
77 };
78 }
79
80 pub mod limits {
81 pub use crate::bindings::{
82 RKNN_MAX_DIMS,
83 RKNN_MAX_NUM_CHANNEL,
84 RKNN_MAX_NAME_LEN,
85 RKNN_MAX_DYNAMIC_SHAPE_NUM,
86 };
87 }
88
89 pub use crate::bindings::{
90 rknn_context,
91 rknn_query_cmd,
92 rknn_tensor_type,
93 rknn_tensor_qnt_type,
94 rknn_tensor_format,
95 rknn_core_mask,
96 rknn_input_output_num,
97 rknn_tensor_attr,
98 rknn_input_range,
99 rknn_perf_detail,
100 rknn_perf_run,
101 rknn_sdk_version,
102 rknn_mem_size,
103 rknn_custom_string,
104 rknn_tensor_mem_flags,
105 rknn_mem_alloc_flags,
106 rknn_mem_sync_mode,
107 rknn_tensor_mem,
108 rknn_input,
109 rknn_output,
110 rknn_init_extend,
111 rknn_run_extend,
112 rknn_output_extend,
113 };
114
115 pub use crate::bindings::{
116 rknn_init,
117 rknn_destroy,
118 rknn_query,
119 rknn_inputs_set,
120 rknn_run,
121 rknn_outputs_get,
122 rknn_outputs_release,
123 rknn_create_mem,
124 rknn_destroy_mem,
125 rknn_set_io_mem,
126 };
127
128 pub fn get_type_string(t: rknn_tensor_type) -> &'static str {
132 match t {
133 rknn_tensor_type::RKNN_TENSOR_FLOAT32 => "FP32",
134 rknn_tensor_type::RKNN_TENSOR_FLOAT16 => "FP16",
135 rknn_tensor_type::RKNN_TENSOR_INT8 => "INT8",
136 rknn_tensor_type::RKNN_TENSOR_UINT8 => "UINT8",
137 rknn_tensor_type::RKNN_TENSOR_INT16 => "INT16",
138 rknn_tensor_type::RKNN_TENSOR_UINT16 => "UINT16",
139 rknn_tensor_type::RKNN_TENSOR_INT32 => "INT32",
140 rknn_tensor_type::RKNN_TENSOR_UINT32 => "UINT32",
141 rknn_tensor_type::RKNN_TENSOR_INT64 => "INT64",
142 rknn_tensor_type::RKNN_TENSOR_BOOL => "BOOL",
143 rknn_tensor_type::RKNN_TENSOR_INT4 => "INT4",
144 rknn_tensor_type::RKNN_TENSOR_BFLOAT16 => "BF16",
145 _ => "UNKNOW",
146 }
147 }
148
149 pub fn get_qnt_type_string(t: rknn_tensor_qnt_type) -> &'static str {
153 match t {
154 rknn_tensor_qnt_type::RKNN_TENSOR_QNT_NONE => "NONE",
155 rknn_tensor_qnt_type::RKNN_TENSOR_QNT_DFP => "DFP",
156 rknn_tensor_qnt_type::RKNN_TENSOR_QNT_AFFINE_ASYMMETRIC => "AFFINE",
157 _ => "UNKNOW",
158 }
159 }
160}
161
162#[cfg(feature = "matmul")]
164#[cfg_attr(docsrs, doc(cfg(feature = "matmul")))]
165pub mod matmul {}
166
167#[cfg(feature = "custom-op")]
169#[cfg_attr(docsrs, doc(cfg(feature = "custom-op")))]
170pub mod custom_op {}