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,196 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import importlib.util
5
+ import logging as log
6
+ import numpy as np
7
+ import os
8
+ import sys
9
+ from openvino.tools.ovc.error import Error
10
+ from typing import Iterable, Union
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
+ if sys.version_info < (3, 8):
19
+ import importlib_metadata
20
+ else:
21
+ import importlib.metadata as importlib_metadata
22
+
23
+ dynamic_dimension = np.ma.masked
24
+
25
+
26
+ def refer_to_faq_msg(question_num: int):
27
+ try:
28
+ t = tm.Telemetry()
29
+ t.send_event('ovc', 'error_info', "faq:" + str(question_num))
30
+ except Exception:
31
+ # Telemetry can be not initialized if it is used in MO IR Reader
32
+ pass
33
+
34
+ return '\n For more information please refer to Model Conversion API FAQ, question #{0}. ' \
35
+ '(https://docs.openvino.ai/2023.0/openvino_docs_MO_DG_prepare_model_Model_Optimizer_FAQ.html' \
36
+ '?question={0}#question-{0})'.format(question_num)
37
+
38
+
39
+ def get_mo_root_dir():
40
+ """
41
+ Return the absolute path to the Model Conversion API root directory (where mo folder is located)
42
+ :return: path to the MO root directory
43
+ """
44
+ return os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(os.path.realpath(__file__))), os.pardir))
45
+
46
+
47
+ def check_values_equal(val1, val2):
48
+ # This method is needed to check equality of values where some values can be None
49
+ if val1 is None and val2 is None:
50
+ return True
51
+ if val1 is None:
52
+ return False
53
+ if val2 is None:
54
+ return False
55
+ return val1 == val2
56
+
57
+
58
+ np_map_cast = {bool: lambda x: bool_cast(x),
59
+ np.int8: lambda x: np.int8(x),
60
+ np.int16: lambda x: np.int16(x),
61
+ np.int32: lambda x: np.int32(x),
62
+ np.int64: lambda x: np.int64(x),
63
+ np.uint8: lambda x: np.uint8(x),
64
+ np.uint16: lambda x: np.uint16(x),
65
+ np.uint32: lambda x: np.uint32(x),
66
+ np.uint64: lambda x: np.uint64(x),
67
+ np.float16: lambda x: np.float16(x),
68
+ np.float32: lambda x: np.float32(x),
69
+ np.double: lambda x: np.double(x),
70
+ str: lambda x: str(x)}
71
+
72
+
73
+ def bool_cast(x):
74
+ if isinstance(x, str):
75
+ return False if x.lower() in ['false', '0'] else True if x.lower() in ['true', '1'] else 'unknown_boolean_cast'
76
+ else:
77
+ return bool(x)
78
+
79
+
80
+ def mo_array(value: Union[Iterable[Union[float, int]], float, int], dtype=None) -> np.ndarray:
81
+ """
82
+ This function acts in a same way as np.array except for the case when dtype is not provided
83
+ and np.array return fp64 array this function returns fp32 array
84
+ """
85
+ x = np.array(value, dtype=dtype)
86
+ if not isinstance(value, np.ndarray) and x.dtype == np.float64 and dtype != np.float64:
87
+ x = x.astype(np.float32)
88
+ return x
89
+
90
+
91
+ def validate_batch_in_shape(shape, layer_name: str):
92
+ """
93
+ Raises Error #39 if shape is not valid for setting batch size
94
+ Parameters
95
+ ----------
96
+ shape: current shape of layer under validation
97
+ layer_name: name of layer under validation
98
+ """
99
+ if len(shape) == 0 or (shape[0] is not dynamic_dimension and shape[0] not in (-1, 0, 1)):
100
+ raise Error(('The input layer {} has a shape {} defined in the model. \n\n' +
101
+ 'When you use "batch" option, Model Conversion API applies its value to the first ' +
102
+ 'element of the shape if it is equal to -1, 0 or 1. Otherwise, this is the ambiguous ' +
103
+ 'situation - it is not known in advance whether the layer has the batch ' +
104
+ 'dimension or not.\n\n For example, you want to set batch dimension equals 100 ' +
105
+ 'for the input layer "data" with shape (10,34). Although you can not use "batch", ' +
106
+ 'you should pass "input_shape=[100,34]" instead of "batch=100". \n\n' +
107
+ 'You can also specify batch dimension by setting "layout". \n\n')
108
+ .format(layer_name, shape))
109
+
110
+
111
+ def get_ir_version():
112
+ """
113
+ Default IR version.
114
+ :return: the IR version
115
+ """
116
+ return 11
117
+
118
+
119
+ def import_openvino_tokenizers():
120
+ # extract openvino version
121
+ if importlib.util.find_spec("openvino") is None:
122
+ return False
123
+ try:
124
+ from openvino import get_version
125
+ openvino_version = get_version()
126
+ openvino_available = True
127
+ except ImportError:
128
+ openvino_available = False
129
+ if not openvino_available:
130
+ return False
131
+
132
+ if importlib.util.find_spec("openvino_tokenizers") is None:
133
+ return False
134
+
135
+ try:
136
+ pip_metadata_version = importlib_metadata.version("openvino")
137
+ except importlib_metadata.PackageNotFoundError:
138
+ pip_metadata_version = False
139
+ try:
140
+ pip_metadata_version = importlib_metadata.version("openvino-nightly")
141
+ is_nightly = True
142
+ except importlib_metadata.PackageNotFoundError:
143
+ is_nightly = False
144
+
145
+ try:
146
+ import openvino_tokenizers # pylint: disable=no-name-in-module,import-error
147
+
148
+ openvino_tokenizers._get_factory()
149
+ except RuntimeError:
150
+ tokenizers_version = openvino_tokenizers.__version__
151
+
152
+ if tokenizers_version == "0.0.0.0":
153
+ try:
154
+ tokenizers_version = importlib_metadata.version("openvino_tokenizers") or tokenizers_version
155
+ except importlib_metadata.PackageNotFoundError:
156
+ pass
157
+ message = (
158
+ "OpenVINO and OpenVINO Tokenizers versions are not binary compatible.\n"
159
+ f"OpenVINO version: {openvino_version}\n"
160
+ f"OpenVINO Tokenizers version: {tokenizers_version}\n"
161
+ "First 3 numbers should be the same. Update OpenVINO Tokenizers to compatible version. "
162
+ )
163
+ if not pip_metadata_version:
164
+ message += (
165
+ "For archive installation of OpenVINO try to build OpenVINO Tokenizers from source: "
166
+ "https://github.com/openvinotoolkit/openvino_tokenizers/tree/master?tab=readme-ov-file"
167
+ "#build-and-install-from-source"
168
+ )
169
+ if sys.platform == "linux":
170
+ message += (
171
+ "\nThe PyPI version of OpenVINO Tokenizers is built on CentOS and may not be compatible with other "
172
+ "Linux distributions; rebuild OpenVINO Tokenizers from source."
173
+ )
174
+ else:
175
+ message += (
176
+ "It is recommended to use the same day builds for pre-release version. "
177
+ "To install both OpenVINO and OpenVINO Tokenizers release version perform:\n"
178
+ )
179
+ if is_nightly:
180
+ message += "pip uninstall -y openvino-nightly && "
181
+ message += "pip install --force-reinstall openvino openvino-tokenizers\n"
182
+ if is_nightly:
183
+ message += (
184
+ "openvino-nightly package will be deprecated in the future - use pre-release drops instead. "
185
+ )
186
+ message += "To update both OpenVINO and OpenVINO Tokenizers to the latest pre-release version perform:\n"
187
+ if is_nightly:
188
+ message += "pip uninstall -y openvino-nightly && "
189
+ message += (
190
+ "pip install --pre -U openvino openvino-tokenizers "
191
+ "--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly"
192
+ )
193
+ log.warning(message)
194
+ return False
195
+
196
+ return True
@@ -0,0 +1,80 @@
1
+ # Copyright (C) 2018-2024 Intel Corporation
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ import re
5
+
6
+ from openvino.runtime import get_version as get_ie_version # pylint: disable=no-name-in-module,import-error
7
+
8
+
9
+ def extract_release_version(version: str):
10
+ patterns = [
11
+ # captures release version set by CI for example: '2021.1.0-1028-55e4d5673a8'
12
+ r"^([0-9]+).([0-9]+)*",
13
+ # captures release version generated by MO from release branch, for example: 'custom_releases/2021/1_55e4d567'
14
+ r"_releases/([0-9]+)/([0-9]+)_*"
15
+ ]
16
+
17
+ for pattern in patterns:
18
+ m = re.search(pattern, version)
19
+ if m and len(m.groups()) == 2:
20
+ return m.group(1), m.group(2)
21
+ return None, None
22
+
23
+
24
+ def simplify_version(version: str):
25
+ release_version = extract_release_version(version)
26
+ if release_version == (None, None):
27
+ return "custom"
28
+ return "{}.{}".format(*release_version)
29
+
30
+
31
+ def get_simplified_ie_version(version=None):
32
+ from openvino.runtime import get_version # pylint: disable=no-name-in-module,import-error
33
+ if version is None:
34
+ version = get_version()
35
+
36
+ # To support legacy OV versions
37
+ m = re.match(r"^([0-9]+).([0-9]+).(.*)", version)
38
+ if m and len(m.groups()) == 3:
39
+ return simplify_version(m.group(3))
40
+ return simplify_version(version)
41
+
42
+
43
+ def extract_hash_from_version(full_version: str):
44
+ res = re.findall(r'[-_]([a-f0-9]{7,40})', full_version)
45
+ if len(res) > 0:
46
+ return res[0]
47
+ else:
48
+ return None
49
+
50
+
51
+ class SingletonMetaClass(type):
52
+ def __init__(self, cls_name, super_classes, dic):
53
+ self.__single_instance = None
54
+ super().__init__(cls_name, super_classes, dic)
55
+
56
+ def __call__(cls, *args, **kwargs):
57
+ if cls.__single_instance is None:
58
+ cls.__single_instance = super(SingletonMetaClass, cls).__call__(*args, **kwargs)
59
+ return cls.__single_instance
60
+
61
+
62
+ class VersionChecker(metaclass=SingletonMetaClass):
63
+ def __init__(self):
64
+ self.runtime_checked = False
65
+ self.mo_version = None
66
+ self.ie_version = None
67
+ self.mo_simplified_version = None
68
+ self.ie_simplified_version = None
69
+
70
+ def get_ie_version(self):
71
+ if self.ie_version:
72
+ return self.ie_version
73
+ self.ie_version = get_ie_version()
74
+ return self.ie_version
75
+
76
+ def get_ie_simplified_version(self):
77
+ if self.ie_simplified_version:
78
+ return self.ie_simplified_version
79
+ self.ie_simplified_version = get_simplified_ie_version()
80
+ return self.ie_simplified_version
@@ -0,0 +1,5 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from openvino.frontend.pytorch.torchdynamo import backend
@@ -0,0 +1,115 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import os
6
+ import sys
7
+ from functools import wraps
8
+ from typing import Callable, Any
9
+ from pathlib import Path
10
+
11
+
12
+ def _add_openvino_libs_to_search_path() -> None:
13
+ """Add OpenVINO libraries to the DLL search path on Windows."""
14
+ if sys.platform == "win32":
15
+ # Installer, yum, pip installs openvino dlls to the different directories
16
+ # and those paths need to be visible to the openvino modules
17
+ #
18
+ # If you're using a custom installation of openvino,
19
+ # add the location of openvino dlls to your system PATH.
20
+ openvino_libs = []
21
+ if os.path.isdir(os.path.join(os.path.dirname(__file__), "libs")):
22
+ # looking for the libs in the pip installation path.
23
+ openvino_libs.append(os.path.join(os.path.dirname(__file__), "libs"))
24
+ elif os.path.isdir(os.path.join(os.path.dirname(__file__), "..", "..", "..", "Library", "bin")):
25
+ # looking for the libs in the conda installation path
26
+ openvino_libs.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "Library", "bin"))
27
+ else:
28
+ # setupvars.bat script set all libs paths to OPENVINO_LIB_PATHS environment variable.
29
+ openvino_libs_installer = os.getenv("OPENVINO_LIB_PATHS")
30
+ if openvino_libs_installer:
31
+ openvino_libs.extend(openvino_libs_installer.split(";"))
32
+ else:
33
+ sys.exit("Error: Please set the OPENVINO_LIB_PATHS environment variable. "
34
+ "If you use an install package, please, run setupvars.bat")
35
+ for lib in openvino_libs:
36
+ lib_path = os.path.join(os.path.dirname(__file__), lib)
37
+ if os.path.isdir(lib_path):
38
+ # On Windows, with Python >= 3.8, DLLs are no longer imported from the PATH.
39
+ os.add_dll_directory(os.path.abspath(lib_path))
40
+
41
+
42
+ def get_cmake_path() -> str:
43
+ """Searches for the directory containing CMake files within the package install directory.
44
+
45
+ :return: The path to the directory containing CMake files, if found. Otherwise, returns empty string.
46
+ :rtype: str
47
+ """
48
+ package_path = Path(__file__).parent
49
+ cmake_file = "OpenVINOConfig.cmake"
50
+
51
+ for dirpath, _, filenames in os.walk(package_path):
52
+ if cmake_file in filenames:
53
+ return dirpath
54
+
55
+ return ""
56
+
57
+
58
+ def deprecated(name: Any = None, version: str = "", message: str = "", stacklevel: int = 2) -> Callable[..., Any]:
59
+ """Prints deprecation warning "{function_name} is deprecated and will be removed in version {version}. {message}" and runs the function.
60
+
61
+ :param version: The version in which the code will be removed.
62
+ :param message: A message explaining why the function is deprecated and/or what to use instead.
63
+ """
64
+
65
+ def decorator(wrapped: Callable[..., Any]) -> Callable[..., Any]:
66
+ @wraps(wrapped)
67
+ def wrapper(*args: Any, **kwargs: Any) -> Callable[..., Any]:
68
+ # it must be imported here; otherwise, there are errors with no loaded DLL for Windows
69
+ from openvino._pyopenvino.util import deprecation_warning
70
+
71
+ deprecation_warning(wrapped.__name__ if name is None else name, version, message, stacklevel)
72
+ return wrapped(*args, **kwargs)
73
+
74
+ return wrapper
75
+
76
+ return decorator
77
+
78
+
79
+ # WA method since Python 3.11 does not support @classmethod and @property chain,
80
+ # currently only read-only properties are supported.
81
+ class _ClassPropertyDescriptor(object):
82
+ def __init__(self, fget: Callable):
83
+ self.fget = fget
84
+
85
+ def __get__(self, obj: Any, cls: Any = None) -> Any:
86
+ if cls is None:
87
+ cls = type(obj)
88
+ return self.fget.__get__(obj, cls)()
89
+
90
+
91
+ def classproperty(func: Any) -> _ClassPropertyDescriptor:
92
+ if not isinstance(func, (classmethod, staticmethod)):
93
+ func = classmethod(func)
94
+ return _ClassPropertyDescriptor(func)
95
+
96
+
97
+ def deprecatedclassproperty(name: Any = None, version: str = "", message: str = "", stacklevel: int = 2) -> Callable[[Any], _ClassPropertyDescriptor]:
98
+ def decorator(wrapped: Any) -> _ClassPropertyDescriptor:
99
+ func = classproperty(wrapped)
100
+
101
+ # Override specific instance
102
+ def _patch(instance: _ClassPropertyDescriptor, func: Callable[..., Any]) -> None:
103
+ cls_: Any = type(instance)
104
+
105
+ class _(cls_): # noqa: N801
106
+ @func
107
+ def __get__(self, obj: Any, cls: Any = None) -> Any:
108
+ return super().__get__(obj, cls)
109
+
110
+ instance.__class__ = _
111
+
112
+ # Add `deprecated` decorator on the top of `__get__`
113
+ _patch(func, deprecated(name, version, message, stacklevel))
114
+ return func
115
+ return decorator
@@ -0,0 +1,8 @@
1
+ #
2
+ # Copyright © 2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache 2.0
4
+ #
5
+
6
+ from .scaled_dot_product_attention import scaled_dot_product_attention
7
+
8
+ __all__ = ["scaled_dot_product_attention"]
@@ -0,0 +1,47 @@
1
+ #
2
+ # Copyright © 2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache 2.0
4
+ #
5
+ from intel_npu_acceleration_library.backend import run_factory, SDPA, SimpleSDPA
6
+ from typing import Optional
7
+ from functools import partial
8
+ import torch
9
+
10
+
11
+ def scaled_dot_product_attention(
12
+ query: torch.Tensor,
13
+ key: torch.Tensor,
14
+ value: torch.Tensor,
15
+ attn_mask: torch.Tensor = None,
16
+ dropout_p: float = 0.0,
17
+ is_causal: bool = False,
18
+ scale: Optional[float] = None,
19
+ ) -> torch.Tensor:
20
+ """Execute SDPA kernel.
21
+
22
+ Args:
23
+ query (torch.Tensor): query tensor
24
+ key (torch.Tensor): key tensor
25
+ value (torch.Tensor): value tensor
26
+ attn_mask (torch.Tensor, optional): attention mask tensor. Defaults to None.
27
+ dropout_p (float, optional): optional dropout. Defaults to 0.0.
28
+ is_causal (bool, optional): enable causal mask. Defaults to False.
29
+ scale (Optional[float], optional): custom scale. Defaults to None.
30
+
31
+ Raises:
32
+ RuntimeError: _description_
33
+
34
+ Returns:
35
+ torch.Tensor: _description_
36
+ """
37
+ if dropout_p != 0:
38
+ raise RuntimeError("dropout_p != 0 is not supported yet")
39
+ if scale is not None:
40
+ raise RuntimeError("scale != 0 is not supported yet")
41
+
42
+ if attn_mask is None:
43
+ backend_cls = partial(SimpleSDPA, is_causal=is_causal) # type: ignore
44
+ return run_factory([query, key, value], [], backend_cls)
45
+ else:
46
+ backend_cls = partial(SDPA, is_causal=is_causal) # type: ignore
47
+ return run_factory([query, key, value, attn_mask], [], backend_cls)