1 | /* |
2 | * Licensed to the Apache Software Foundation (ASF) under one |
3 | * or more contributor license agreements. See the NOTICE file |
4 | * distributed with this work for additional information |
5 | * regarding copyright ownership. The ASF licenses this file |
6 | * to you under the Apache License, Version 2.0 (the |
7 | * "License"); you may not use this file except in compliance |
8 | * with the License. You may obtain a copy of the License at |
9 | * |
10 | * http://www.apache.org/licenses/LICENSE-2.0 |
11 | * |
12 | * Unless required by applicable law or agreed to in writing, |
13 | * software distributed under the License is distributed on an |
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
15 | * KIND, either express or implied. See the License for the |
16 | * specific language governing permissions and limitations |
17 | * under the License. |
18 | */ |
19 | #include <tvm/runtime/object.h> |
20 | #include <tvm/runtime/registry.h> |
21 | |
22 | #ifndef TVM_INFO_GIT_COMMIT_HASH |
23 | #define TVM_INFO_GIT_COMMIT_HASH "NOT-FOUND" |
24 | #endif |
25 | |
26 | #ifndef TVM_INFO_GIT_COMMIT_TIME |
27 | #define TVM_INFO_GIT_COMMIT_TIME "NOT-FOUND" |
28 | #endif |
29 | |
30 | #ifndef TVM_INFO_LLVM_VERSION |
31 | #define TVM_INFO_LLVM_VERSION "NOT-FOUND" |
32 | #endif |
33 | |
34 | #ifndef TVM_INFO_USE_CUDA |
35 | #define TVM_INFO_USE_CUDA "NOT-FOUND" |
36 | #endif |
37 | |
38 | #ifndef TVM_INFO_CUDA_VERSION |
39 | #define TVM_INFO_CUDA_VERSION "NOT-FOUND" |
40 | #endif |
41 | |
42 | #ifndef TVM_INFO_USE_OPENCL |
43 | #define TVM_INFO_USE_OPENCL "NOT-FOUND" |
44 | #endif |
45 | |
46 | #ifndef TVM_INFO_USE_OPENCL_ENABLE_HOST_PTR |
47 | #define TVM_INFO_USE_OPENCL_ENABLE_HOST_PTR "NOT-FOUND" |
48 | #endif |
49 | |
50 | #ifndef TVM_INFO_USE_OPENCL_GTEST |
51 | #define TVM_INFO_USE_OPENCL_GTEST "NOT-FOUND" |
52 | #endif |
53 | |
54 | #ifndef TVM_INFO_USE_VULKAN |
55 | #define TVM_INFO_USE_VULKAN "NOT-FOUND" |
56 | #endif |
57 | |
58 | #ifndef TVM_INFO_USE_METAL |
59 | #define TVM_INFO_USE_METAL "NOT-FOUND" |
60 | #endif |
61 | |
62 | #ifndef TVM_INFO_USE_ROCM |
63 | #define TVM_INFO_USE_ROCM "NOT-FOUND" |
64 | #endif |
65 | |
66 | #ifndef TVM_INFO_ROCM_PATH |
67 | #define TVM_INFO_ROCM_PATH "NOT-FOUND" |
68 | #endif |
69 | |
70 | #ifndef TVM_INFO_USE_HEXAGON |
71 | #define TVM_INFO_USE_HEXAGON "NOT-FOUND" |
72 | #endif |
73 | |
74 | #ifndef TVM_INFO_USE_HEXAGON_SDK |
75 | #define TVM_INFO_USE_HEXAGON_SDK "NOT-FOUND" |
76 | #endif |
77 | |
78 | #ifndef TVM_INFO_USE_HEXAGON_GTEST |
79 | #define TVM_INFO_USE_HEXAGON_GTEST "NOT-FOUND" |
80 | #endif |
81 | |
82 | #ifndef TVM_INFO_USE_RPC |
83 | #define TVM_INFO_USE_RPC "NOT-FOUND" |
84 | #endif |
85 | |
86 | #ifndef TVM_INFO_USE_THREADS |
87 | #define TVM_INFO_USE_THREADS "NOT-FOUND" |
88 | #endif |
89 | |
90 | #ifndef TVM_INFO_USE_LLVM |
91 | #define TVM_INFO_USE_LLVM "NOT-FOUND" |
92 | #endif |
93 | |
94 | #ifndef TVM_INFO_USE_STACKVM_RUNTIME |
95 | #define TVM_INFO_USE_STACKVM_RUNTIME "NOT-FOUND" |
96 | #endif |
97 | |
98 | #ifndef TVM_INFO_USE_GRAPH_EXECUTOR |
99 | #define TVM_INFO_USE_GRAPH_EXECUTOR "NOT-FOUND" |
100 | #endif |
101 | |
102 | #ifndef TVM_INFO_USE_PROFILER |
103 | #define TVM_INFO_USE_PROFILER "NOT-FOUND" |
104 | #endif |
105 | |
106 | #ifndef TVM_INFO_USE_OPENMP |
107 | #define TVM_INFO_USE_OPENMP "NOT-FOUND" |
108 | #endif |
109 | |
110 | #ifndef TVM_INFO_USE_RELAY_DEBUG |
111 | #define TVM_INFO_USE_RELAY_DEBUG "NOT-FOUND" |
112 | #endif |
113 | |
114 | #ifndef TVM_INFO_USE_RTTI |
115 | #define TVM_INFO_USE_RTTI "NOT-FOUND" |
116 | #endif |
117 | |
118 | #ifndef TVM_INFO_USE_MSVC_MT |
119 | #define TVM_INFO_USE_MSVC_MT "NOT-FOUND" |
120 | #endif |
121 | |
122 | #ifndef TVM_INFO_USE_MICRO |
123 | #define TVM_INFO_USE_MICRO "NOT-FOUND" |
124 | #endif |
125 | |
126 | #ifndef TVM_INFO_INSTALL_DEV |
127 | #define TVM_INFO_INSTALL_DEV "NOT-FOUND" |
128 | #endif |
129 | |
130 | #ifndef TVM_INFO_HIDE_PRIVATE_SYMBOLS |
131 | #define TVM_INFO_HIDE_PRIVATE_SYMBOLS "NOT-FOUND" |
132 | #endif |
133 | |
134 | #ifndef TVM_INFO_USE_TF_TVMDSOOP |
135 | #define TVM_INFO_USE_TF_TVMDSOOP "NOT-FOUND" |
136 | #endif |
137 | |
138 | #ifndef TVM_INFO_USE_FALLBACK_STL_MAP |
139 | #define TVM_INFO_USE_FALLBACK_STL_MAP "NOT-FOUND" |
140 | #endif |
141 | |
142 | #ifndef TVM_INFO_USE_BYODT_POSIT |
143 | #define TVM_INFO_USE_BYODT_POSIT "NOT-FOUND" |
144 | #endif |
145 | |
146 | #ifndef TVM_INFO_USE_BLAS |
147 | #define TVM_INFO_USE_BLAS "NOT-FOUND" |
148 | #endif |
149 | |
150 | #ifndef TVM_INFO_USE_MKL |
151 | #define TVM_INFO_USE_MKL "NOT-FOUND" |
152 | #endif |
153 | |
154 | #ifndef TVM_INFO_USE_AMX |
155 | #define TVM_INFO_USE_AMX "NOT-FOUND" |
156 | #endif |
157 | |
158 | #ifndef TVM_INFO_USE_DNNL |
159 | #define TVM_INFO_USE_DNNL "NOT-FOUND" |
160 | #endif |
161 | |
162 | #ifndef TVM_INFO_USE_CUDNN |
163 | #define TVM_INFO_USE_CUDNN "NOT-FOUND" |
164 | #endif |
165 | |
166 | #ifndef TVM_INFO_USE_CUBLAS |
167 | #define TVM_INFO_USE_CUBLAS "NOT-FOUND" |
168 | #endif |
169 | |
170 | #ifndef TVM_INFO_USE_THRUST |
171 | #define TVM_INFO_USE_THRUST "NOT-FOUND" |
172 | #endif |
173 | |
174 | #ifndef TVM_INFO_USE_CURAND |
175 | #define TVM_INFO_USE_CURAND "NOT-FOUND" |
176 | #endif |
177 | |
178 | #ifndef TVM_INFO_USE_MIOPEN |
179 | #define TVM_INFO_USE_MIOPEN "NOT-FOUND" |
180 | #endif |
181 | |
182 | #ifndef TVM_INFO_USE_ROCBLAS |
183 | #define TVM_INFO_USE_ROCBLAS "NOT-FOUND" |
184 | #endif |
185 | |
186 | #ifndef TVM_INFO_USE_SORT |
187 | #define TVM_INFO_USE_SORT "NOT-FOUND" |
188 | #endif |
189 | |
190 | #ifndef TVM_INFO_USE_NNPACK |
191 | #define TVM_INFO_USE_NNPACK "NOT-FOUND" |
192 | #endif |
193 | |
194 | #ifndef TVM_INFO_USE_RANDOM |
195 | #define TVM_INFO_USE_RANDOM "NOT-FOUND" |
196 | #endif |
197 | |
198 | #ifndef TVM_INFO_USE_MICRO_STANDALONE_RUNTIME |
199 | #define TVM_INFO_USE_MICRO_STANDALONE_RUNTIME "NOT-FOUND" |
200 | #endif |
201 | |
202 | #ifndef TVM_INFO_USE_CPP_RPC |
203 | #define TVM_INFO_USE_CPP_RPC "NOT-FOUND" |
204 | #endif |
205 | |
206 | #ifndef TVM_INFO_USE_CPP_RTVM |
207 | #define TVM_INFO_USE_CPP_RTVM "NOT-FOUND" |
208 | #endif |
209 | |
210 | #ifndef TVM_INFO_USE_TFLITE |
211 | #define TVM_INFO_USE_TFLITE "NOT-FOUND" |
212 | #endif |
213 | |
214 | #ifndef TVM_INFO_USE_TENSORFLOW_PATH |
215 | #define TVM_INFO_USE_TENSORFLOW_PATH "NOT-FOUND" |
216 | #endif |
217 | |
218 | #ifndef TVM_INFO_USE_COREML |
219 | #define TVM_INFO_USE_COREML "NOT-FOUND" |
220 | #endif |
221 | |
222 | #ifndef TVM_INFO_USE_TARGET_ONNX |
223 | #define TVM_INFO_USE_TARGET_ONNX "NOT-FOUND" |
224 | #endif |
225 | |
226 | #ifndef TVM_INFO_USE_ARM_COMPUTE_LIB |
227 | #define TVM_INFO_USE_ARM_COMPUTE_LIB "NOT-FOUND" |
228 | #endif |
229 | |
230 | #ifndef TVM_INFO_USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR |
231 | #define TVM_INFO_USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR "NOT-FOUND" |
232 | #endif |
233 | |
234 | #ifndef TVM_INFO_INDEX_DEFAULT_I64 |
235 | #define TVM_INFO_INDEX_DEFAULT_I64 "NOT-FOUND" |
236 | #endif |
237 | |
238 | #ifndef TVM_CXX_COMPILER_PATH |
239 | #define TVM_CXX_COMPILER_PATH "" |
240 | #endif |
241 | |
242 | #ifndef TVM_INFO_USE_CCACHE |
243 | #define TVM_INFO_USE_CCACHE "NOT-FOUND" |
244 | #endif |
245 | |
246 | namespace tvm { |
247 | |
248 | /*! |
249 | * \brief Get a dictionary containing compile-time info, including cmake flags and git commit hash |
250 | * \return The compile-time info |
251 | */ |
252 | TVM_DLL Map<String, String> GetLibInfo() { |
253 | Map<String, String> result = { |
254 | {"BUILD_STATIC_RUNTIME" , TVM_INFO_BUILD_STATIC_RUNTIME}, |
255 | {"COMPILER_RT_PATH" , TVM_INFO_COMPILER_RT_PATH}, |
256 | {"CUDA_VERSION" , TVM_INFO_CUDA_VERSION}, |
257 | {"DLPACK_PATH" , TVM_INFO_DLPACK_PATH}, |
258 | {"DMLC_PATH" , TVM_INFO_DMLC_PATH}, |
259 | {"GIT_COMMIT_HASH" , TVM_INFO_GIT_COMMIT_HASH}, |
260 | {"GIT_COMMIT_TIME" , TVM_INFO_GIT_COMMIT_TIME}, |
261 | {"HIDE_PRIVATE_SYMBOLS" , TVM_INFO_HIDE_PRIVATE_SYMBOLS}, |
262 | {"INDEX_DEFAULT_I64" , TVM_INFO_INDEX_DEFAULT_I64}, |
263 | {"INSTALL_DEV" , TVM_INFO_INSTALL_DEV}, |
264 | {"LLVM_VERSION" , TVM_INFO_LLVM_VERSION}, |
265 | {"PICOJSON_PATH" , TVM_INFO_PICOJSON_PATH}, |
266 | {"RANG_PATH" , TVM_INFO_RANG_PATH}, |
267 | {"ROCM_PATH" , TVM_INFO_ROCM_PATH}, |
268 | {"SUMMARIZE" , TVM_INFO_SUMMARIZE}, |
269 | {"TVM_CXX_COMPILER_PATH" , TVM_CXX_COMPILER_PATH}, |
270 | {"USE_ALTERNATIVE_LINKER" , TVM_INFO_USE_ALTERNATIVE_LINKER}, |
271 | {"USE_AOT_EXECUTOR" , TVM_INFO_USE_AOT_EXECUTOR}, |
272 | {"USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR" , TVM_INFO_USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR}, |
273 | {"USE_ARM_COMPUTE_LIB" , TVM_INFO_USE_ARM_COMPUTE_LIB}, |
274 | {"USE_BLAS" , TVM_INFO_USE_BLAS}, |
275 | {"USE_BNNS" , TVM_INFO_USE_BNNS}, |
276 | {"USE_BYODT_POSIT" , TVM_INFO_USE_BYODT_POSIT}, |
277 | {"USE_CMSISNN" , TVM_INFO_USE_CMSISNN}, |
278 | {"USE_COREML" , TVM_INFO_USE_COREML}, |
279 | {"USE_CPP_RPC" , TVM_INFO_USE_CPP_RPC}, |
280 | {"USE_CPP_RTVM" , TVM_INFO_USE_CPP_RTVM}, |
281 | {"USE_CUBLAS" , TVM_INFO_USE_CUBLAS}, |
282 | {"USE_CUDA" , TVM_INFO_USE_CUDA}, |
283 | {"USE_CUDNN" , TVM_INFO_USE_CUDNN}, |
284 | {"USE_CUSTOM_LOGGING" , TVM_INFO_USE_CUSTOM_LOGGING}, |
285 | {"USE_CUTLASS" , TVM_INFO_USE_CUTLASS}, |
286 | {"USE_AMX" , TVM_INFO_USE_AMX}, |
287 | {"USE_DNNL" , TVM_INFO_USE_DNNL}, |
288 | {"USE_ETHOSN" , TVM_INFO_USE_ETHOSN}, |
289 | {"USE_FALLBACK_STL_MAP" , TVM_INFO_USE_FALLBACK_STL_MAP}, |
290 | {"USE_GRAPH_EXECUTOR_CUDA_GRAPH" , TVM_INFO_USE_GRAPH_EXECUTOR_CUDA_GRAPH}, |
291 | {"USE_GRAPH_EXECUTOR" , TVM_INFO_USE_GRAPH_EXECUTOR}, |
292 | {"USE_GTEST" , TVM_INFO_USE_GTEST}, |
293 | {"USE_HEXAGON" , TVM_INFO_USE_HEXAGON}, |
294 | {"USE_HEXAGON_RPC" , TVM_INFO_USE_HEXAGON_RPC}, |
295 | {"USE_HEXAGON_SDK" , TVM_INFO_USE_HEXAGON_SDK}, |
296 | {"USE_HEXAGON_GTEST" , TVM_INFO_USE_HEXAGON_GTEST}, |
297 | {"USE_HEXAGON_EXTERNAL_LIBS" , TVM_INFO_USE_HEXAGON_EXTERNAL_LIBS}, |
298 | {"USE_IOS_RPC" , TVM_INFO_USE_IOS_RPC}, |
299 | {"USE_KHRONOS_SPIRV" , TVM_INFO_USE_KHRONOS_SPIRV}, |
300 | {"USE_LIBBACKTRACE" , TVM_INFO_USE_LIBBACKTRACE}, |
301 | {"USE_LIBTORCH" , TVM_INFO_USE_LIBTORCH}, |
302 | {"USE_LLVM" , TVM_INFO_USE_LLVM}, |
303 | {"USE_METAL" , TVM_INFO_USE_METAL}, |
304 | {"USE_MICRO_STANDALONE_RUNTIME" , TVM_INFO_USE_MICRO_STANDALONE_RUNTIME}, |
305 | {"USE_MICRO" , TVM_INFO_USE_MICRO}, |
306 | {"USE_MIOPEN" , TVM_INFO_USE_MIOPEN}, |
307 | {"USE_MKL" , TVM_INFO_USE_MKL}, |
308 | {"USE_MSVC_MT" , TVM_INFO_USE_MSVC_MT}, |
309 | {"USE_NNPACK" , TVM_INFO_USE_NNPACK}, |
310 | {"USE_OPENCL" , TVM_INFO_USE_OPENCL}, |
311 | {"USE_OPENCL_ENABLE_HOST_PTR" , TVM_INFO_USE_OPENCL_ENABLE_HOST_PTR}, |
312 | {"USE_OPENCL_GTEST" , TVM_INFO_USE_OPENCL_GTEST}, |
313 | {"USE_OPENMP" , TVM_INFO_USE_OPENMP}, |
314 | {"USE_PAPI" , TVM_INFO_USE_PAPI}, |
315 | {"USE_PROFILER" , TVM_INFO_USE_PROFILER}, |
316 | {"USE_PT_TVMDSOOP" , TVM_INFO_USE_PT_TVMDSOOP}, |
317 | {"USE_RANDOM" , TVM_INFO_USE_RANDOM}, |
318 | {"USE_RELAY_DEBUG" , TVM_INFO_USE_RELAY_DEBUG}, |
319 | {"USE_ROCBLAS" , TVM_INFO_USE_ROCBLAS}, |
320 | {"USE_ROCM" , TVM_INFO_USE_ROCM}, |
321 | {"USE_RPC" , TVM_INFO_USE_RPC}, |
322 | {"USE_RTTI" , TVM_INFO_USE_RTTI}, |
323 | {"USE_RUST_EXT" , TVM_INFO_USE_RUST_EXT}, |
324 | {"USE_SORT" , TVM_INFO_USE_SORT}, |
325 | {"USE_SPIRV_KHR_INTEGER_DOT_PRODUCT" , TVM_INFO_USE_SPIRV_KHR_INTEGER_DOT_PRODUCT}, |
326 | {"USE_STACKVM_RUNTIME" , TVM_INFO_USE_STACKVM_RUNTIME}, |
327 | {"USE_TARGET_ONNX" , TVM_INFO_USE_TARGET_ONNX}, |
328 | {"USE_TENSORFLOW_PATH" , TVM_INFO_USE_TENSORFLOW_PATH}, |
329 | {"USE_TENSORRT_CODEGEN" , TVM_INFO_USE_TENSORRT_CODEGEN}, |
330 | {"USE_TENSORRT_RUNTIME" , TVM_INFO_USE_TENSORRT_RUNTIME}, |
331 | {"USE_TF_TVMDSOOP" , TVM_INFO_USE_TF_TVMDSOOP}, |
332 | {"USE_TFLITE" , TVM_INFO_USE_TFLITE}, |
333 | {"USE_THREADS" , TVM_INFO_USE_THREADS}, |
334 | {"USE_THRUST" , TVM_INFO_USE_THRUST}, |
335 | {"USE_CURAND" , TVM_INFO_USE_CURAND}, |
336 | {"USE_VITIS_AI" , TVM_INFO_USE_VITIS_AI}, |
337 | {"USE_VULKAN" , TVM_INFO_USE_VULKAN}, |
338 | {"USE_CLML" , TVM_INFO_USE_CLML}, |
339 | {"USE_CLML_GRAPH_EXECUTOR" , TVM_INFO_USE_CLML_GRAPH_EXECUTOR}, |
340 | {"USE_UMA" , TVM_INFO_USE_UMA}, |
341 | {"USE_VERILATOR" , TVM_INFO_USE_VERILATOR}, |
342 | {"USE_CCACHE" , TVM_INFO_USE_CCACHE}, |
343 | {"BACKTRACE_ON_SEGFAULT" , TVM_INFO_BACKTRACE_ON_SEGFAULT}, |
344 | }; |
345 | return result; |
346 | } |
347 | |
348 | TVM_REGISTER_GLOBAL("support.GetLibInfo" ).set_body_typed(GetLibInfo); |
349 | |
350 | } // namespace tvm |
351 | |