bigdl-core-npu 2.6.0b20250114__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. bigdl-core-npu/__init__.py +0 -0
  2. bigdl-core-npu/include/common.h +96 -0
  3. bigdl-core-npu/include/npu_llm.h +74 -0
  4. bigdl-core-npu/npu_llm.dll +0 -0
  5. bigdl-core-npu/npu_llm.lib +0 -0
  6. bigdl_core_npu-2.6.0b20250114.dist-info/METADATA +44 -0
  7. bigdl_core_npu-2.6.0b20250114.dist-info/RECORD +234 -0
  8. bigdl_core_npu-2.6.0b20250114.dist-info/WHEEL +5 -0
  9. bigdl_core_npu-2.6.0b20250114.dist-info/top_level.txt +2 -0
  10. intel_npu_acceleration_library/__init__.py +24 -0
  11. intel_npu_acceleration_library/_version.py +6 -0
  12. intel_npu_acceleration_library/backend/__init__.py +37 -0
  13. intel_npu_acceleration_library/backend/base.py +250 -0
  14. intel_npu_acceleration_library/backend/bindings.py +383 -0
  15. intel_npu_acceleration_library/backend/compression.py +24 -0
  16. intel_npu_acceleration_library/backend/convolution.py +58 -0
  17. intel_npu_acceleration_library/backend/factory.py +1161 -0
  18. intel_npu_acceleration_library/backend/linear.py +60 -0
  19. intel_npu_acceleration_library/backend/matmul.py +59 -0
  20. intel_npu_acceleration_library/backend/mlp.py +58 -0
  21. intel_npu_acceleration_library/backend/ops.py +142 -0
  22. intel_npu_acceleration_library/backend/qlinear.py +75 -0
  23. intel_npu_acceleration_library/backend/qmatmul.py +66 -0
  24. intel_npu_acceleration_library/backend/runtime.py +215 -0
  25. intel_npu_acceleration_library/backend/sdpa.py +107 -0
  26. intel_npu_acceleration_library/backend/tensor.py +1120 -0
  27. intel_npu_acceleration_library/backend/utils.py +70 -0
  28. intel_npu_acceleration_library/compiler.py +194 -0
  29. intel_npu_acceleration_library/device.py +230 -0
  30. intel_npu_acceleration_library/dtypes.py +155 -0
  31. intel_npu_acceleration_library/external/openvino/__init__.py +72 -0
  32. intel_npu_acceleration_library/external/openvino/_offline_transformations/__init__.py +21 -0
  33. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp310-win_amd64.pyd +0 -0
  34. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp311-win_amd64.pyd +0 -0
  35. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp312-win_amd64.pyd +0 -0
  36. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp38-win_amd64.pyd +0 -0
  37. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp39-win_amd64.pyd +0 -0
  38. intel_npu_acceleration_library/external/openvino/experimental/__init__.py +14 -0
  39. intel_npu_acceleration_library/external/openvino/frontend/__init__.py +34 -0
  40. intel_npu_acceleration_library/external/openvino/frontend/frontend.py +44 -0
  41. intel_npu_acceleration_library/external/openvino/frontend/jax/__init__.py +15 -0
  42. intel_npu_acceleration_library/external/openvino/frontend/jax/jaxpr_decoder.py +293 -0
  43. intel_npu_acceleration_library/external/openvino/frontend/jax/passes.py +65 -0
  44. intel_npu_acceleration_library/external/openvino/frontend/jax/utils.py +182 -0
  45. intel_npu_acceleration_library/external/openvino/frontend/onnx/__init__.py +15 -0
  46. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp310-win_amd64.pyd +0 -0
  47. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp311-win_amd64.pyd +0 -0
  48. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp312-win_amd64.pyd +0 -0
  49. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp38-win_amd64.pyd +0 -0
  50. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp39-win_amd64.pyd +0 -0
  51. intel_npu_acceleration_library/external/openvino/frontend/paddle/__init__.py +15 -0
  52. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp310-win_amd64.pyd +0 -0
  53. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp311-win_amd64.pyd +0 -0
  54. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp312-win_amd64.pyd +0 -0
  55. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp38-win_amd64.pyd +0 -0
  56. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp39-win_amd64.pyd +0 -0
  57. intel_npu_acceleration_library/external/openvino/frontend/pytorch/__init__.py +19 -0
  58. intel_npu_acceleration_library/external/openvino/frontend/pytorch/fx_decoder.py +370 -0
  59. intel_npu_acceleration_library/external/openvino/frontend/pytorch/gptq.py +180 -0
  60. intel_npu_acceleration_library/external/openvino/frontend/pytorch/module_extension.py +39 -0
  61. intel_npu_acceleration_library/external/openvino/frontend/pytorch/patch_model.py +118 -0
  62. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp310-win_amd64.pyd +0 -0
  63. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp311-win_amd64.pyd +0 -0
  64. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp312-win_amd64.pyd +0 -0
  65. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp38-win_amd64.pyd +0 -0
  66. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp39-win_amd64.pyd +0 -0
  67. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/backend.py +131 -0
  68. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/backend_utils.py +85 -0
  69. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/compile.py +141 -0
  70. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/decompositions.py +116 -0
  71. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/execute.py +189 -0
  72. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/op_support.py +290 -0
  73. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/partition.py +126 -0
  74. intel_npu_acceleration_library/external/openvino/frontend/pytorch/ts_decoder.py +568 -0
  75. intel_npu_acceleration_library/external/openvino/frontend/pytorch/utils.py +258 -0
  76. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/__init__.py +16 -0
  77. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/graph_iterator.py +116 -0
  78. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/node_decoder.py +219 -0
  79. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp310-win_amd64.pyd +0 -0
  80. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp311-win_amd64.pyd +0 -0
  81. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp312-win_amd64.pyd +0 -0
  82. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp38-win_amd64.pyd +0 -0
  83. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp39-win_amd64.pyd +0 -0
  84. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/utils.py +481 -0
  85. intel_npu_acceleration_library/external/openvino/helpers/__init__.py +6 -0
  86. intel_npu_acceleration_library/external/openvino/helpers/packing.py +87 -0
  87. intel_npu_acceleration_library/external/openvino/preprocess/README.md +60 -0
  88. intel_npu_acceleration_library/external/openvino/preprocess/__init__.py +28 -0
  89. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/__init__.py +15 -0
  90. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/preprocess_converter.py +47 -0
  91. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/requirements.txt +5 -0
  92. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/torchvision_preprocessing.py +347 -0
  93. intel_npu_acceleration_library/external/openvino/properties/__init__.py +22 -0
  94. intel_npu_acceleration_library/external/openvino/properties/_properties.py +55 -0
  95. intel_npu_acceleration_library/external/openvino/properties/device/__init__.py +14 -0
  96. intel_npu_acceleration_library/external/openvino/properties/hint/__init__.py +15 -0
  97. intel_npu_acceleration_library/external/openvino/properties/intel_auto/__init__.py +12 -0
  98. intel_npu_acceleration_library/external/openvino/properties/intel_cpu/__init__.py +8 -0
  99. intel_npu_acceleration_library/external/openvino/properties/intel_gpu/__init__.py +12 -0
  100. intel_npu_acceleration_library/external/openvino/properties/intel_gpu/hint/__init__.py +11 -0
  101. intel_npu_acceleration_library/external/openvino/properties/log/__init__.py +11 -0
  102. intel_npu_acceleration_library/external/openvino/properties/streams/__init__.py +11 -0
  103. intel_npu_acceleration_library/external/openvino/runtime/__init__.py +85 -0
  104. intel_npu_acceleration_library/external/openvino/runtime/exceptions.py +17 -0
  105. intel_npu_acceleration_library/external/openvino/runtime/ie_api.py +631 -0
  106. intel_npu_acceleration_library/external/openvino/runtime/op/__init__.py +19 -0
  107. intel_npu_acceleration_library/external/openvino/runtime/op/util/__init__.py +22 -0
  108. intel_npu_acceleration_library/external/openvino/runtime/opset1/__init__.py +112 -0
  109. intel_npu_acceleration_library/external/openvino/runtime/opset1/ops.py +3068 -0
  110. intel_npu_acceleration_library/external/openvino/runtime/opset10/__init__.py +179 -0
  111. intel_npu_acceleration_library/external/openvino/runtime/opset10/ops.py +173 -0
  112. intel_npu_acceleration_library/external/openvino/runtime/opset11/__init__.py +179 -0
  113. intel_npu_acceleration_library/external/openvino/runtime/opset11/ops.py +107 -0
  114. intel_npu_acceleration_library/external/openvino/runtime/opset12/__init__.py +180 -0
  115. intel_npu_acceleration_library/external/openvino/runtime/opset12/ops.py +120 -0
  116. intel_npu_acceleration_library/external/openvino/runtime/opset13/__init__.py +188 -0
  117. intel_npu_acceleration_library/external/openvino/runtime/opset13/ops.py +398 -0
  118. intel_npu_acceleration_library/external/openvino/runtime/opset14/__init__.py +190 -0
  119. intel_npu_acceleration_library/external/openvino/runtime/opset14/ops.py +171 -0
  120. intel_npu_acceleration_library/external/openvino/runtime/opset15/__init__.py +17 -0
  121. intel_npu_acceleration_library/external/openvino/runtime/opset15/ops.py +276 -0
  122. intel_npu_acceleration_library/external/openvino/runtime/opset2/__init__.py +118 -0
  123. intel_npu_acceleration_library/external/openvino/runtime/opset2/ops.py +216 -0
  124. intel_npu_acceleration_library/external/openvino/runtime/opset3/__init__.py +134 -0
  125. intel_npu_acceleration_library/external/openvino/runtime/opset3/ops.py +638 -0
  126. intel_npu_acceleration_library/external/openvino/runtime/opset4/__init__.py +145 -0
  127. intel_npu_acceleration_library/external/openvino/runtime/opset4/ops.py +464 -0
  128. intel_npu_acceleration_library/external/openvino/runtime/opset5/__init__.py +152 -0
  129. intel_npu_acceleration_library/external/openvino/runtime/opset5/ops.py +372 -0
  130. intel_npu_acceleration_library/external/openvino/runtime/opset6/__init__.py +154 -0
  131. intel_npu_acceleration_library/external/openvino/runtime/opset6/ops.py +215 -0
  132. intel_npu_acceleration_library/external/openvino/runtime/opset7/__init__.py +158 -0
  133. intel_npu_acceleration_library/external/openvino/runtime/opset7/ops.py +169 -0
  134. intel_npu_acceleration_library/external/openvino/runtime/opset8/__init__.py +169 -0
  135. intel_npu_acceleration_library/external/openvino/runtime/opset8/ops.py +787 -0
  136. intel_npu_acceleration_library/external/openvino/runtime/opset9/__init__.py +175 -0
  137. intel_npu_acceleration_library/external/openvino/runtime/opset9/ops.py +341 -0
  138. intel_npu_acceleration_library/external/openvino/runtime/opset_utils.py +22 -0
  139. intel_npu_acceleration_library/external/openvino/runtime/passes/__init__.py +19 -0
  140. intel_npu_acceleration_library/external/openvino/runtime/passes/graph_rewrite.py +33 -0
  141. intel_npu_acceleration_library/external/openvino/runtime/passes/manager.py +26 -0
  142. intel_npu_acceleration_library/external/openvino/runtime/properties/__init__.py +40 -0
  143. intel_npu_acceleration_library/external/openvino/runtime/properties/hint/__init__.py +25 -0
  144. intel_npu_acceleration_library/external/openvino/runtime/utils/__init__.py +7 -0
  145. intel_npu_acceleration_library/external/openvino/runtime/utils/broadcasting.py +44 -0
  146. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/__init__.py +8 -0
  147. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/data_dispatcher.py +447 -0
  148. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/wrappers.py +148 -0
  149. intel_npu_acceleration_library/external/openvino/runtime/utils/decorators.py +156 -0
  150. intel_npu_acceleration_library/external/openvino/runtime/utils/input_validation.py +133 -0
  151. intel_npu_acceleration_library/external/openvino/runtime/utils/node_factory.py +127 -0
  152. intel_npu_acceleration_library/external/openvino/runtime/utils/reduction.py +25 -0
  153. intel_npu_acceleration_library/external/openvino/runtime/utils/types.py +175 -0
  154. intel_npu_acceleration_library/external/openvino/tools/__init__.py +4 -0
  155. intel_npu_acceleration_library/external/openvino/tools/benchmark/__init__.py +3 -0
  156. intel_npu_acceleration_library/external/openvino/tools/benchmark/benchmark.py +186 -0
  157. intel_npu_acceleration_library/external/openvino/tools/benchmark/main.py +695 -0
  158. intel_npu_acceleration_library/external/openvino/tools/benchmark/parameters.py +199 -0
  159. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/__init__.py +3 -0
  160. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/constants.py +26 -0
  161. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/inputs_filling.py +482 -0
  162. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/logging.py +8 -0
  163. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/statistics_report.py +296 -0
  164. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/utils.py +836 -0
  165. intel_npu_acceleration_library/external/openvino/tools/ovc/__init__.py +20 -0
  166. intel_npu_acceleration_library/external/openvino/tools/ovc/__main__.py +10 -0
  167. intel_npu_acceleration_library/external/openvino/tools/ovc/cli_parser.py +633 -0
  168. intel_npu_acceleration_library/external/openvino/tools/ovc/convert.py +102 -0
  169. intel_npu_acceleration_library/external/openvino/tools/ovc/convert_data_type.py +82 -0
  170. intel_npu_acceleration_library/external/openvino/tools/ovc/convert_impl.py +550 -0
  171. intel_npu_acceleration_library/external/openvino/tools/ovc/environment_setup_utils.py +50 -0
  172. intel_npu_acceleration_library/external/openvino/tools/ovc/error.py +49 -0
  173. intel_npu_acceleration_library/external/openvino/tools/ovc/get_ov_update_message.py +16 -0
  174. intel_npu_acceleration_library/external/openvino/tools/ovc/help.py +45 -0
  175. intel_npu_acceleration_library/external/openvino/tools/ovc/logger.py +91 -0
  176. intel_npu_acceleration_library/external/openvino/tools/ovc/main.py +40 -0
  177. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/__init__.py +2 -0
  178. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/analysis.py +46 -0
  179. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/check_config.py +57 -0
  180. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/extractor.py +447 -0
  181. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/jax_frontend_utils.py +19 -0
  182. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/layout_utils.py +73 -0
  183. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/moc_emit_ir.py +32 -0
  184. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/offline_transformations.py +107 -0
  185. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/paddle_frontend_utils.py +83 -0
  186. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/pipeline.py +298 -0
  187. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/preprocessing.py +220 -0
  188. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/pytorch_frontend_utils.py +214 -0
  189. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/shape_utils.py +109 -0
  190. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/type_utils.py +82 -0
  191. intel_npu_acceleration_library/external/openvino/tools/ovc/ovc.py +13 -0
  192. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_params.py +6 -0
  193. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_stub.py +28 -0
  194. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_utils.py +118 -0
  195. intel_npu_acceleration_library/external/openvino/tools/ovc/utils.py +196 -0
  196. intel_npu_acceleration_library/external/openvino/tools/ovc/version.py +80 -0
  197. intel_npu_acceleration_library/external/openvino/torch/__init__.py +5 -0
  198. intel_npu_acceleration_library/external/openvino/utils.py +115 -0
  199. intel_npu_acceleration_library/functional/__init__.py +8 -0
  200. intel_npu_acceleration_library/functional/scaled_dot_product_attention.py +47 -0
  201. intel_npu_acceleration_library/lib/Release/cache.json +113732 -0
  202. intel_npu_acceleration_library/lib/Release/intel_npu_acceleration_library.dll +0 -0
  203. intel_npu_acceleration_library/lib/Release/openvino.dll +0 -0
  204. intel_npu_acceleration_library/lib/Release/openvino_auto_batch_plugin.dll +0 -0
  205. intel_npu_acceleration_library/lib/Release/openvino_auto_plugin.dll +0 -0
  206. intel_npu_acceleration_library/lib/Release/openvino_c.dll +0 -0
  207. intel_npu_acceleration_library/lib/Release/openvino_hetero_plugin.dll +0 -0
  208. intel_npu_acceleration_library/lib/Release/openvino_intel_cpu_plugin.dll +0 -0
  209. intel_npu_acceleration_library/lib/Release/openvino_intel_gpu_plugin.dll +0 -0
  210. intel_npu_acceleration_library/lib/Release/openvino_intel_npu_plugin.dll +0 -0
  211. intel_npu_acceleration_library/lib/Release/openvino_ir_frontend.dll +0 -0
  212. intel_npu_acceleration_library/lib/Release/openvino_onnx_frontend.dll +0 -0
  213. intel_npu_acceleration_library/lib/Release/openvino_paddle_frontend.dll +0 -0
  214. intel_npu_acceleration_library/lib/Release/openvino_pytorch_frontend.dll +0 -0
  215. intel_npu_acceleration_library/lib/Release/openvino_tensorflow_frontend.dll +0 -0
  216. intel_npu_acceleration_library/lib/Release/openvino_tensorflow_lite_frontend.dll +0 -0
  217. intel_npu_acceleration_library/lib/Release/tbb12.dll +0 -0
  218. intel_npu_acceleration_library/lib/Release/tbb12_debug.dll +0 -0
  219. intel_npu_acceleration_library/lib/Release/tbbbind_2_5.dll +0 -0
  220. intel_npu_acceleration_library/lib/Release/tbbbind_2_5_debug.dll +0 -0
  221. intel_npu_acceleration_library/lib/Release/tbbmalloc.dll +0 -0
  222. intel_npu_acceleration_library/lib/Release/tbbmalloc_debug.dll +0 -0
  223. intel_npu_acceleration_library/lib/Release/tbbmalloc_proxy.dll +0 -0
  224. intel_npu_acceleration_library/lib/Release/tbbmalloc_proxy_debug.dll +0 -0
  225. intel_npu_acceleration_library/modelling.py +150 -0
  226. intel_npu_acceleration_library/nn/__init__.py +20 -0
  227. intel_npu_acceleration_library/nn/autograd.py +68 -0
  228. intel_npu_acceleration_library/nn/conv.py +257 -0
  229. intel_npu_acceleration_library/nn/functional.py +1207 -0
  230. intel_npu_acceleration_library/nn/linear.py +162 -0
  231. intel_npu_acceleration_library/nn/llm.py +417 -0
  232. intel_npu_acceleration_library/nn/module.py +393 -0
  233. intel_npu_acceleration_library/optimizations.py +157 -0
  234. intel_npu_acceleration_library/quantization.py +174 -0
@@ -0,0 +1,214 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import logging as log
5
+ import sys
6
+
7
+ import numpy as np
8
+ # pylint: disable=no-name-in-module,import-error
9
+ from openvino.runtime import Tensor, PartialShape
10
+ from openvino.tools.ovc.error import Error
11
+ from openvino.tools.ovc.cli_parser import single_input_to_input_cut_info, _InputCutInfo
12
+
13
+
14
+
15
+ def get_pytorch_decoder(model, example_inputs, args):
16
+ try:
17
+ from openvino.frontend.pytorch.ts_decoder import TorchScriptPythonDecoder
18
+ from openvino.frontend.pytorch.fx_decoder import TorchFXPythonDecoder
19
+ from openvino.frontend.pytorch.module_extension import ModuleExtension
20
+ import torch
21
+ except Exception as e:
22
+ log.error("PyTorch frontend loading failed")
23
+ raise e
24
+
25
+ def extract_module_extensions(args):
26
+ extensions = args.get('extension', []) or []
27
+ if not isinstance(extensions, (list, tuple)):
28
+ extensions = [extensions]
29
+ return {extension.module: extension for extension in extensions if isinstance(extension, ModuleExtension)}
30
+
31
+ if 'nncf' in sys.modules:
32
+ is_good_version = True
33
+ try:
34
+ from nncf.torch.nncf_network import NNCFNetwork
35
+
36
+ if isinstance(model, NNCFNetwork):
37
+ from packaging import version
38
+ if version.parse(sys.modules['nncf'].__version__) < version.parse("2.6"):
39
+ is_good_version = False
40
+ except:
41
+ pass
42
+ if not is_good_version:
43
+ raise RuntimeError(
44
+ "NNCF models produced by nncf<2.6 are not supported directly. Please upgrade nncf or export to ONNX first.")
45
+ inputs = prepare_torch_inputs(example_inputs)
46
+ if not isinstance(model, (TorchScriptPythonDecoder, TorchFXPythonDecoder)):
47
+ if hasattr(torch, "export") and isinstance(model, (torch.export.ExportedProgram)):
48
+ from packaging import version
49
+ if version.parse(torch.__version__) >= version.parse("2.2"):
50
+ model = model.run_decompositions()
51
+ gm = model.module()
52
+ decoder = TorchFXPythonDecoder(gm)
53
+ else:
54
+ decoder = TorchScriptPythonDecoder(
55
+ model,
56
+ example_input=inputs,
57
+ shared_memory=args.get("share_weights", True),
58
+ module_extensions=extract_module_extensions(args))
59
+ else:
60
+ decoder = model
61
+ args['input_model'] = decoder
62
+ args["example_input"] = inputs
63
+
64
+ return args
65
+
66
+
67
+ def update_list_or_dict(container, name, idx, value):
68
+ if isinstance(container, dict):
69
+ if name is None:
70
+ name = list(container)[idx]
71
+ container[name] = value
72
+ return
73
+ if idx == len(container):
74
+ container.append(value)
75
+ elif idx > len(container):
76
+ raise Error(f"Wrong {idx}")
77
+ else:
78
+ container[idx] = value
79
+ return
80
+
81
+
82
+ def get_value_from_list_or_dict(container, name, idx):
83
+ if isinstance(container, dict):
84
+ if name is None:
85
+ if idx < len(container):
86
+ name = list(container)[idx]
87
+ return None
88
+ return container.get(name)
89
+ if idx < len(container):
90
+ return container[idx]
91
+ return None
92
+
93
+
94
+ def flatten_inputs(inputs, names=None):
95
+ flattened = []
96
+ if isinstance(inputs, dict):
97
+ # if names are provided we need to unpack in the same order
98
+ if names:
99
+ for name in names:
100
+ if isinstance(inputs[name], (list, tuple, dict)):
101
+ flattened.extend(flatten_inputs(inputs[name]))
102
+ else:
103
+ flattened.append((name, inputs[name]))
104
+ else:
105
+ for name, input_data in inputs.items():
106
+ if isinstance(input_data, (list, tuple, dict)):
107
+ flattened.extend(flatten_inputs(input_data))
108
+ else:
109
+ flattened.append((name, input_data))
110
+ else:
111
+ for input_data in inputs:
112
+ if isinstance(input_data, (list, tuple, dict)):
113
+ flattened.extend(flatten_inputs(input_data))
114
+ else:
115
+ flattened.append(input_data)
116
+ return flattened
117
+
118
+
119
+ def extract_input_info_from_example(args, inputs):
120
+ try:
121
+ from openvino.frontend.pytorch.utils import pt_to_ov_type_map # pylint: disable=no-name-in-module,import-error
122
+ except Exception as e:
123
+ log.error("PyTorch frontend loading failed")
124
+ raise e
125
+ example_inputs = args.input_model._example_input if args.input_model._example_input is not None else args.example_input
126
+ if example_inputs is None:
127
+ return
128
+ is_dict_input = isinstance(example_inputs, dict)
129
+ if not isinstance(example_inputs, (list, tuple, dict)):
130
+ example_inputs = [example_inputs]
131
+ input_names = None
132
+ if args.input_model._input_signature is not None:
133
+ input_names = args.input_model._input_signature[1:] if args.input_model._input_signature[
134
+ 0] == "self" else args.input_model._input_signature
135
+ if input_names and not is_dict_input:
136
+ example_inputs = dict(zip(input_names, example_inputs))
137
+ example_inputs = flatten_inputs(example_inputs, input_names)
138
+ input_arg = []
139
+ for example in example_inputs:
140
+ name = None
141
+ if isinstance(example, tuple) and len(example) == 2:
142
+ name = example[0]
143
+ example = example[1]
144
+ shape = PartialShape([-1] * example.ndim) if hasattr(example, "ndim") else PartialShape.dynamic()
145
+ dtype = getattr(example, "dtype", type(example))
146
+ dtype = pt_to_ov_type_map.get(str(dtype))
147
+ if name:
148
+ input_arg.append(single_input_to_input_cut_info((name, shape, dtype)))
149
+ else:
150
+ input_arg.append(single_input_to_input_cut_info((shape, dtype)))
151
+ if inputs is not None and len(inputs) != 0:
152
+ if len(inputs) == len(input_arg):
153
+ # we can update input argument with info from examples
154
+ new_input = []
155
+ for i in range(len(input_arg)):
156
+ input_desc = args.input[i]
157
+ name = input_desc.name
158
+ dtype = input_desc.type
159
+ shape = input_desc.shape
160
+ if name is None:
161
+ name = input_arg[i].name
162
+ if dtype is None:
163
+ dtype = input_arg[i].type
164
+ if shape is None:
165
+ shape = input_arg[i].shape
166
+ new_input.append(_InputCutInfo(name, shape, dtype, input_desc.value))
167
+ input_arg = new_input
168
+ else:
169
+ # we can't update args.input
170
+ return
171
+ args.input = input_arg
172
+
173
+
174
+ # pylint: disable=no-member
175
+ def to_torch_tensor(tensor):
176
+ import torch # pylint: disable=import-error
177
+ if isinstance(tensor, torch.Tensor):
178
+ return tensor
179
+ if isinstance(tensor, np.ndarray):
180
+ return torch.tensor(tensor)
181
+ if isinstance(tensor, Tensor):
182
+ return torch.tensor(tensor.data)
183
+ if isinstance(tensor, (float, int, bool)):
184
+ return tensor
185
+ if isinstance(tensor, (tuple, list)):
186
+ # TODO: Function to_torch_tensor should be renamed as it handles not only a tensor
187
+ return tuple(to_torch_tensor(x) for x in tensor)
188
+ if isinstance(tensor, dict) and all(isinstance(k, str) for k in tensor.keys()):
189
+ return dict((k, to_torch_tensor(x)) for k, x in tensor.items())
190
+ else:
191
+ raise Error("Unexpected type of example_input. Supported types torch.Tensor, np.array or ov.Tensor. "
192
+ "Got {}".format(type(tensor)))
193
+
194
+
195
+ def prepare_torch_inputs(example_inputs):
196
+ inputs = None
197
+ if example_inputs is not None:
198
+ inputs = example_inputs
199
+ if isinstance(inputs, list):
200
+ inputs = [to_torch_tensor(x) for x in inputs]
201
+ elif isinstance(inputs, tuple):
202
+ inputs = [to_torch_tensor(x) for x in inputs]
203
+ inputs = tuple(inputs)
204
+ elif isinstance(inputs, dict):
205
+ for name, tensor in inputs.items():
206
+ assert isinstance(name, str), "Expected dictionary where keys are input names of string type and" \
207
+ " values are tensors. Got key of type {}".format(type(name))
208
+ inputs[name] = to_torch_tensor(tensor)
209
+ else:
210
+ inputs = to_torch_tensor(inputs)
211
+ else:
212
+ # No example_input were provided, decoder will use scripting
213
+ return None
214
+ return inputs
@@ -0,0 +1,109 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import sys
5
+
6
+ import numpy as np
7
+ from openvino.runtime import Shape, PartialShape, Dimension # pylint: disable=no-name-in-module,import-error
8
+ from openvino.tools.ovc.error import Error
9
+
10
+
11
+ def get_static_shape(shape: [PartialShape, list, tuple], dynamic_value=None):
12
+ # Current function returns list with static dimensions with following logic.
13
+ # For dynamic dimensions return lower boundaries if they are set, otherwise
14
+ # return upper boundaries if they are set. If dimension is fully dynamic then raise error.
15
+ shape_list = []
16
+ for idx, dim in enumerate(shape):
17
+ if isinstance(dim, int):
18
+ if dim == -1:
19
+ shape_list.append(dynamic_value)
20
+ continue
21
+ shape_list.append(dim)
22
+ elif isinstance(dim, np.int64):
23
+ if dim == np.int64(-1):
24
+ shape_list.append(dynamic_value)
25
+ continue
26
+ shape_list.append(dim)
27
+ elif isinstance(dim, tuple):
28
+ # tuple where (min_length, max_length), the format which uses MO cli parser
29
+ assert len(dim) == 2, "Unknown dimension type {}".format(dim)
30
+ if dim[0] > 0:
31
+ shape_list.append(dim[0])
32
+ elif dim[1] < np.iinfo(np.int64).max:
33
+ shape_list.append(dim[1])
34
+ else:
35
+ shape_list.append(dynamic_value)
36
+ continue
37
+ elif isinstance(dim, Dimension):
38
+ if dim.is_static or dim.get_min_length() > 0:
39
+ shape_list.append(dim.get_min_length())
40
+ elif dim.get_max_length() != -1:
41
+ shape_list.append(dim.get_max_length())
42
+ else:
43
+ shape_list.append(dynamic_value)
44
+ continue
45
+ else:
46
+ raise Error("Unknown dimension type {}".format(dim))
47
+
48
+ return tuple(shape_list)
49
+
50
+
51
+ def get_dynamic_dims(shape: [PartialShape, list, tuple]):
52
+ dynamic_dims = []
53
+ for idx, dim in enumerate(shape):
54
+ if isinstance(dim, int):
55
+ if dim == -1:
56
+ dynamic_dims.append(idx)
57
+ if isinstance(dim, np.int64):
58
+ if dim == np.int64(-1):
59
+ dynamic_dims.append(idx)
60
+ elif isinstance(dim, tuple):
61
+ dynamic_dims.append(idx)
62
+ elif isinstance(dim, Dimension):
63
+ if dim.get_min_length() == 0 and dim.get_max_length() == -1:
64
+ dynamic_dims.append(idx)
65
+
66
+ return dynamic_dims
67
+
68
+
69
+ def tensor_to_int_list(tensor):
70
+ assert hasattr(tensor, 'numpy'), "Could not get value of provided tensor: {}".format(tensor)
71
+ tensor_numpy = tensor.numpy()
72
+ assert tensor_numpy.dtype == np.int32, "Unexpected type of provided tensor. Expected int32, got: {}".format(
73
+ tensor_numpy.dtype)
74
+ return tensor_numpy.tolist()
75
+
76
+
77
+ def to_partial_shape(shape):
78
+ if 'tensorflow' in sys.modules:
79
+ import tensorflow as tf # pylint: disable=import-error
80
+ if isinstance(shape, tf.Tensor):
81
+ return PartialShape(tensor_to_int_list(shape))
82
+ if isinstance(shape, tf.TensorShape):
83
+ return PartialShape(list(shape))
84
+ if 'paddle' in sys.modules:
85
+ import paddle
86
+ if isinstance(shape, paddle.Tensor):
87
+ return PartialShape(tensor_to_int_list(shape))
88
+ return PartialShape(shape)
89
+
90
+
91
+ def is_shape_type(value):
92
+ if isinstance(value, PartialShape):
93
+ return True
94
+ if 'tensorflow' in sys.modules:
95
+ import tensorflow as tf # pylint: disable=import-error
96
+ if isinstance(value, (tf.TensorShape, tf.Tensor)):
97
+ return True
98
+ if 'paddle' in sys.modules:
99
+ import paddle
100
+ if isinstance(value, paddle.Tensor):
101
+ return True
102
+ if isinstance(value, Shape):
103
+ return True
104
+ if isinstance(value, list) or isinstance(value, tuple):
105
+ for dim in value:
106
+ if not (isinstance(dim, Dimension) or isinstance(dim, int)):
107
+ return False
108
+ return True
109
+ return False
@@ -0,0 +1,82 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import sys
5
+
6
+ import numpy as np
7
+
8
+ import openvino as ov
9
+ from openvino.runtime import Type
10
+
11
+
12
+ def is_type(val):
13
+ if isinstance(val, (type, Type)):
14
+ return True
15
+ if 'tensorflow' in sys.modules:
16
+ import tensorflow as tf # pylint: disable=import-error
17
+ if isinstance(val, tf.dtypes.DType):
18
+ return True
19
+ if 'torch' in sys.modules:
20
+ import torch
21
+ if isinstance(val, torch.dtype):
22
+ return True
23
+ if 'paddle' in sys.modules:
24
+ import paddle
25
+ if isinstance(val, paddle.dtype):
26
+ return True
27
+ return False
28
+
29
+
30
+ def to_ov_type(val):
31
+ if isinstance(val, Type):
32
+ return val
33
+ if isinstance(val, (type, str, np.dtype)):
34
+ return Type(val)
35
+ if 'tensorflow' in sys.modules:
36
+ import tensorflow as tf # pylint: disable=import-error
37
+ if isinstance(val, tf.dtypes.DType):
38
+ from openvino.frontend.tensorflow.utils import tf_type_to_ov_type # pylint: disable=no-name-in-module,import-error
39
+ return tf_type_to_ov_type(val)
40
+ if 'torch' in sys.modules:
41
+ import torch
42
+
43
+ if isinstance(val, torch.dtype):
44
+ torch_to_ov_type = {
45
+ torch.float32: ov.Type.f32,
46
+ torch.float16: ov.Type.f16,
47
+ torch.float64: ov.Type.f64,
48
+ torch.bfloat16: ov.Type.bf16,
49
+ torch.uint8: ov.Type.u8,
50
+ torch.int8: ov.Type.i8,
51
+ torch.int16: ov.Type.i16,
52
+ torch.int32: ov.Type.i32,
53
+ torch.int64: ov.Type.i64,
54
+ torch.bool: ov.Type.boolean,
55
+ }
56
+ if val not in torch_to_ov_type:
57
+ raise Exception("The provided data time is not supported {}.".format(val))
58
+
59
+ return torch_to_ov_type[val]
60
+
61
+ if 'paddle' in sys.modules:
62
+ import paddle
63
+
64
+ if isinstance(val, paddle.dtype):
65
+ paddle_to_ov_type = {
66
+ paddle.float32: ov.Type.f32,
67
+ paddle.float16: ov.Type.f16,
68
+ paddle.float64: ov.Type.f64,
69
+ paddle.bfloat16: ov.Type.bf16,
70
+ paddle.uint8: ov.Type.u8,
71
+ paddle.int8: ov.Type.i8,
72
+ paddle.int16: ov.Type.i16,
73
+ paddle.int32: ov.Type.i32,
74
+ paddle.int64: ov.Type.i64,
75
+ paddle.bool: ov.Type.boolean,
76
+ }
77
+
78
+ if val not in paddle_to_ov_type:
79
+ raise Exception("The provided data time is not supported {}.".format(val))
80
+
81
+ return paddle_to_ov_type[val]
82
+ raise Exception("Unexpected type object. Expected ov.Type, np.dtype, tf.dtypes.DType. Got {}".format(type(val)))
@@ -0,0 +1,13 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ # !/usr/bin/env python3
5
+
6
+ import sys
7
+
8
+ if __name__ == "__main__":
9
+ from openvino.tools.ovc.telemetry_utils import init_mo_telemetry
10
+ from openvino.tools.ovc.main import main
11
+
12
+ init_mo_telemetry()
13
+ sys.exit(main())
@@ -0,0 +1,6 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ telemetry_params = {
5
+ 'TID': "G-W5E9RNLD4H"
6
+ }
@@ -0,0 +1,28 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ class Telemetry(object):
5
+ """
6
+ Stab file for the Telemetry class which is used when Telemetry class is not available.
7
+ """
8
+
9
+ def __init__(self, *arg, **kwargs):
10
+ pass
11
+
12
+ def send_event(self, *arg, **kwargs):
13
+ pass
14
+
15
+ def send_error(self, *arg, **kwargs):
16
+ pass
17
+
18
+ def start_session(self, *arg, **kwargs):
19
+ pass
20
+
21
+ def end_session(self, *arg, **kwargs):
22
+ pass
23
+
24
+ def force_shutdown(self, *arg, **kwargs):
25
+ pass
26
+
27
+ def send_stack_trace(self, *arg, **kwargs):
28
+ pass
@@ -0,0 +1,118 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import argparse
5
+ import numbers
6
+ import os
7
+ from openvino.runtime import get_version as get_rt_version # pylint: disable=no-name-in-module,import-error
8
+ from openvino.tools.ovc.cli_parser import get_params_with_paths_list
9
+ from openvino.tools.ovc.telemetry_params import telemetry_params
10
+ from openvino.tools.ovc.utils import check_values_equal
11
+
12
+ try:
13
+ import openvino_telemetry as tm
14
+ from openvino_telemetry.backend import backend_ga4
15
+ except ImportError:
16
+ import openvino.tools.ovc.telemetry_stub as tm
17
+
18
+
19
+ def is_optimum():
20
+ import traceback
21
+ for frame_summary in traceback.extract_stack():
22
+ if os.path.join("optimum", "intel") in frame_summary.filename or \
23
+ os.path.join("optimum", "exporters", "openvino") in frame_summary.filename:
24
+ return True
25
+ return False
26
+
27
+
28
+ def init_mo_telemetry(app_name='Model Conversion API', app_version=None):
29
+ app_version = app_version if app_version is not None else get_rt_version()
30
+ return init_telemetry_class(tid=get_tid(),
31
+ app_name=app_name,
32
+ app_version=app_version,
33
+ backend='ga4',
34
+ enable_opt_in_dialog=False,
35
+ disable_in_ci=True
36
+ )
37
+
38
+
39
+ def init_telemetry_class(tid,
40
+ app_name,
41
+ app_version,
42
+ backend,
43
+ enable_opt_in_dialog,
44
+ disable_in_ci):
45
+ # Init telemetry class
46
+ telemetry = tm.Telemetry(tid=tid,
47
+ app_name=app_name,
48
+ app_version=app_version,
49
+ backend=backend,
50
+ enable_opt_in_dialog=enable_opt_in_dialog,
51
+ disable_in_ci=disable_in_ci)
52
+
53
+ # Telemetry is a singleton class and if it was already initialized in another tool
54
+ # some parameters will be incorrect, including app_name.
55
+ # In this case we need to force reinitialisation of telemetry.
56
+ if hasattr(telemetry, "backend") and telemetry.backend.app_name != app_name:
57
+ telemetry.init(tid=tid,
58
+ app_name=app_name,
59
+ app_version=app_version,
60
+ backend=backend,
61
+ enable_opt_in_dialog=enable_opt_in_dialog,
62
+ disable_in_ci=disable_in_ci)
63
+ return telemetry
64
+
65
+
66
+ def send_framework_info(framework: str):
67
+ """
68
+ This function sends information about used framework.
69
+ :param framework: framework name.
70
+ """
71
+ t = tm.Telemetry()
72
+ t.send_event('ovc', 'framework', framework)
73
+
74
+
75
+ def get_tid():
76
+ """
77
+ This function returns the ID of the database to send telemetry.
78
+ """
79
+ return telemetry_params['TID']
80
+
81
+
82
+ def send_conversion_result(conversion_result: str, need_shutdown=False):
83
+ t = tm.Telemetry()
84
+ t.send_event('ovc', 'conversion_result', conversion_result)
85
+ t.end_session('ovc')
86
+ if need_shutdown:
87
+ t.force_shutdown(1.0)
88
+
89
+
90
+ def arg_to_str(arg):
91
+ # This method converts to string only known types, otherwise returns string with name of the type
92
+ from openvino.runtime import PartialShape, Shape, Type, Layout # pylint: disable=no-name-in-module,import-error
93
+ if isinstance(arg, (PartialShape, Shape, Type, Layout)):
94
+ return str(arg)
95
+ if isinstance(arg, (str, numbers.Number, bool)):
96
+ return str(arg)
97
+ return str(type(arg))
98
+
99
+
100
+ def send_params_info(argv: argparse.Namespace, cli_parser: argparse.ArgumentParser):
101
+ """
102
+ This function sends information about used command line parameters.
103
+ :param argv: command line parameters.
104
+ :param cli_parser: command line parameters parser.
105
+ """
106
+ t = tm.Telemetry()
107
+ params_with_paths = get_params_with_paths_list()
108
+ for arg in vars(argv):
109
+ arg_value = getattr(argv, arg)
110
+ if not check_values_equal(arg_value, cli_parser.get_default(arg)):
111
+ if arg in params_with_paths:
112
+ # If command line argument value is a directory or a path to file it is not sent
113
+ # as it may contain confidential information. "1" value is used instead.
114
+ param_str = arg + ":" + str(1)
115
+ else:
116
+ param_str = arg + ":" + arg_to_str(arg_value)
117
+
118
+ t.send_event('ovc', 'cli_parameters', param_str)