Compare commits

...

151 Commits

Author SHA1 Message Date
Taylor Yeonbok Lee 43de73cbd6
Let ocl FC to use tile size 1 only when the # of threads is less than the w/ minimal # of threads (#24936)
### Details:
- Fix to resolve perf issue in the platforms with small # of EUs than
128.
### Tickets:
 - *ticket-id*
2024-06-12 00:27:13 +00:00
Alexandra Sidorova 1d226d4edc
[Snippets] Added dynamic Transpose support (#24733)
### Details:
- *Added dynamic Transpose support (updated related operations and
passes)*
 - *Added dynamic tests with Transpose*

### Tickets:
 - *142098*

### Prerequisites:
- https://github.com/openvinotoolkit/openvino/pull/24525
- https://github.com/openvinotoolkit/openvino/pull/24646
2024-06-11 16:45:40 +00:00
tadamczx 0908908227
[DOCS] OpenVINO Python API docs build fix (#24952)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-06-11 16:24:51 +00:00
Aleksandr Voron 4e6ee7f15e
[CPU][ARM] Enable NHWC in Reduce (#23108)
NHWC was disabled because of accuracy issue:
https://github.com/ARM-software/ComputeLibrary/issues/1044

CVS-114403

---------

Co-authored-by: eshoguli <edward.shogulin@intel.com>
2024-06-11 16:21:23 +00:00
Vladimir Paramuzov f5c3fc3330
[GPU] Model stat print, host time measurement debug knob (#24904)
### Details:
 - Added dev pass to log operations statistics when VERBOSE=1
- Added debug knob to collect network::execute() time to measure time
required to schedule all primitives
- Updated common results comparison routine to print coordinate and to
show first mismatched element info in release build
2024-06-11 15:54:33 +00:00
Jorge Ragde 8eaa65e026
[TF FE Tests] Change HSVToRGB Unit Test To Test Grayscale Image (#24935)
### Details:
- Currently, the unit test for HSVToRGB is creating a tensor of all ones
in the Grayscale special case as mentioned in
[#24875](https://github.com/openvinotoolkit/openvino/pull/24875). Since
the images are expected to be in HSV and not RGB format, this will
create images that are green, and not gray. Grayscale in HSV can be
achieved by creating a tensor with HSV entries of [0, 0, .5].

### Tickets:
 - N/A

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-06-11 14:16:48 +00:00
Andrii Staikov 91b3977169
Documentation for Transformations Python API (#24121)
### Details:

- Updating Transformations documentation
- Adding examples for Python API usage
- Adding examples for C++ API usage
- Adding patterns unit-tests

### Tickets:
 - *CVS-76333*
2024-06-11 14:07:39 +00:00
Sergey Shlyapnikov 00f4c99074
[GPU] Relax SDPA head size limitations for LLMs (#24930)
### Details:
- Relax SDPA head size limitations for LLMs from 128 only to a range of
64 to 256
- Fix accuracy issue in SDPA first token processing for
`TARGET_SEQ_LEN_BLOCK_SIZE % SUBGROUPS_PER_WG != 0` case

### Tickets:
 - *ticket-id*
2024-06-11 14:05:53 +00:00
Sebastian Golebiewski 5393b8a77a
[DOCS] Performance hint and thread scheduling update (#24946)
Fixing reference and formatting. Proofreading.
2024-06-11 10:08:07 +00:00
Edward Shogulin deb5e63ff2
[LPT] Quantization to point support (#24872)
### Details:
 - *Quaintization to point support*
 - Tests: wip

### Tickets:
 - *CVS-139557*
2024-06-11 09:11:04 +00:00
Ilya Lavrenov 395d6b7e09
Revert "More accurate shape of optimization" (#24941)
Reverts openvinotoolkit/openvino#24845

Issue CVS-143648
2024-06-11 08:43:17 +00:00
Vishniakov Nikolai 6e2286086f
[OV JS] Fix multiple Core instances (#24053)
### Details:
- New instance of Core creating on execution of readModel method. This
PR is fixing this behavior.

### Tickets:
 - 138160

---------

Co-authored-by: Alicja Miloszewska <alicja.miloszewska@intel.com>
2024-06-11 08:35:12 +00:00
Andrei Kashchikhin 1a5776e8ef
[CI] [GHA] Add `Timeout was reached` to the list of errors in rerunner (#24928)
### Tickets:
 - *142653*
2024-06-10 19:03:16 +00:00
Pawel Raasz 964c1e677b
[core] Integrate f4e2m1 with std::numeric_limits (#24929)
### Details:
 - Add custom std::numeric limits for `ov::float4_e2m1`

### Tickets:
 - [CVS-141576](https://jira.devtools.intel.com/browse/CVS-141576)
2024-06-10 19:02:29 +00:00
Andrey Babushkin ca34e4f07e
Switch ONNX model tests and TF nightly tests to a bigger runner (#24912)
### Details:

These tests require more memory
2024-06-10 12:29:59 +00:00
Maxim Vafin 4be6025fae
[PT FE] Fix segfault when prim::If can't be converted (#24914)
### Details:
- *When scripting upsample creates `prim::If` depending from input
shape, to determine which version of upsample to use: 1d, 2d or 3d. This
is not supported by openvino, but this PR fixes segfault that happen in
this case.*

### Tickets:
 - *#24270*
2024-06-10 11:35:58 +00:00
Ekaterina Aidova 73a2d13721
[PT FE]: fix gptq patching for strided tensors (#24871)
### Details:
 - *fix reshaping of strided tensor in gptq patcher*

### Tickets:
 - *CVS-140119*
 - *CVS-143119*
2024-06-10 10:50:46 +00:00
Inbasekaran Perumal 9465604223
Implement IsInf JIT Emitter for ARM64 SIMD in OpenVINO (#24471)
Hello maintainers,

I've implemented the IsInf JIT emitter for the ARM64 SIMD platform, as
outlined in the OpenVINO CPU plugin JIT emitters documentation.

This PR addresses
[#24419](https://github.com/openvinotoolkit/openvino/issues/24419).

Please let me know if any further adjustments are needed.
Thank you!
2024-06-10 10:13:46 +00:00
hyunback kim 29a4239707
[GPU] Fix to skip shape_of_subgraph when input shape is not changed. (#24795)
We only check whether shape of subgraph is changed or not in dynamic
node. But static node also need to be skipped. The node after shape_of
can be static.


### Tickets:
 - *142892*

---------

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-06-10 09:44:05 +00:00
Roman Kazantsev 5291ecc11c
[MOC] Implement LSTMCell fusion for Keras LSTM layers (#24873)
**Details:** Implement LSTMCell fusion for Keras LSTM layers. Such
sub-graph with split weights appears for bi-directional LSTM layer.
For custom model, we managed to fuse 6 LSTMCell sub-graphs and obtained
19% performance gain on CPU.

**Ticket:** 142924

---------

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
2024-06-10 08:28:01 +00:00
Alexandra Sidorova 3f47ab6d73
[Snippets] Add dynamic Buffer support (#24646)
### Details:
 - *Renamed `Buffer` attribute `id` to `regGroup`*
 - *Replaced `allocation_shape` of `Buffer` with `allocation_size`*
- *Added the separate pass `ComputeBufferAllocationSize` to calculate
allocation size for Buffers. By default `allocation_size` is undefined
after `InsertBuffers`*
 - *Added new attribute `cluster_id` to `Buffer`*
- *Added util expressions to LinearIR: `m_buffer_expressions` for the
quick access in configurator*
- *Added functionality to prohibit passes to update `work_amount` in
`LoopInfo`: it's needed for inner splitted loops (since their
`work_amount` is `increment` of outer splitted loop*
- *Split `SolveMemoryBuffers` logic into dynamic and static buffers: now
for all defined buffers the allocation size will be efficiently
calculated and update `offsets` that can be compiled in jit code.
Additional allocation size for dynamic buffers will be calculated in
`RuntimeConfigurator`.*
 

### Tickets:
 - *123274*


### Prerequisites:
- https://github.com/openvinotoolkit/openvino/pull/24525

### TODO:
- [x] Add CPU support of dynamic offsets in memory access emitters
2024-06-10 08:04:29 +00:00
Nesterov Alexander a9cceb31b2
[DOCS] Update OpenVINO build instruction (Android system) (#24815) 2024-06-10 08:03:20 +00:00
Jorge Ragde 8646aff9e0
[TF FE] Support HSVToRGB operation for TensorFlow (#24875)
### Details:
- Using #24033, implemented and registered loader for HSVToRGB using
already existing logic.
 - Created unit test test_tf_HSVToRGB.py

### Tickets:
 - #24791 
 
Currently, my pytest is saying that for the unit test and for
test_tf_AdjustHue.py and test_tf_AdjustSaturation.py the loader is not
found.

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-06-10 07:56:08 +00:00
abushwang 79fc6bf79b
add support for opencloudos / tencentos (#24878)
There is so many developers are try to install openvino in opencloudos
and tencentos.
This pr add support for opencloudos / tencentos.

OpenCloudOS is an open source operating system community jointly
initiated by Tencent and its partners.

for more news:
https://www.opencloudos.org/
https://docs.opencloudos.org/en/

Signed-off-by: abushwang <abushwangs@gmail.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-06-10 13:05:26 +04:00
Ekaterina Aidova 1863f58a82
[PT FE]: support aten::hann_window (#24824)
### Details:
 - *aten::hann_window"

### Tickets:
 - *CVS-143016*

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-06-10 07:35:59 +00:00
dependabot[bot] 921e7c07b6
Bump reviewdog/action-shellcheck from 1.20.0 to 1.21.0 (#24918)
Bumps
[reviewdog/action-shellcheck](https://github.com/reviewdog/action-shellcheck)
from 1.20.0 to 1.21.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/reviewdog/action-shellcheck/releases">reviewdog/action-shellcheck's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.21.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update reviewdog/reviewdog to 0.17.5 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/reviewdog/action-shellcheck/pull/59">reviewdog/action-shellcheck#59</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/reviewdog/action-shellcheck/compare/v1.20.0...v1.21.0">https://github.com/reviewdog/action-shellcheck/compare/v1.20.0...v1.21.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6e3a862f23"><code>6e3a862</code></a>
Merge pull request <a
href="https://redirect.github.com/reviewdog/action-shellcheck/issues/59">#59</a>
from reviewdog/depup/reviewdog/reviewdog</li>
<li><a
href="c82af54388"><code>c82af54</code></a>
chore(deps): update reviewdog/reviewdog to 0.17.5</li>
<li>See full diff in <a
href="72365a51bf...6e3a862f23">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=reviewdog/action-shellcheck&package-manager=github_actions&previous-version=1.20.0&new-version=1.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 07:26:59 +00:00
dependabot[bot] 90711b667a
Bump reviewdog/action-suggester from 1.12.0 to 1.13.0 (#24917)
Bumps
[reviewdog/action-suggester](https://github.com/reviewdog/action-suggester)
from 1.12.0 to 1.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/reviewdog/action-suggester/releases">reviewdog/action-suggester's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update reviewdog/reviewdog to 0.17.5 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/reviewdog/action-suggester/pull/55">reviewdog/action-suggester#55</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/reviewdog/action-suggester/compare/v1.12.0...v1.13.0">https://github.com/reviewdog/action-suggester/compare/v1.12.0...v1.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9e1cd88b79"><code>9e1cd88</code></a>
Merge pull request <a
href="https://redirect.github.com/reviewdog/action-suggester/issues/55">#55</a>
from reviewdog/depup/reviewdog/reviewdog</li>
<li><a
href="2ebb5a11b1"><code>2ebb5a1</code></a>
chore(deps): update reviewdog/reviewdog to 0.17.5</li>
<li>See full diff in <a
href="185c9c06d0...9e1cd88b79">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=reviewdog/action-suggester&package-manager=github_actions&previous-version=1.12.0&new-version=1.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 07:26:36 +00:00
Ivan Tikhonov 72500f3e85
Handle 0 dims case in ReshapeOptimizations (#24879)
### Details:
The transformation works in 2 cases:
 * 1. all in/out dims are static, or we can match them via the symbols.
   2. only one out dim doesn't have the corresponding input static dim,
and we can't match it using symbols. Besides that the output shape must
not contain zero dims,
because then value -1 in 2nd input to Reshape op can't guarantee an
unambiguous determination of the remaining dim value.

### Tickets:
 - *CVS-143026*
2024-06-10 07:24:28 +00:00
Pawel Raasz bb75829a88
[core] Add f4e2m1 element type and float4_e2m1 type (#24863)
### Details:
 - Add new element into OpenVINO `f4e2m1`
 - Add new type `float4_e2m1`

### Tickets:
 - [CVS-141565](https://jira.devtools.intel.com/browse/CVS-141565)

---------

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-06-10 07:15:45 +00:00
Sebastian Golebiewski 1144a66a9b
[DOCS] Updating interactive tutorials (#24886) 2024-06-10 05:34:50 +00:00
M aaa634874c
[GSOC][CPU][ARM] Activate SDPA for ARM devices (#24898)
### Details:
- This PR activates the Scaled Dot Product Attention (SDPA) operation on
ARM devices
2024-06-10 05:34:15 +00:00
Tingqian Li f5463512c6
[CPU] Add MLP & QKV fusion for LLM serving with PageAttention (#24837)
## Details:
in throughput oriented use case like vLLM, the computation bound of
Fullyconnect layers has a chance to become similar or even bigger than
memory-bound when batch-size is big, in such case, some optimization
opportunities was exploited in this PR:

### fusing multiple FC to get more computations per memory-read
- when split the problem `C=matmul(A, B)` among multi-cores, each core
has sub-problem of `subC=matmul(A, subB)`, with shapes:
    - A `[BM, K]`
    - subB `[K, BN]`
    - subC `[BM, BN]`

if we ignore subC matrix (since it's being loaded/stored only once
during `brgemm` procedure), the ratio of computations per memory-reads
is ` BM*K*BN / (BM*K + BN*K) = 1/(1/BM + 1/BN)`, and to get more
computations per memory-read, we prefer to increase this ratio, so we'd
like BN to be bigger (that's why we merge gate_FC with up_FC, and q_proj
with k_proj and v_proj).

in `down_proj`, there is no way to increase output channels (BN), we
split along K dimension once to reduce the number of splits of N, to
keep BN big too.

### prefetch sub-weight matrix to hide memory latency by computation

for execution of sub-problem `subC=matmul(A, subB)` on single core, we
further decompose it into sub-problems as following, to mix
SW-prefetching with AMX computations:

```python
for k0 in range(0, K, K_step):
     k1 = k0 + K_step
     blkB = subB[k0:k1, :]
     blkA = A[:, k0:k1]
     next_blkB = subB[k1:k1+K_step, :]
    # blkB's shape is [K_step, BN], which is L2 cache-able
    # inside following AMX based matmul jit kernel
    # we evenly scatter SW-prefetching instructions for next_blkB
    subC+=matmul_kernel(blkA, blkB, sw_prefetch = next_blkB) .
``` 

### flexible post-ops
jit-based post-Ops allows us to:
- interleaving fusion of weights of gate & up along N dimension in unit
of 16 fp32 elements, so post-op jit-kernel can combine them using
activation(like SiLU) while both results are hot in cache.
- QKV fusion requires final outputs was stored into 3 independent output
memories, special post-op jit kernel can do that easily.

### Tickets:
 - *ticket-id*

---------

Co-authored-by: Luo Cheng <cheng.luo@intel.com>
2024-06-10 05:09:26 +00:00
Evgenya Nugmanova a42da25019
Relaxes SharedOpOptimization restrictions (#24907)
### Details:
 - *Relaxes SharedOpOptimization restrictions on Constant comparison*

### Tickets:
 - *@vladimir-paramuzov*
2024-06-09 07:31:24 +00:00
Andrii Staikov 6e67110da1
[TRANSFORMATIONS] Extend PositionIDsReplacer pattern (#24890)
Extend PositionIDsReplacer pattern to support more models:
 - facebook/opt-350m

Signed-off-by: Andrii Staikov <andrii.staikov@intel.com>

### Tickets:
 - CVS-143065

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2024-06-08 23:36:32 +00:00
Nesterov Alexander f6e6f2af56
[CPU][ARM] Support deconvolution to correctly handle multiple output edges on a single output port (#24754) 2024-06-07 17:32:26 +00:00
Alina Kladieva 45147aefa0
[GHA] dGPU tests pipeline (#24572)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-06-07 15:22:07 +00:00
Sergey Shlyapnikov beb37eb4e1
[GPU] Move scaling from QK dot product to Q (#24896)
### Details:
- Move scaling from QK dot product to Q input for better SDPA accuracy
with high-value ranges

### Tickets:
 - [CVS-143256](https://jira.devtools.intel.com/browse/CVS-143256)
2024-06-07 13:04:12 +00:00
Gorokhov Dmitriy d996280d5e
[CPU] Cherry-pick IP optimizations from latest oneDNN master (#24654)
### Details:
- Downstream latest InnerProduct performance optimizations to oneDNN
fork
- Ticket:
[CVS-142995](https://jira.devtools.intel.com/browse/CVS-142995)
 - oneDNN fork PR: https://github.com/openvinotoolkit/oneDNN/pull/252
2024-06-07 12:53:38 +00:00
Alexandra Sidorova 2893f2fc7c
[Snippets] Added dynamism support to MHA Tokenization pass (#24897)
### Details:
- *Updated `MHATokenization` pass to support dynamic nodes tokenization*
 - *Added MHATokenization unit tests*
 - *Disabled dynamic MHA tokenization in CPU Plugin*


### Tickets:
 - *123329*
2024-06-07 12:13:26 +00:00
Anastasia Kuporosova ba5c45a4ee
[PyOV] Fix hanging on infer request destruction (#24722)
### Details:
- Initial problem: `test_custom_op` hanged on destruction because it was
waiting for a thread which tried to acquire GIL.
- The second problem is that pybind11 doesn't allow to work with GIL
besides of current scope and it's impossible to release GIL for
destructors. https://github.com/pybind/pybind11/issues/1446
- Current solution allows to release GIL for InferRequest and all called
by chain destructors.

### Tickets:
 - CVS-141744
2024-06-07 11:56:36 +00:00
Tatiana Savina bb179c69d1
[DOCS] CPU perf hints doc review (#24827)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-06-07 11:46:26 +00:00
Evgenya Nugmanova c542405470
More accurate shape of optimization (#24845)
### Details:
- *Topological order was corrected to perform the best ShapeOf
reconnections possible*

### Tickets:
 - *CVS-142953*
2024-06-07 10:34:53 +00:00
Karol Blaszczak 5faf95018d
[DOCS] fix back to top button (#24884) 2024-06-07 10:28:41 +00:00
Andrii Staikov 852878162d
[TRANSFORMATIONS] Add a check to SDPAToPagedAttention to fail fast (#24841)
[TRANSFORMATIONS] Add a check to SDPAToPagedAttention to fail fast

Add a check to SDPAToPagedAttention to fail fast if no
ScaledDotProductAttention operation present in a graph hence no
transformation will be executed.

### Tickets:
 - CVS-143067

Signed-off-by: Andrii Staikov <andrii.staikov@intel.com>

---------

Signed-off-by: Andrii Staikov <andrii.staikov@intel.com>
Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2024-06-07 08:23:27 +00:00
Tomasz Jankowski 7f1ddd55ac
[Core/Ref] Resolve coverity issues (#24874)
### Details:
 - Fixed coverity issues in src/core/reference

### Tickets:
 - CVS-143152
2024-06-07 08:14:32 +00:00
zhaohongbo 236e1062b2
[CPU] Optimize the unique operator (#24850)
### Details:
 - *Optimize  unique using HashMap when sorted=false*
 - *...*

### Tickets:
 - *ticket-id*
2024-06-07 07:06:10 +00:00
Mingyu Kim d286268a85
[GPU][DOC] Link to OCL article (#24813) 2024-06-07 06:38:58 +00:00
hyunback kim faa19e6121
[GPU] Fix wrong condition for dynamic onednn convolution impl-type. (#24497)
Remove the limitation that oneDNN convolution doesn't support dynamic
input and output.
With this limitation, clDNN convolution will run forever in dpas
platform.
Because oneDNN Opt convolutions require blocked-format and current shape
agnostic convolution doesn't support block-format, convolution do
nothing in compile_graph stage and actual kernel compilation will happen
at first inference.

### Tickets:
 - *141040*

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-06-07 06:32:38 +00:00
Alexandra Sidorova 00510e69fd
[Snippets] Fixed Invalid Read in FuseLoops pass (#24880)
### Details:
- *Fixed Invalid Read in FuseLoops pass. Before we save loop ports by
reference from `current_loop_info`. However, this `current_loop_Info`
might be changed (another shared pointer) and the previous saved loop
ports by reference are invalid (the original `current_loop_info` is
expired)*
 - *`Valgrind` doesn't throw exception anymore with this fix*

### Tickets:
 - *N/A*
2024-06-07 06:29:01 +00:00
barnasm1 416c4ffb7e
[CORE] depracate get/set_concatenation_axis functions (#24737)
### Details:
 - remove `set_concatenation_axis` function usage
 - replace `get_concatenation_axis` function usage

### Tickets:
- [CVS-94507](https://jira.devtools.intel.com/browse/CVS-94507)

### Related PR:
 - https://github.com/openvinotoolkit/openvino/pull/24383

---------

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-06-07 05:55:52 +00:00
Vladimir Paramuzov 0cc051debb
[GPU] Don't add crop for unused out ports of Split op (#24877)
### Details:
- Currently we insert crop primitive for each out port of
(Variadic)Split ops, and if some of them are not used we just waste some
execution time. This patch modifies converter for Split to process ports
with real users only.
2024-06-07 05:53:13 +00:00
Maxim Vafin b8ced3dfc7
Change opt-125m-gptq model (#24899)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-06-07 14:50:30 +04:00
dependabot[bot] 4fcfaf24b3
Bump actions/dependency-review-action from 4.3.2 to 4.3.3 (#24876)
Bumps
[actions/dependency-review-action](https://github.com/actions/dependency-review-action)
from 4.3.2 to 4.3.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/dependency-review-action/releases">actions/dependency-review-action's
releases</a>.</em></p>
<blockquote>
<h2>Notes for v4.3.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Allow slashes in purl package names by <a
href="https://github.com/juxtin"><code>@​juxtin</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/765">actions/dependency-review-action#765</a></li>
<li>use the v3 version of the deps.dev API by <a
href="https://github.com/josieang"><code>@​josieang</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/741">actions/dependency-review-action#741</a></li>
<li>PR with suggestions - [Improvement]: Help streamline / simplify
dependency review action README by <a
href="https://github.com/am-stead"><code>@​am-stead</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/773">actions/dependency-review-action#773</a></li>
<li>fix show-openssf-scorecard-levels input by <a
href="https://github.com/ramann"><code>@​ramann</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/776">actions/dependency-review-action#776</a></li>
<li>Updates to the contribution guidelines by <a
href="https://github.com/jonjanego"><code>@​jonjanego</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/778">actions/dependency-review-action#778</a></li>
<li>Create issue templates by <a
href="https://github.com/jonjanego"><code>@​jonjanego</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/777">actions/dependency-review-action#777</a></li>
<li>Fix the max comment length issue by <a
href="https://github.com/jhutchings1"><code>@​jhutchings1</code></a> and
<a href="https://github.com/elireisman"><code>@​elireisman</code></a> in
<a
href="https://redirect.github.com/actions/dependency-review-action/pull/767">actions/dependency-review-action#767</a></li>
<li>Bump project version to 4.3.3 in prep for a release by <a
href="https://github.com/elireisman"><code>@​elireisman</code></a> in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/781">actions/dependency-review-action#781</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/josieang"><code>@​josieang</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/741">actions/dependency-review-action#741</a></li>
<li><a href="https://github.com/am-stead"><code>@​am-stead</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/773">actions/dependency-review-action#773</a></li>
<li><a href="https://github.com/ramann"><code>@​ramann</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/dependency-review-action/pull/776">actions/dependency-review-action#776</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/dependency-review-action/compare/v4.3.2...v4.3.3">https://github.com/actions/dependency-review-action/compare/v4.3.2...v4.3.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="72eb03d02c"><code>72eb03d</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/dependency-review-action/issues/781">#781</a>
from actions/release-v4.3.3</li>
<li><a
href="137d8b42ce"><code>137d8b4</code></a>
bump to version v4.3.3</li>
<li><a
href="e6b618ed05"><code>e6b618e</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/dependency-review-action/issues/767">#767</a>
from actions/max-comment-length</li>
<li><a
href="3c42649204"><code>3c42649</code></a>
fix ws for linter</li>
<li><a
href="8e6ea8d29b"><code>8e6ea8d</code></a>
update packaging</li>
<li><a
href="1b3d2772d0"><code>1b3d277</code></a>
post-review: add PR comment full summary test case</li>
<li><a
href="220872c81a"><code>220872c</code></a>
Update src/main.ts</li>
<li><a
href="087d0f81a5"><code>087d0f8</code></a>
repackage to update dist</li>
<li><a
href="4531204be7"><code>4531204</code></a>
whitespace</li>
<li><a
href="df1ca890c5"><code>df1ca89</code></a>
appease linter</li>
<li>Additional commits viewable in <a
href="0c155c5e85...72eb03d02c">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/dependency-review-action&package-manager=github_actions&previous-version=4.3.2&new-version=4.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-06 07:22:33 +00:00
Sebastian Golebiewski b9e1ef7486
[DOCS] Updating Nodejs API with descriptions (#24866)
Adding descriptions of methods to Node.js API.
2024-06-06 06:58:31 +00:00
Tomasz Jankowski 11ad74dcda
[Core/test] Resolve TODOs in chech_opset1 (#24819)
### Details:
- Removed potential tests of operator which won't be added to opset 1
(as it's frozen),
 - enabled those which are present.
 - Renamed function.

### Tickets:
 - n/a

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-06-06 05:02:37 +00:00
Xiping Yan e922edf299
Add test case to verify 4bit precision input model. (#24774)
### Details:
- *Complete the remaining work after the
[PR](https://github.com/openvinotoolkit/openvino/pull/24297) is merged.*
 - *Add test case.*

### Tickets:
 - *141542*

---------

Signed-off-by: xipingya <xiping.yan@intel.com>
Co-authored-by: Zlobin Vladimir <vladimir.zlobin@intel.com>
2024-06-06 03:23:26 +00:00
David Nam b1bc59e72d
[GPU] Fix Loop to cover the case where memory is null at the first iteration (#24776)
### Details:
 - Handle the case where from_mem is null at the first iteration 

### Tickets:
 - 141652
2024-06-05 21:49:34 +00:00
Attila Csok 9d208241f0
[intel-npu] Adding new properties to tests (#24865)
### Details:
- Adding missing property tests to npuFuncTests: EXECUTION_MODE_HINT,
DEVICE_TYPE, PCI_INFO and DEVICE_GOPS

### Tickets:
 - none
2024-06-05 18:48:13 +00:00
Tomasz Jankowski a156b69ccc
[Core] Deprecate ambiguous ov::element::Type ctor (#24698)
### Details:
 - Added deprecation mark to ambiguous ov::element::Type ctor

(https://github.com/openvinotoolkit/openvino/pull/11211#discussion_r834939746)
### Tickets:
 - CVS-133840

---------

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-06-05 18:30:41 +00:00
Zlobin Vladimir 00d525f5a2
Export OpenVINOGenAI_DIR (#24683) (#24870)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-06-05 22:43:26 +04:00
Mikhail Ryzhov 13922e7515
[GHA] Win-CC decrease build jobs (#24869)
### Details:
Without thread limitation win-cc pipeline fails with run out of memory
error:

https://github.com/openvinotoolkit/openvino/actions/runs/9384908136

set 16 threads

### Tickets:
 - *ticket-id*
2024-06-05 17:10:04 +00:00
rghvsh c87cf86489
[ONNX] Align behavior of ONNX Frontend operator ReduceMean-11, 13, 18 with original framework (#23148)
### Details:
- Align behavior of ONNX Frontend operator ReduceMean-11, 13, 18 with
original framework

### Tickets:
 - Closes https://github.com/openvinotoolkit/openvino/issues/20556

---------

Co-authored-by: Georgy Krivoruchko <georgy.krivoruchko@intel.com>
2024-06-05 13:30:37 +00:00
Tomasz Jankowski de4d00a597
[Core] Fix coverity issues (#24838)
### Details:
 - Used move instead of copy.

### Tickets:
 - CVS-121621
2024-06-05 12:12:57 +00:00
Mikhail Ryzhov 41d460f7ac
[GHA] Pinned MSVC toolset version (#24860)
### Details:
 - Pinned MSVC toolset version
 - removed hardcoded jobs count
 
### Tickets:
 - *ticket-id*
2024-06-05 12:10:14 +00:00
Yamini Nimmagadda 9e662351e8
torch.compile documentation updates for 2024.2 (#24803)
### Details:
 - Updated 'How to Use' and 'Options' sections
 - Added quantization and torchserve sections

---------

Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com>
Co-authored-by: suryasidd <surya.siddharth.pemmaraju@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2024-06-05 08:33:04 +00:00
Mikhail Ryzhov aa04a9bcfa
[WIN-CC] Support the latest msvc (19.40) (#24849)
### Details:
 - Aligned build jobs with runner configuration to speed up the build
- added temporary variable data_type to resolve internal compilation
error with the new msvc (19.40)

https://jira.devtools.intel.com/browse/CVS-142993

### Tickets:
 - *ticket-id*
2024-06-05 08:32:25 +00:00
Alicja Miloszewska cf22524dcb
[OV JS] Add methods descriptions for Model, Tensor & InferRequest (#24768)
### Details:
 - Add methods descriptions for Model, Tensor & InferRequest

---------

Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-06-05 07:37:00 +00:00
Chen Xu dd0846b8d5
[CPU] [Snippets] Fix performance regression in calling parallel_nt (#24832)
### Details:
- *This PR fixes geomean level performance issue caused by
https://github.com/openvinotoolkit/openvino/pull/23180 on platforms with
sufficient cores.*
- *In the PR mensioned above, `parallel_nt` is used for executing
subgraph instead of `parallel_for5d`, becuase the former has performance
advantage for the case where #tasks is more than #threads*. That is
becuase using `parallel_nt`, we can initilize parameters for each
thread, while parameters are initilized for each task in using
`parallel_for5d`. So `parallel_nt` has less overheads.
- *However, for the case where #tasks is less than #threads,
`parallel_nt` brings performance regression. Because compared with
`parallel_for5d`, `parallel_nt` doesn't apply the argument
`tbb::static_partitioner{}` when calling `tbb::parallel_for`. Here we
use `parallel_nt_static` instead to fix the performance regression.*
2024-06-05 07:27:36 +00:00
Vladimir Paramuzov f952f73d6b
[GPU] Fix decompression scales reorder when data is reused (#24842)
### Details:
- In case when scale tensor was used by multiple compressed FCs we had
an exception on attempt to insert reorder between them. This patch
changes reorder name so now multiple reorders are inserted for each
Scale+FC pair, and then on later stages we merge them if they do same
tensor transform.
2024-06-05 06:10:37 +00:00
Roman Lyamin adb590d5f4
[GPU] Added RoPE support for Llama2, Llama3 and Phi-3 (#24829)
### Tickets:
 - *[119150](https://jira.devtools.intel.com/browse/CVS-119150)*
 - *[141777](https://jira.devtools.intel.com/browse/CVS-141777)*
2024-06-04 22:16:48 +00:00
Georgy Krivoruchko c45a46edca
[TFLite] Added implementation details (#24835)
### Details:
 - Added an implementation details for sparse-tensors reading

### Tickets:
 - N/A

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-06-04 18:49:05 +00:00
Andrei Kashchikhin 52d0a44d3f
[CI] [GHA] Set actions references to specific commit hash; provide explicit top level token permissions for jobs (#24839)
### Details:
- Token permissions docs:
98ec491a88/docs/checks.md (token-permissions)
- Actions by hash docs:
98ec491a88/docs/checks.md (pinned-dependencies)

### Tickets:
 - *142943*
 - *142944*
2024-06-04 18:17:51 +00:00
Roman Kazantsev 65b5b8e1b7
[MOC] Implement EliminateLoopInputsOutputs (#24786)
**Details:** EliminateLoopInputsOutputs transformation helps to avoid an
isolated sub-graphs `Parameter->Result` in a body graph of `Loop` and
`TensorIterator`. Such sub-graphs are useless and can by-pass `Loop`
operation.

**Ticket:** 142440

---------

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
Co-authored-by: Evgeny Kotov <evgeny.kotov@intel.com>
Co-authored-by: Tikhonov Ivan <ivan.tikhonov@intel.com>
2024-06-04 12:37:16 +00:00
Andrew Kwangwoong Park 1a70c4002c
[GPU] Optimize RMS kernel (#24831)
### Details:
 - Optimize RMS kernel by subgroup block IO
 - Compute maximum possible LWS and the number of data in subgroups
- Add test cases which covers leftover handling and unaligned data shape

### Tickets:
 - 141845

---------

Signed-off-by: Andrew Park <andrew.park@intel.com>
2024-06-04 11:02:12 +00:00
Luo Cheng d954a80161
[CPU] Add inplace and jit for ROPE (#24788)
### Details:
 - *Add inplace and jit if possible*
 - *...*

### Tickets:
 - *ticket-id*
2024-06-04 10:20:18 +00:00
Karol Blaszczak a23c9d5b5a
[DOCS] benchmark data for LLM master (#24834) 2024-06-04 09:25:38 +00:00
Razvan Apetroaie 1a6ddfff60
[NPU] Add the "create_executor" property inside the Plugin's list as well (#24828)
### Details:
- `ov::intel_npu::create_executor` is declared a supported property only
for the `intel_npu::CompiledModel` class. The current PR adds an entry
inside `intel_npu::Plugin` as well.

### Tickets:
 - *CVS-143060*
2024-06-04 09:19:21 +00:00
Brett Jia f1862e4d20
build: fix Python platform architecture tag for armv7l (#24772)
On arm32 (armv7), the platform tag should be `armv7l` as per
https://peps.python.org/pep-0599/
2024-06-04 12:54:20 +04:00
Roman Lyamin df6a25800d
[GPU] Added RoPE support for ChatGLM and Qwen (#24756)
### Details:
- Added support RoPE for ChatGLM and Qwen models
- Moved and refactored RoPE functional tests

### Tickets:
 - *[119150](https://jira.devtools.intel.com/browse/CVS-119150)*
2024-06-03 10:34:13 +00:00
Sergey Shlyapnikov ba8d6c5de5
[GPU] SDPA minor improvements (#24770)
### Details:
- Change the default softmax accumulator type from FP16 to FP32 (this
doesn't affect performance, as well as accuracy at first glance;
however, let's stick to higher precision here)
- Applied review comments from PR
https://github.com/openvinotoolkit/openvino/pull/24466
- Minor internal operations refactoring (SDPA and IndirectSDPA)
- Add new tests for GQA optimization and for indirect inputs
2024-06-03 10:34:13 +00:00
Taylor Yeonbok Lee cea8e1f5e4
[GPU] Fixed unexpected kv cache optimization turned off (#24805)
### Details:
- kv cache opt was disabled due to the wrongly detected beam table size.
Fixed this issue.
### Tickets:
 - *ticket-id*
2024-06-03 10:34:13 +00:00
Katarzyna Mitrus 142114ccbc
[Op] Squeeze update - no throw on non-squeezable dims (#24715)
### Details:
- Changes needed to enable Squeeze (and models) with axes pointing to
non-squeezable dims (currently ov throws an error for such case) -
considered as backward compatible change
- If agreed to update functionality within the same version of the op,
actual changes are needed only in shape infer related functions to cover
**Template, CPU and GPU plugins**:
    -  src/core/shape_inference/include/squeeze_shape_inference.hpp
    -  src/plugins/intel_cpu/src/shape_inference/custom/reshape.cpp
    -  The rest of the changes are test related.
 - Pytorch FE Squeeze test enabled - passed

### Tickets:
 - 142387
2024-06-03 09:59:07 +00:00
Alicja Miloszewska 56d184dbb1
[OV JS] Add method descriptions for Core (#24693)
### Details:
 - Add method descriptions to TS for Core

### Tickets:
 - *141290*

---------

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>
2024-06-03 07:31:07 +00:00
Alexandra Sidorova f859992efe
[Tests] Fixed debug info about ranges (#24790)
### Details:
- *Removed Debug info printing by default from
https://github.com/openvinotoolkit/openvino/pull/23428*
 ```
[ RUN ]
smoke_Snippets_Softmax/Softmax.CompareWithRefImpl/IS=[?.?]_TS=((1.16))_((1.32))_((1.1))_((1.9))_((1.17))_((1.19))_((1.49))_((1.50))_((5.16))_((1.16))_((1.9))_Axis=-1_#N=1_#S=1_targetDevice=CPU

MEM_USAGE=3007144KB
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
RANGE FOR PARAMETER: Parameter_1590025 start from: 0.000000 range: 8
resolution: 32 seed: 1
[ OK ]
smoke_Snippets_Softmax/Softmax.CompareWithRefImpl/IS=[?.?]_TS=((1.16))_((1.32))_((1.1))_((1.9))_((1.17))_((1.19))_((1.49))_((1.50))_((5.16))_((1.16))_((1.9))_Axis=-1_#N=1_#S=1_targetDevice=CPU
(132 ms)
 ```

### Tickets:
 - *N/A*
2024-06-03 10:56:36 +02:00
Roman Kazantsev 3497133dc4
[TF FE] Xfail test for Rint on arm (#24810)
**Details:** In pre-commit we observe sporadic failure of Rint test on
arm

**Tickets:** TBD

---------

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
2024-06-03 12:12:42 +04:00
Evgenya Nugmanova fc0b82c1be
[SDPA] relax restriction on L from query and attention_mask being equal (#24745)
### Details:
 - *relax restriction on L from query and attention_mask being equal*

### Tickets:
 - *CVS-129000*
2024-06-03 05:08:53 +00:00
Jade Cho 5a8d75d076
[GPU] Update oneDNN v3.5 (#24787) 2024-06-03 09:35:28 +04:00
duydl 5ea0e96fc2
[TF FE] Support AdjustHue operation (#24769)
### Details:
- Adapt from #24511 . Converting code repeated. Instead import from
there?
- Converting logic a little different from
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/image/adjust_hue_op.cc
. Maybe less efficient?

### Tickets:
 - #24033 

Sorry, commit history is wrong, should have created branch from latest
upstream.

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-06-03 00:09:09 +04:00
Maciej Smyk 3ffac369f1
[DOCS] Moving images from index.rst for master (#24798)
Moved images included in index.rst article to articles_en/assets folder.
2024-05-31 13:12:31 +00:00
Wanglei Shen ee0a025ca0
[DOCS] introduce performance hint and threads scheduling in CPU inference (#24147)
### Details:
 - *introduce performance hint and threads scheduling in CPU inference*

### Tickets:
 - *CVS-138834*

---------

Co-authored-by: Sun Xiaoxia <xiaoxia.sun@intel.com>
2024-05-31 11:58:30 +00:00
Sofya Balandina b86fbf8951
[ov_api_conformance] Remove hetero tests as it will be covered by sw device run over template (#24752)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-05-31 11:37:24 +00:00
dependabot[bot] 5f446b5ebb
Bump py-cpuinfo from 7.0.0 to 9.0.0 in /tests (#24696)
Bumps [py-cpuinfo](https://github.com/workhorsy/py-cpuinfo) from 7.0.0
to 9.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/workhorsy/py-cpuinfo/blob/master/ChangeLog">py-cpuinfo's
changelog</a>.</em></p>
<blockquote>
<ul>
<li>Release 9.1.0
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/186">#186</a>:
Move to Python 3 style classes and default UTF-8 encoding</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/194">#194</a>:
Add support for LoongArch</li>
</ul>
</li>
</ul>
<p>10/25/2022 Release 9.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/178">#178</a>:
Changes to lscpu breaks parsing of cache info</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/152">#152</a>:
CPU stepping, model, and family values are blank if 0</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/177">#177</a>:
Officially drop support for Python 2</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/171">#171</a>:
Replace Python 3.11 deprecated unittest.makeSuite</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/173">#173</a>:
Fix lgtm.com alerts</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/165">#165</a>:
Support Wheel</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/167">#167</a>:
Add support for RISC-V</li>
</ul>
<p>04/14/2021 Release 8.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/161">#161</a>:
Accept arm64 as an alias for aarch64</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/160">#160</a>:
Add MIPS architecture support</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/74">#74</a>:
Add option to trace code paths to file</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/157">#157</a>:
Remove multiple checks for sestatus</li>
</ul>
<p>07/05/2020 Release 7.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/133">#133</a>:
CPU flags vary between runs on Mac OS X</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/150">#150</a>:
Change 'byte code' to 'machine code'</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/128">#128</a>:
Overhead from generating machine code throws off CPUID HZ</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/136">#136</a>:
On non BeOS systems, calling sysinfo may open GUI program</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/138">#138</a>:
Invalid escape sequences warn when building in Python 3.8</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/147">#147</a>:
Remove extended_model and extended_family fields</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/146">#146</a>:
CPUID family and model is wrong</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/144">#144</a>:
Cache fields should be full ints instead of kb strings</li>
</ul>
<p>06/11/2020 Release 6.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/140">#140</a>:
The get_cache function has swapped fields</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/142">#142</a>:
Remove empty and zeroed fields</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/115">#115</a>:
Missing data on Ryzen CPUs</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/122">#122</a>:
Rename fields to be more clear</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/125">#125</a>:
Add option to return --version</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/126">#126</a>:
Make test suite also check SELinux</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/120">#120</a>:
Make unit tests also test CPUID</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/69">#69</a>:
Add s390x support</li>
</ul>
<p>03/20/2019 Release 5.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/117">#117</a>:
Remove PyInstaller hacks</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/108">#108</a>:
Client script runs multiple times without <strong>main</strong></li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/113">#113</a>:
Add option to return results in json</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/110">#110</a>:
Always tries to run wmic in get_system_info.py</li>
</ul>
<p>04/01/2018 Release 4.0.0</p>
<ul>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/80">#80</a>:
Broken when using Pyinstaller</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/77">#77</a>:
Get L1, L2, and L3 cache info from lscpu</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/79">#79</a>:
Byte formats are inconsistent</li>
<li>Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/81">#81</a>:
Byte formatter breaks on non strings</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4824ec0746"><code>4824ec0</code></a>
Release 9.0.0</li>
<li><a
href="45b5144505"><code>45b5144</code></a>
Merge pull request <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/182">#182</a>
from workhorsy/lscpu_changes</li>
<li><a
href="850e2a0817"><code>850e2a0</code></a>
Merge branch 'master' into lscpu_changes</li>
<li><a
href="a93e04dea7"><code>a93e04d</code></a>
Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/178">#178</a>:
Changes to lscpu breaks parsing of cache info</li>
<li><a
href="21e4f3b2af"><code>21e4f3b</code></a>
Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/152">#152</a>:
CPU stepping, model, and family values are blank if 0</li>
<li><a
href="54e62b796d"><code>54e62b7</code></a>
Added new test that breaks from lscpu changes</li>
<li><a
href="635811dcdd"><code>635811d</code></a>
Merge pull request <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/179">#179</a>
from workhorsy/bye_bye_py2</li>
<li><a
href="5dffea059b"><code>5dffea0</code></a>
Fixed Bug <a
href="https://redirect.github.com/workhorsy/py-cpuinfo/issues/177">#177</a>:
Officially drop support for Python 2</li>
<li><a
href="07eab4ddfb"><code>07eab4d</code></a>
Update build script to build python 3 wheel instead of python 2 and 3
wheel</li>
<li><a
href="f7075479e7"><code>f707547</code></a>
Updated info in readme</li>
<li>Additional commits viewable in <a
href="https://github.com/workhorsy/py-cpuinfo/compare/v7.0.0...v9.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=py-cpuinfo&package-manager=pip&previous-version=7.0.0&new-version=9.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-31 09:07:00 +00:00
Edward Shogulin 33bbfd1883
[CPU] [ARM] JIT Floor (#24041)
### Details:
 - *[CPU] [ARM] jit floor*

### Tickets:
 - *CVS-138572*
2024-05-31 05:31:07 +00:00
Mingyu Kim b669e232c8
[GPU] Do not use shape-agnostic kernel for OneDNN FC fp16 (#24702)
### Details:
 - WA of out-of-bound access for fc kernel.
- Use OneDNN FC kernel for fp16 FC when possible. It hides the issue
because the target platform can use OneDNN.
- For shape-agnostic kernel, TILE_B=8 is chosen. It causes out-of-bound
memory access for LLM 2nd token.

### Tickets:
 - 142277
2024-05-31 01:51:40 +00:00
Bo Liu cf08511954
[CPU][FP16] Migrate from EnfornceInferencePrecision to ConvertPrecision (#23950)
### Details:
- *Migrate FP16 operations mark-up from `EnforceInferencePrecision`
utility to `ConvertPrecision` pass*


### Tickets:
 - *128875*

---------

Co-authored-by: Egor Duplensky <egor.duplensky@gmail.com>
2024-05-31 01:27:45 +00:00
Alexandra Sidorova 2d0e0366f7
[Snippets] United Static and Dynamic Loops into one node (#24525)
### Details:
- *United `LoopEndStatic` and `LoopEndDynamic` into one node `LoopEnd`
to avoid extra conditions in the code and improve performance since some
pointer data shifts might be known and compiled in JIT code*
- *Removed dynamic aarch64 loop emitters since they don't work anyway
CVS-141550*
- *Added support dynamism to `IdentifyBuffers` and
`DefineBufferClusters`. It's not efficient algorithm since we don't know
exact values of data pointer shifts and cannot be sure that they will be
proportionally in runtime. It should be implemented as the separate
feature based on some judgments, for example*

### Tickets:
 - *141268*


### Prerequisites:
- *https://github.com/openvinotoolkit/openvino/pull/21922*
2024-05-30 14:07:46 +00:00
Andrei Kashchikhin 5104769953
[CI] [GHA] Add `Unable to fetch some archives` to errors to look for file (#24782)
### Tickets:
 - *130965*
2024-05-30 13:29:40 +00:00
Ivan Tikhonov 817a835f0a
Do not convert Squeeze/Unsqueeze to Reshape in Symbolic transformations (#24771)
### Details:
Disable EliminateSqueeze/EliminateUnsqueeze passes in
SymbolicOptimizations

### Tickets:
 - *CVS-141814*

---------

Co-authored-by: Evgenya Nugmanova <eva.my.link@gmail.com>
Co-authored-by: Evgenya Nugmanova <evgeniia.nugmanova@intel.com>
2024-05-30 11:20:28 +00:00
Ivan Tikhonov ce7db95d8a
Use Slice operation directly on CPU and update RoPE patterns (#24379)
### Details:
 - SliceToStridedSlice was moved from MOC to Common transformations.
 - Updated RoPE fusion patterns
 - 2 new transformations:  EliminateSlice, SliceSequenceToSingleSlice
- Updated EliminateStridedSlice transformation to support int32_max
case, deleted transformation duplicate from CPU
 - Added new unit tests

Tested locally with these models:

- [x] Means that Model compilation passed, and all RoPE related
transformations were applied in the same order
- [x] hf-internal-testing/tiny-random-StableLmForCausalLM
- [x] hf-internal-testing/tiny-random-FalconForCausalLM
- [x] hf-internal-testing/tiny-random-Starcoder2ForCausalLM
- [x] hf-internal-testing/tiny-random-LlamaForCausalLM
- [x] hf-internal-testing/tiny-random-GPTNeoXForCausalLM
- [x] hf-internal-testing/tiny-random-GPTJForCausalLM
- [x] hf-internal-testing/tiny-random-CodeGenForCausalLM
- [x] hf-internal-testing/tiny-random-MistralForCausalLM
- [x] hf-internal-testing/tiny-random-PhiForCausalLM
- [x] Qwen/Qwen1.5-7B
- [x] THUDM/chatglm3-6b
- [x] EleutherAI/gpt-neox-20b
- [x] google/gemma-2b-it
- [x] EleutherAI/gpt-j-6b
- [x] meta-llama/Meta-Llama-3-8B
- [x] mistralai/Mistral-7B-v0.1

### Tickets:
 - *CVS-126971*
2024-05-30 10:33:58 +00:00
Evgenya Nugmanova a5e9737bab
[PyOV] Added symbolic propoagation to model visualization to enhance OV developer experience (#24763)
### Details:

As a result, you can use this code for most of your needs:

- in a Jupiter notebook
- as a cmd tool
- with model weights being far away

```
def configure_visualizer(enable=True, max_const_elements=7):
    # parameter max_const_elements manipulates the number of first elements of a constant that will be serialized
    # to svg. Put 0 if the model is on a share
    import os
    envs_to_set = [
        'OV_VISUALIZE_TREE_IO',
        'OV_VISUALIZE_TREE_OUTPUT_SHAPES',
        'OV_VISUALIZE_TREE_OUTPUT_TYPES',
        'OV_VISUALIZE_TREE_EDGE_LABELS',
        # symbolic information and partial values
        'OV_VISUALIZE_APPLY_SYMBOLIC_PROPAGATION',
        'OV_VISUALIZE_PARTIAL_VALUES_AND_LABELS'
    ]
    for e in envs_to_set:
        os.environ[e] = '1' if enable else '0'
    os.environ["OV_VISUALIZE_TREE_CONST_MAX_ELEMENTS"] = str(max_const_elements) if enable else "7"


def serialize_model_to_svg(model, output_name='serialized_model.svg'):
    from openvino.runtime.passes import VisualizeTree
    configure_visualizer(True)
    VisualizeTree(output_name).run_on_model(model)
    configure_visualizer(False)


def convert_model_to_svg(input_name, output_name=None):
    import openvino as ov
    core = ov.Core()
    model = core.read_model(input_name)
    if output_name is None:
        output_name = os.path.splitext(os.path.basename(input_name))[0] + '.svg'
    serialize_model_to_svg(model, output_name)


if __name__ == "__main__":
    import sys, os

    arguments = sys.argv[1:]
    if len(arguments) not in [1, 2]:
        print(f"Usage {sys.executable} {__file__} /path/to/model [output_file_name.svg]")
        sys.exit(1)
    output_file = os.path.splitext(os.path.basename(arguments[0]))[0] + '.svg' if len(arguments) == 1 else arguments[1]
    convert_model_to_svg(arguments[0], output_file)
```
2024-05-30 10:03:51 +00:00
Andrei Kashchikhin 10177bfb89
[CI] [GHA] Introduce Dockerfiles for test jobs (#24742)
### Tickets:
 - *141574*
2024-05-30 09:46:12 +00:00
Yury Gaydaychuk 522a3c6a7d
[CPU] Nodes errors handling moved to graph (#24161)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *136887*
2024-05-30 09:23:05 +00:00
JJJohnathan 48f64b6086
[AUTO] Fix memory leak in ov_auto_unit_tests (#24372)
SharedPtr mutual reference fix
### Details:
- use lambda function replacing "Return" function of Gmock in ON_CALL
for *mockIExeNet.get()
- use lambda function replacing "Return" function of Gmock in ON_CALL
for *mockIExeNetActual.get()

"Retrun" function would cause increment of use account of
inferReqInternal and inferReqInternalActual, thereby causing mutual
reference of SharedPtr between mockIExeNet and inferReqInternal or
mockIExeNetActual and inferReqInternalActual.

### Ticket:
   - [CVS-134423](https://jira.devtools.intel.com/browse/CVS-134423)
2024-05-30 09:01:07 +00:00
Andrii Staikov be5fd8b6d4
Add PagedAttention tests to Precommit (#24634)
### Details:
Add tests for the SPDAToPagedAttention transformation to Precommit
1) Check if PagedAttentionExtension node appeared in the model after the
transformation
2) Check 2 last dimensions of 'key_cache.' and 'value_cache.' inputs to
be static.

### Tickets:
 - [CVS-138943](https://jira.devtools.intel.com/browse/CVS-138943)

Signed-off-by: Andrii Staikov <andrii.staikov@intel.com>
2024-05-30 08:58:09 +00:00
Xuejun Zhai 830f56e343
[Windows][Unicode] wstring to string in windows failed (#24606)
### Details:
- Windows std::wstring convert to std::string some unicode will be ???,
such as L"unicode_Яㅎあ" -> "unicode_???"

### Tickets:
 - CVS-141444
 - CVS-141729

---------

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>
2024-05-30 08:52:58 +00:00
Mingyu Kim ed09df8adf
[GPU] Reduce the condition for not-using usm-host input buffer (#24761)
### Details:
 - Reduce the condition for not-using usm-host input buffer
- This is to reduce the overhead in next-gen GPU performance where
usm_host is the input buffer

### Tickets:
 - 141493
2024-05-30 05:55:00 +00:00
Taylor Yeonbok Lee cb9c5216ab
[GPU] Fixed beam search scenario for first input is not batched (#24625)
### Details:
- Fixed crash & accuracy issue in beam search scenario when initial
input is not batched

### Tickets:
 - 140755
2024-05-30 01:10:00 +00:00
Sofya Balandina bcd96048b3
[ov_subgraphs_dumper_tests] Fix memory leaks (#24751)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *CVS-134419*
2024-05-29 17:16:34 +00:00
Sergey Shlyapnikov cfb5d4ee84
[GPU] Enable SDPA optimization by default (#24767)
### Details:
This PR is a copy of
https://github.com/openvinotoolkit/openvino/pull/24757 from release
branch, it includes:
- Enabled SDPA by default
- Updated SDPA decomposition rule to cover only well-checked cases
- Updated functional tests accordingly
2024-05-29 16:36:42 +00:00
Edward Shogulin 45e219b450
[LPT] EliminateFakeQuantizeTransformation: bf16 support (#24755)
### Details:
 - *[LPT] EliminateFakeQuantizeTransformation: bf16 support*

### Tickets:
 - *CVS-138910*
2024-05-29 15:21:19 +00:00
Ivan Tikhonov b16108df27
Fix TransposeElimination transformation (#24762)
### Details:
Handle the case when 2nd input of Transpose op is empty

### Tickets:
https://github.com/openvinotoolkit/openvino/pull/23950
2024-05-29 12:56:54 +00:00
Oleg Pipikin 8e0a646eed
Fix coverity 1544154 (#24753)
### Details:
 - Fix coverity 1544154

### Tickets:
 - CVS-140934
2024-05-29 12:21:29 +00:00
Sofya Balandina ae01c973d5
[ov conformance] Enable input range propagation via function (#23428)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-05-29 11:12:19 +00:00
Chenhu Wang feb0c7eff0
GN decomposition/tokenization test and snippets func test (#23903)
### Details:
 - *GroupNormalization decomposition test*
 - *GroupNormalization tokenization test*
 - *GroupNormalization snippets func test*

### Tickets:
 - *[CVS-136159](https://jira.devtools.intel.com/browse/CVS-136159)*
 - *[CVS-137359](https://jira.devtools.intel.com/browse/CVS-137359)*
2024-05-29 10:45:07 +00:00
Aleksandr Voron 4dfca61bd2
[CPU][ARM] Remove `acl_dw_convolution` from oneDNN (#24636)
This change was reverted by
https://github.com/openvinotoolkit/oneDNN/pull/230 because performance
degradation.

Degradation happens because ACL kernel was not selected due to
convolution check.
It was discussed with ACL team that this check could be removed and ACL
team removed this check in oneDNN.
Then I deleted this check in oneDNN fork:
https://github.com/openvinotoolkit/openvino/pull/24422

Since the check does not prevent us from selecting ACL kernel, we may
remove custom kernel again.

oneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/251

CVS-142130

TODO:
- [x] do performance check
2024-05-29 09:48:15 +00:00
Maciej Smyk 84cd71a71b
[DOCS] 2024.2 version update for master (#24746)
Docs version update to 2024.2
2024-05-29 09:04:29 +00:00
Mateusz Tabaka 229ce5839b
[NPU] Zero-initialize NpuInferProfiling::_dev_properties (#24758)
ze_device_properties_t has pNext pointer and if it's not nullptr then
it's assumed that it points to a different structure. pNext being
uninitialized can lead to a crash during zeDeviceGetProperties.
2024-05-29 08:52:04 +00:00
Roman Kazantsev 2ec64af350
[DOC][TF FE] Mark new operations for latest release (#24759)
**Details:** Mark new operations for latest release and unmark old ones.

**Ticket:** TBD

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
2024-05-29 07:07:56 +00:00
duydl 3e3bea8985
[TF FE] Support AdjustSaturation operation (#24511)
### Details:
- Parse logic from
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/image/adjust_saturation_op.cc
to openVINO ops

### Tickets:
 - #24034

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-05-29 06:40:23 +00:00
Zhang Yi b66c43a11d
[CPU]Fix Qwen Rope Fusion (#24750)
### Details:
 - *Extend Qwen Rope Fusion*
- *PR to 2024.2 release
https://github.com/openvinotoolkit/openvino/pull/24727*
- *Migrate from original PR
https://github.com/openvinotoolkit/openvino/pull/24725*

### Tickets:
 - *CVS-142523*
2024-05-29 06:22:29 +00:00
Georgy Krivoruchko 60b2068c36
[TFLite] Fixed Densify reading implementation (#24707)
### Details:
 - Fixed Densify reading implementation
 - Added test for Densify
 - Added test for Dequantize
 - Removed unnecessary model test

### Tickets:
 - 127943

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2024-05-29 06:09:45 +00:00
Pratham Ingawale 4b7deb2366
[ONNX] Added support for Multinomial-7 operator (#23491)
### Details:
 - *Extend ONNX Frontend with Multinomial-7 operator*


### Tickets:
 - *118986*

---------

Co-authored-by: Andrei Kochin <andrei.kochin@intel.com>
Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
Co-authored-by: Georgy Krivoruchko <georgy.krivoruchko@intel.com>
Co-authored-by: Piotr Krzemiński <piotrkrzeminski1234@gmail.com>
2024-05-29 06:08:56 +00:00
Kelvin Choi 485686dbbb
[GPU] Fix reshpae output padding (#24233)
### Details:
- *Update reshape's output padding by merging current padding and
input's padding*

### Tickets:
 - *137277*
2024-05-29 00:05:07 +00:00
Kelvin Choi cbeac47383
[GPU] Update loop inst ids instead of getting from prim (#24234)
### Details:
 - *Update loop inst ids instead of getting from prim*

### Tickets:
 - *137277*
2024-05-29 00:04:56 +00:00
Edward Shogulin 5f03621cfa
[TEST] Tensor comparation fix (#24735)
### Details:
 - *Tensor comparation fix*
2024-05-28 20:35:12 +00:00
Karol Blaszczak cc68c6f5e1
[DOCS] fix pytorch link (#24740) 2024-05-28 11:55:13 +00:00
Mircea-Aurelian Dan eededc2a3a
Update `CompiledModel` tests after `ov::model_name` prop was fixed (#24705)
### Details:
- *To align newly added behavior tests with other plugins,
`OVClassCompiledModelPropertiesDefaultTests` should not be tested with
`HETERO` device, as it is in `intel_cpu` plugin:
https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/compiled_model/properties.cpp#L63-L67*

### Tickets:
 - *E-120273*
2024-05-28 11:15:54 +00:00
Andrei Kashchikhin 1fe36a26c8
[CI] [GHA] [DOCS] Add section on GPU (#24678)
### Tickets:
 - *140542*
2024-05-28 10:52:53 +00:00
Edward Shogulin 31fccc801f
[CPU] [ARM] JIT GELU Tanh (#23969)
### Details:
 - *[CPU] [ARM] jit gelu tanh*

### Tickets:
 - *CVS-138293*
2024-05-28 10:23:34 +00:00
Andrei Kashchikhin 38ce1fff0f
[CI] [GHA] Create cache directory recursively (#24732)
### Details:
 - Port of #24703
- The issue that was present on the release branches does not affect the
master branch yet but it could if, for example, a new folder is added to
the cache path.

### Tickets:
 - *142372*
2024-05-28 09:13:16 +00:00
Chenhu Wang 8265a986d5
[CPU] Reduce post ops as subgraph when output is not f32 precision (#24704)
### Details:
 - *reduce post ops only support f32 precision*

### Tickets:
 - *CVS-142322*
 
### PR for Release:
 - *https://github.com/openvinotoolkit/openvino/pull/24724*
2024-05-28 09:08:12 +00:00
Roman Lyamin 4dde282a95
[TRANSFORMATIONS][CPU] Move RoPE to common part (#24615)
### Details:
- *Transferring RoPE operation and transformations for subsequent reuse
in GPU plugin*
2024-05-28 08:20:37 +00:00
Andrzej Kopytko e2b8bf4fc7
DOCS Updated footer file (#24708)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-05-28 07:53:15 +00:00
Andrey Babushkin 0b349bffb5
Bigger runner for Windows Conditional Compilation build (#24718)
### Details:
This PR moves Windows Conditional Compilation build to a self-hosted
runner in Azure with 32 cores and 128 GB of RAM
2024-05-28 07:48:17 +00:00
Michal Miotk 63a13d4931
[GPU] fix for permute_f_y kernel (#24700)
### Details:
 - when tile_size < vector_size then JTIMES == 0

### Tickets:
 - 142398
2024-05-28 01:25:37 +00:00
Steve Yoo e6496dbbb8
[GPU] Enable Select 5d (#24544)
### Details:
 - *Enable select 5d in cl kernel*
 - *Added basic unit test for select 5d*

### Tickets:
 - *140122*
2024-05-28 01:11:23 +00:00
Ekaterina Aidova 4cf2ae0192
[PT FE]: fix segfault when resolving nested dict as model input (#24719)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-05-27 21:24:01 +00:00
Edward Shogulin 000b9f7058
[CPU] Exception handling: exception message logging (#24320)
### Details:
 - *Exception handling: exception message logging*

### Tickets:
- *NotSupported exception can have message, let's display it. For
example this ticket will be clear in this case: CVS-139934*
 - *Part of CVS-142409*
2024-05-27 19:37:08 +00:00
Anastasia Kuporosova 47415bcdf9
[PyOV] Hot-fix for hanging test (#24706)
### Details:
- During investigation I found out that it hangs in AUTO plugin but with
directly specified CPU plugin passes.

### Tickets:
 - CVS-141744
2024-05-27 15:03:42 +00:00
Ivan Tikhonov 0a1a233555
Fix MatMul SmartReshape in case of 1D input (#24701)
### Details:
Handled a case when "Other" input to MatMul is 1D


### Tickets:
 - *CVS-141638*
2024-05-27 14:24:22 +00:00
Karol Blaszczak c2c6fa7d1d
[DOCS] legal update and install fix (#24647) 2024-05-27 13:47:32 +00:00
Sergey Lyalin b0dfa6ac7f
PagedAttention Transformation: Rank alignment for replacements (#24690)
During the elimination of dependencies from `beam_idx` input and
`ReadValue`(s), we are replacing them by the new PA-related inputs and
sub-expressions dependent on other remaining inputs. In such
replacements we need to guarantee matching shape and element type of old
and new nodes. Before this PR it was not guaranteed for shape and
sometimes a scalar was replaced by a shape of rank 1 that led to errors
like `'start' input is not a scalar`. Now the shape is aligned.

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-05-27 16:58:02 +04:00
Jiangtao Hu 9ce97d1560
[DOCS] Fix broken url link and remove unnecessary step in Linux build env (#24494)
### Details:
 - *Fix broken url link*
 - *Remove unnecessary step in Linux build env*

### Tickets:
 - *N/A*
2024-05-27 12:00:05 +00:00
Piotr Kowalczyk 9732d4ac17
[GPU][ROIAlignRotated]: Fixed a bug with wrong batch indexing and added functional test for the op. (#24611)
This is a follow up to #23955

### Details:
 - Added functional test for ROI Align Rotated
- Fixed a "bug" with wrong batch index inside cl kernel revealed by
functional test for ROI Align Rotated.

### Tickets:
 - *[141877](https://jira.devtools.intel.com/browse/CVS-141877)*
2024-05-27 11:20:09 +00:00
Oleg Pipikin 94f287a051
Remove legacy test util func (#24659)
### Details:
 - Remove legacy test util func
 - *...*

### Tickets:
 - [CVS-128261](https://jira.devtools.intel.com/browse/CVS-128261)
2024-05-27 10:48:40 +00:00
Edward Shogulin 883211e483
[CPU] [ARM] JIT GELU Erf (#23948)
### Details:
 - *[CPU] [AARCH64] jit gelu erf*

### Tickets:
 - *CVS-138192*
2024-05-27 09:44:35 +00:00
Aleksandr Voron 438f4dca84
[CPU][ARM][DOC] Add swap note into Raspberry build procedure (#24679)
Add a note about swap according to the comment
https://github.com/openvinotoolkit/openvino/issues/24445#issuecomment-2116366405

---------

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
2024-05-27 09:05:30 +00:00
KianYong Gan ebf43011d7
[NPU] Fix coverity issue (#24650)
### Details:
 - Coverity Fix as a line of the code is not reachable 
- Remove the line of dead code and add different log message for 3
different possible return

### Tickets:
 - E-125476
2024-05-27 07:45:44 +00:00
Jade Cho afc7b8e4c9
[GPU][LNL] Fix subgroup size issue of fc_imad_sa kernel (#24691)
LNL does not support 8 as subgroup size. It need to check before
compiling fc_imad shape agnostic kernel.

### Details:
- *Set subgroup size to 16 if simd8 is not supported in the target
device.*
2024-05-27 07:09:15 +00:00
Daniel 30d6e85505
[CPU] Inconsistent behavior/errors of Equal operation in comparison with TF framework (#24640)
Fix for TEST_DEVICE=CPU comparison of float16 infinite values

### Details:
- Introduced specialization for conversion float16->float32 in the CPU
plugin
 - xfail in layer tests is disabled for CPU device

### Tickets:
 - *24245*
2024-05-27 06:55:36 +00:00
Sergey Shlyapnikov dc523beb3e
[GPU] SDPA indirect inputs (#24665)
### Details:
 - Added indirect inputs support for SDPA kernel
 - Added setter for causal flag for ScaledDotProductAttention operation
- Added `ov::intel_gpu::hint::enable_sdpa_optimization` to
`ov::supported_properties` list
- Removed unused `TARGET_SEQ_LEN_BLOCK_SIZE > 1` check from kernel for
single token processing
 - Minor refactoring
- Added `OV_GPU_EnableSDPA` debug option (which allows to force SDPA
kernel for any ScaledDotProductAttention operation _(=1)_ / or
completely disable SDPA kernel _(=0)_, ignoring
`ov::intel_gpu::hint::enable_sdpa_optimization` property)

### Tickets:
 - *CVS-141213*
2024-05-27 06:11:37 +00:00
807 changed files with 30056 additions and 10824 deletions

View File

@ -33258,7 +33258,7 @@ async function save() {
// remote cache directory may not be created yet
if (!(await checkFileExists(cacheRemotePath))) {
await fs.mkdir(cacheRemotePath);
await fs.mkdir(cacheRemotePath, { recursive: true });
}
core.info('Copying cache...');

View File

@ -33258,7 +33258,7 @@ async function save() {
// remote cache directory may not be created yet
if (!(await checkFileExists(cacheRemotePath))) {
await fs.mkdir(cacheRemotePath);
await fs.mkdir(cacheRemotePath, { recursive: true });
}
core.info('Copying cache...');

View File

@ -50,7 +50,7 @@ async function save() {
// remote cache directory may not be created yet
if (!(await checkFileExists(cacheRemotePath))) {
await fs.mkdir(cacheRemotePath);
await fs.mkdir(cacheRemotePath, { recursive: true });
}
core.info('Copying cache...');

View File

@ -23,7 +23,19 @@ runs:
using: 'composite'
steps:
- if: ${{ runner.os == 'Linux' && inputs.self-hosted-runner == 'true' }}
- name: Check if Python is already installed (Linux)
if: ${{ runner.os == 'Linux' }}
shell: bash
id: check_python
run: |
PYTHON_INSTALLED=$(python${{ inputs.version }} -V) || true
if [[ $PYTHON_INSTALLED ]]; then
echo "installed=true" >> $GITHUB_OUTPUT
else
echo "installed=false" >> $GITHUB_OUTPUT
fi
- if: ${{ runner.os == 'Linux' && inputs.self-hosted-runner == 'true' && steps.check_python.outputs.installed == 'false' }}
name: Install 'actions/setup-python@v4' dependencies
shell: bash
run: apt-get update && apt-get install -y ca-certificates software-properties-common gpg-agent tzdata
@ -31,18 +43,18 @@ runs:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
TZ: "Europe/London" # to prevent tzdata from waiting user input
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' }}
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' && steps.check_python.outputs.installed == 'false' }}
name: Setup sudo and python3
shell: bash
run: apt-get update && apt-get install -y sudo python3 # Needed for the deadsnakes action
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' }}
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' && steps.check_python.outputs.installed == 'false' }}
name: Setup Python ${{ inputs.version }}
uses: akashchi/deadsnakes-action@92417281055a5878a0450f240a5b95883eb2d7e2
with:
python-version: ${{ inputs.version }}
- if: ${{ runner.os == 'macOS' || runner.os == 'Windows' || (runner.os == 'Linux' && runner.arch != 'ARM64') }}
- if: ${{ runner.os == 'macOS' || runner.os == 'Windows' || (runner.os == 'Linux' && runner.arch != 'ARM64' && steps.check_python.outputs.installed == 'false' ) }}
name: Setup Python ${{ inputs.version }}
uses: actions/setup-python@v5
with:

View File

@ -1 +1 @@
pr-24689
pr-24878

View File

@ -0,0 +1,89 @@
FROM openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu20.04
USER root
# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"
RUN apt-get update && \
apt-get install software-properties-common && \
add-apt-repository --yes --no-update ppa:git-core/ppa && \
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install \
curl \
wget \
git \
ca-certificates \
gpg-agent \
tzdata \
# Pythons
python3.8-dev \
python3.8-venv \
python3.8-distutils \
python3.11-dev \
python3.11-venv \
python3.11-distutils \
# For Java API
default-jdk \
# Compiler \
gcc-10 \
g++-10 \
&& \
rm -rf /var/lib/apt/lists/*
# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*
# Set gcc-10 as a default compiler
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 30 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 30
# Install sscache
ARG SCCACHE_VERSION="v0.7.5"
ENV SCCACHE_HOME="/opt/sccache" \
SCCACHE_PATH="/opt/sccache/sccache"
RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
SCCACHE_ARCHIVE="sccache-${SCCACHE_VERSION}-x86_64-unknown-linux-musl.tar.gz" && \
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}
# Install CUDA
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin && \
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub && \
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
RUN apt update && apt install -y \
libcudnn8=8.9.4.*-1+cuda11.8 \
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
cuda-runtime-11-8 \
cuda-11-8 \
libcutensor1=1.6.1.5-1 \
libcutensor-dev=1.6.1.5-1 \
cuda-drivers=520.61.05-1 && \
rm -rf /var/lib/apt/lists/*
# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py
# Use Python 3.11 as default instead of Python 3.8
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}

View File

@ -48,3 +48,4 @@ RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$PATH"
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages

View File

@ -0,0 +1,52 @@
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
USER root
# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"
RUN apt-get update && \
apt-get install software-properties-common && \
add-apt-repository --yes --no-update ppa:git-core/ppa && \
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install \
curl \
git \
ca-certificates \
gpg-agent \
tzdata \
# Python
python3.11-dev \
python3.11-venv \
python3.11-distutils \
libhdf5-dev \
&& \
rm -rf /var/lib/apt/lists/*
# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*
# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py
# Use Python 3.11 as default instead of Python 3.8
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages

View File

@ -0,0 +1,52 @@
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04
USER root
# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"
RUN apt-get update && \
apt-get install software-properties-common && \
add-apt-repository --yes --no-update ppa:git-core/ppa && \
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install \
curl \
git \
ca-certificates \
gpg-agent \
tzdata \
# Python
python3.11-dev \
python3.11-venv \
python3.11-distutils \
libhdf5-dev \
&& \
rm -rf /var/lib/apt/lists/*
# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*
# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py
# Use Python 3.11 as default
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages

View File

@ -50,5 +50,13 @@
{
"error_text": "The requested URL returned error: 500",
"ticket": 139384
},
{
"error_text": "Unable to fetch some archives",
"ticket": 130965
},
{
"error_text": "status_string: \"Timeout was reached\"",
"ticket": 142653
}
]

View File

@ -13,6 +13,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-android-arm64-vcpkg
cancel-in-progress: true
permissions: read-all
jobs:
Smart_CI:
runs-on: ubuntu-latest
@ -21,7 +23,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -75,7 +77,7 @@ jobs:
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
@ -90,7 +92,7 @@ jobs:
popd
- name: Clone vcpkg
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'microsoft/vcpkg'
# Keep in sync with <root>/vcpkg.json <builtin-baseline>
@ -130,7 +132,7 @@ jobs:
echo "yes" | ./cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_TOOLS} --install "ndk-bundle" "platform-tools" "platforms;android-${{ env.ANDROID_SDK_VERSION }}"
- name: Install sccache
uses: mozilla-actions/sccache-action@v0.0.4
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
with:
version: "v0.7.5"
@ -182,7 +184,7 @@ jobs:
# Upload build logs
#
- name: Upload build logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: build_logs

View File

@ -6,6 +6,8 @@ on:
- created
- edited
permissions: read-all
jobs:
take-issue:
name: Take issue
@ -15,7 +17,7 @@ jobs:
timeout-minutes: 10
steps:
- name: take an issue
uses: bdougie/take-action@v1.6.1
uses: bdougie/take-action@1439165ac45a7461c2d89a59952cd7d941964b87 # v1.6.1
with:
message: Thank you for looking into this issue! Please let us know if you have any questions or require any help.
issueCurrentlyAssignedMessage: Thanks for being interested in this issue. It looks like this ticket is already assigned to a contributor. Please communicate with the assigned contributor to confirm the status of the issue.

View File

@ -10,23 +10,25 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
cancel-in-progress: true
permissions: read-all
jobs:
Build_Doc:
runs-on: ubuntu-20.04
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'
lfs: 'true'
- name: Install apt-get dependencies
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
uses: awalsh128/cache-apt-pkgs-action@a6c3917cc929dd0345bfb2d3feaf9101823370ad # v1.4.2
with:
packages: graphviz texlive liblua5.2-0 libclang1-9 libclang-cpp9
version: 3.0
- uses: actions/setup-python@v5
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
id: cp310
with:
python-version: '3.10'
@ -56,7 +58,7 @@ jobs:
- name: Cache documentation
id: cache_sphinx_docs
uses: actions/cache@v4
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: build/docs/_build/.doctrees
key: sphinx-docs-cache
@ -70,13 +72,13 @@ jobs:
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
- name: 'Upload sphinx.log'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: sphinx_build_log_${{ env.PR_NUMBER }}.log
path: build/docs/sphinx.log
- name: 'Upload docs html'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_docs_html_${{ env.PR_NUMBER }}.zip
path: build/docs/openvino_docs_html.zip
@ -93,7 +95,7 @@ jobs:
- name: 'Upload test results'
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_docs_pytest
path: build/docs/_artifacts/

View File

@ -1,12 +1,14 @@
name: PR Commits
on: [pull_request]
permissions: read-all
jobs:
Checks:
runs-on: ubuntu-22.04
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Install dependencies
run: python3 -m pip install -r ./.github/github_org_control/requirements.txt

View File

@ -5,6 +5,8 @@ on:
# at 00:00 on the 1st day of every month
- cron: '0 0 1 * *'
permissions: read-all
jobs:
Cleanup_PIP:
runs-on: aks-linux-2-cores-8gb
@ -42,7 +44,7 @@ jobs:
steps:
- name: Checkout cach action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/cache

View File

@ -16,6 +16,8 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
Build:
strategy:
@ -25,12 +27,12 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'
- name: Install OpenCL
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
uses: awalsh128/cache-apt-pkgs-action@a6c3917cc929dd0345bfb2d3feaf9101823370ad # v1.4.2
if: runner.os == 'Linux'
with:
packages: ocl-icd-opencl-dev opencl-headers

View File

@ -5,13 +5,15 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
clang-format:
runs-on: ubuntu-22.04
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'
@ -29,7 +31,7 @@ jobs:
- name: suggester / clang-format
if: startsWith(github.event_name, 'pull_request')
uses: reviewdog/action-suggester@v1
uses: reviewdog/action-suggester@9e1cd88b79ba3c0023c94e44accd72344f032093 # v1.13.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
level: warning
@ -40,7 +42,7 @@ jobs:
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'
@ -58,7 +60,7 @@ jobs:
# always provide suggestions even for skipped scripts in ov_shellcheck tagret
- name: ShellCheck action
if: always()
uses: reviewdog/action-shellcheck@v1
uses: reviewdog/action-shellcheck@6e3a862f231c6895fbd335b70adef8f9243d5762 # v1.21.0
with:
level: style
reporter: github-pr-review
@ -71,7 +73,7 @@ jobs:
NamingConventionCheck:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'

View File

@ -5,6 +5,8 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
Coverage:
runs-on: ${{ matrix.config.os }}
@ -16,19 +18,19 @@ jobs:
steps:
- name: Setup python
uses: actions/setup-python@v5
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.10.10'
architecture: 'x64'
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
with:
max-size: 50G
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: 'true'
@ -55,7 +57,7 @@ jobs:
python3 -m pip install -r ${{ github.workspace }}/tools/mo/requirements_dev.txt
- name: Build OpenVINO with CMake
uses: ashutoshvarma/action-cmake-build@master
uses: ashutoshvarma/action-cmake-build@ade188313bc7eaa6f14349569a64d8bc716342ff # master
with:
build-dir: ${{ github.workspace }}/build
cc: ${{ matrix.config.cc }}
@ -112,7 +114,7 @@ jobs:
run: ${{ github.workspace }}/bin/intel64/Release/ov_tensorflow_frontend_tests --gtest_filter=-*IE_GPU*
- name: Build coverage with CMake
uses: ashutoshvarma/action-cmake-build@master
uses: ashutoshvarma/action-cmake-build@ade188313bc7eaa6f14349569a64d8bc716342ff # master
with:
build-dir: ${{ github.workspace }}/coverage
cc: ${{ matrix.config.cc }}
@ -135,6 +137,6 @@ jobs:
lcov --capture --directory ${{ github.workspace }}/. --output-file coverage.info
genhtml coverage.info --output-directory coverage-report
- name: Collect coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1
with:
verbose: true

View File

@ -14,6 +14,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-coverity
cancel-in-progress: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -44,14 +46,14 @@ jobs:
apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
ref: ${{ inputs.openvinoRef }}
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: ${{ env.OPENVINO_CONTRIB_REPO }}
@ -137,7 +139,7 @@ jobs:
run: ${COVERITY_TOOL_DIR}/cov-analysis*/bin/cov-configure -c ${COVERITY_TOOL_DIR}/cov-analysis-linux64-2023.6.2/config/coverity_config.xml -lscc text
- name: Upload Coverity build log
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: coverity_logs
@ -145,7 +147,7 @@ jobs:
if-no-files-found: 'error'
- name: Upload Coverity build archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: coverity_archive

View File

@ -1,18 +1,17 @@
name: 'Dependency Review'
on: [pull_request, merge_group]
permissions:
contents: read
permissions: read-all
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Dependency Review
uses: actions/dependency-review-action@v4.3.2
uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3
with:
config-file: './.github/dependency_review.yml'
base-ref: ${{ github.pull_request.base.sha || github.event.merge_group.base_ref }}

View File

@ -13,6 +13,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-fedora33
cancel-in-progress: true
permissions: read-all
jobs:
Smart_CI:
runs-on: ubuntu-latest
@ -21,7 +23,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -71,7 +73,7 @@ jobs:
run: yum update -y && yum install -y git
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
@ -91,7 +93,7 @@ jobs:
run: bash ${OPENVINO_REPO}/install_build_dependencies.sh
- name: Install sccache
uses: mozilla-actions/sccache-action@v0.0.4
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
with:
version: "v0.7.5"
@ -170,7 +172,7 @@ jobs:
# Upload build artifacts and logs
#
- name: Upload build logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: build_logs
@ -179,7 +181,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -187,7 +189,7 @@ jobs:
- name: Upload openvino RPM packages
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_rpm_packages
path: ${{ env.BUILD_DIR }}/*.rpm
@ -195,7 +197,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -215,7 +217,7 @@ jobs:
steps:
- name: Download OpenVINO RPM packages
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_rpm_packages
path: ${{ env.RPM_PACKAGES_DIR }}

View File

@ -5,11 +5,13 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
Check_Files_Size:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: git ls-tree
run: git ls-tree -r -t -l --full-name HEAD | sort -n -r -k 4

View File

@ -13,6 +13,8 @@ on:
required: false
default: null
permissions: read-all
jobs:
CPU_Functional_Tests:
name: CPU functional tests
@ -30,18 +32,14 @@ jobs:
PARALLEL_TEST_SCRIPT: ${{ github.workspace }}/install/tests/functional_test_utils/layer_tests_summary/run_parallel.py
PARALLEL_TEST_CACHE: ${{ github.workspace }}/install/tests/test_cache.lst
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -64,12 +62,8 @@ jobs:
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install OpenVINO dependencies (Linux)
if: runner.os == 'Linux'
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -87,7 +81,7 @@ jobs:
run: python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/layer_tests_summary/requirements.txt
- name: Restore tests execution time
uses: actions/cache/restore@v4
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ${{ env.PARALLEL_TEST_CACHE }}
key: ${{ runner.os }}-${{ runner.arch }}-tests-functional-cpu-stamp-${{ github.sha }}
@ -107,14 +101,14 @@ jobs:
timeout-minutes: 25
- name: Save tests execution time
uses: actions/cache/save@v4
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
if: github.ref_name == 'master'
with:
path: ${{ env.PARALLEL_TEST_CACHE }}
key: ${{ runner.os }}-${{ runner.arch }}-tests-functional-cpu-stamp-${{ github.sha }}
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: test-results-functional-cpu

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
jobs:
CXX_Unit_Tests:
name: C++ unit tests
@ -32,18 +34,14 @@ jobs:
INSTALL_DIR: ${{ github.workspace }}/install
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -63,10 +61,6 @@ jobs:
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install OpenVINO dependencies (Linux)
if: runner.os == 'Linux'
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
#
# Tests
#
@ -261,7 +255,7 @@ jobs:
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-cpp

View File

@ -13,6 +13,8 @@ on:
required: false
default: null
permissions: read-all
jobs:
Debian_Packages:
name: Debian Packages
@ -31,7 +33,7 @@ jobs:
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO debian packages
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_debian_packages
path: ${{ env.DEBIAN_PACKAGES_DIR }}

134
.github/workflows/job_gpu_tests.yml vendored Normal file
View File

@ -0,0 +1,134 @@
name: GPU
on:
workflow_call:
inputs:
test_type:
description: 'Type of tests to execute'
type: string
required: true
device:
description: 'Device name (igpu or dgpu)'
type: string
required: true
runner:
description: 'Runner labels by which the runner will be chosen. Example: [ "self-hosted", "igpu" ]'
type: string
required: true
container:
description: 'JSON to be converted to the value of the "container" configuration for the job'
type: string
required: false
default: '{"image": null}'
jobs:
GPU:
timeout-minutes: 80
runs-on: ${{ fromJSON(inputs.runner) }}
container: ${{ fromJSON(inputs.container) }}
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
INSTALL_DIR: ${{ github.workspace }}/install
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
GTEST_PARALLEL_SCRIPT: ${{ github.workspace }}/gtest_parallel.py
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: 'openvino_package'
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: 'openvino_tests'
path: ${{ env.INSTALL_TEST_DIR }}
# Needed as ${{ github.workspace }} is not working correctly when using Docker
- name: Setup Variables
run: |
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV"
echo "GTEST_PARALLEL_SCRIPT=$GITHUB_WORKSPACE/gtest_parallel.py" >> "$GITHUB_ENV"
- name: Extract OpenVINO packages
run: |
pushd $INSTALL_DIR
tar -xzf openvino_package.tar.gz -C $INSTALL_DIR
popd
pushd $INSTALL_TEST_DIR
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install dependencies (Linux)
run: |
$INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
apt-get update && apt-get install -y wget software-properties-common ca-certificates gpg-agent tzdata clinfo
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
TZ: "Europe/London" # to prevent tzdata from waiting user input
- name: Setup Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Get gtest-parallel script
run: wget https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py
- name: Install compute runtime drivers
run: |
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
dpkg -i *.deb
- name: Install media & display runtimes
if: ${{ inputs.device == 'dgpu' }}
run: |
apt-get update && apt-get install -y \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm11 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all
- name: Verify devices
run: clinfo
#
# Tests
#
- name: OpenVINO GPU ${{ inputs.test_type }} Tests
id: run_tests
run: |
source ${INSTALL_DIR}/setupvars.sh
TEST_RESULTS_DIR="${{ inputs.device }}_${{ inputs.test_type }}_tests"
echo "test_results_dir=$TEST_RESULTS_DIR" >> $GITHUB_OUTPUT
rm -rf ${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR} && mkdir -p ${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR}
test_filter=''
if [[ "${{ inputs.test_type }}" == "unit" ]]; then
# Ticket: 138018
test_filter='-*scatter_nd_update_gpu.dynamic_padded_output*:*border_gpu.basic_zero_input*:*bicubic_zeros_no_align_data1x1*:*bicubic_border_align_batches*:*bilinear_zeros_no_align_data1x1*:*non_zero_gpu.empty_input*:*mark_shape_of_subgraphs.concat_with_empty_tensor_inputs*:*concat_cpu_impl.dynamic_4d_f*:*border_gpu.basic_zero_input_dynamic*:*network_test.model_with_empty_input_is_not_dynamic*:*bicubic_zeros_align_data1x1*'
else
test_filter='*smoke*'
fi
python3 ${GTEST_PARALLEL_SCRIPT} ${INSTALL_TEST_DIR}/ov_gpu_${{ inputs.test_type }}_tests --dump_json_test_results=${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR}/ov_gpu_${{ inputs.test_type }}_tests.json -- --report_unique_name --gtest_filter=$test_filter
- name: Upload Test Results
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: test-results-${{ inputs.test_type }}-${{ inputs.device }}
path: ${{ env.INSTALL_TEST_DIR }}/${{ steps.run_tests.outputs.test_results_dir }}
if-no-files-found: 'error'

View File

@ -13,6 +13,8 @@ on:
required: false
default: '{"image": null}'
permissions: read-all
jobs:
ONNX_Models_tests:
name: ONNX Models tests
@ -35,18 +37,14 @@ jobs:
ONNX_MODEL_ZOO_SHA: "5faef4c33eba0395177850e1e31c4a6a9e634c82"
if: ${{ github.event_name != 'merge_group' }}
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -70,27 +68,14 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR}
popd
- name: Fetch setup_python action and model_zoo_preprocess script
uses: actions/checkout@v4
- name: Fetch model_zoo_preprocess script
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
src/frontends/onnx/tests/tests_python/model_zoo_preprocess.sh
sparse-checkout-cone-mode: false
path: 'openvino'
- name: Install dependencies
run: |
# install git (required to build pip deps from the sources)
apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates git-lfs
- name: Setup Python 3.11
uses: ./openvino/.github/actions/setup_python
with:
version: '3.11'
should-setup-pip-paths: 'false'
self-hosted-runner: ${{ contains(inputs.runner, 'aks') }}
- name: Update Models
run: bash ${OPENVINO_REPO}/src/frontends/onnx/tests/tests_python/model_zoo_preprocess.sh -d ${MODELS_SHARE_PATH} -o -s "${{ env.ONNX_MODEL_ZOO_SHA }}"

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
jobs:
ONNX_Runtime:
name: ONNX Runtime Integration
@ -41,7 +43,7 @@ jobs:
ONNX_RUNTIME_BUILD_DIR: ${{ github.workspace }}/onnxruntime/build
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}

View File

@ -13,6 +13,8 @@ on:
required: false
default: '{"image": null}'
permissions: read-all
jobs:
JS_API:
name: OpenVINO JS API
@ -29,7 +31,7 @@ jobs:
NODE_VERSION: 20
steps:
- name: Fetch OpenVINO JS sources
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
src/bindings/js
@ -42,13 +44,13 @@ jobs:
echo "OPENVINO_JS_LIBS_DIR=$GITHUB_WORKSPACE/openvino/src/bindings/js/node/bin" >> "$GITHUB_ENV"
- name: Download OpenVINO JS package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_js_package
path: ${{ env.OPENVINO_JS_LIBS_DIR }}
- name: Setup Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v4
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ env.NODE_VERSION }}

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -37,18 +39,15 @@ jobs:
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -70,12 +69,8 @@ jobs:
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install OpenVINO dependencies (Linux)
if: runner.os == 'Linux'
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y -c=gpu
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -275,7 +270,7 @@ jobs:
- name: Clone API snippets
if: runner.os != 'macOS'
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: docs/snippets
path: ${{ env.OPENVINO_REPO }}
@ -291,7 +286,7 @@ jobs:
python3 ${OPENVINO_REPO}/docs/snippets/main.py
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-python

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
jobs:
PyTorch_Models_Tests:
name: PyTorch Models tests
@ -47,19 +49,19 @@ jobs:
fi
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tokenizers extension
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tokenizers_wheel
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -83,7 +85,7 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -140,18 +142,29 @@ jobs:
USE_SYSTEM_CACHE: False
OP_REPORT_FILE: ${{ env.INSTALL_TEST_DIR }}/TEST-torch_unsupported_ops.log
- name: PagedAttention Test
if: always()
run: |
export PYTHONPATH=${MODEL_HUB_TESTS_INSTALL_DIR}:$PYTHONPATH
python3 -m pytest ${MODEL_HUB_TESTS_INSTALL_DIR}/pytorch/test_pa_transformation.py -m ${TYPE} --html=${INSTALL_TEST_DIR}/TEST-torch_pagedattention_tests.html --self-contained-html -v --tb=short
env:
TYPE: ${{ inputs.event == 'schedule' && 'nightly' || 'precommit'}}
TEST_DEVICE: CPU
USE_SYSTEM_CACHE: False
OP_REPORT_FILE: ${{ env.INSTALL_TEST_DIR }}/TEST-torch_unsupported_ops.log
- name: Reformat unsupported ops file
if: '!cancelled()'
run: |
python3 ${MODEL_HUB_TESTS_INSTALL_DIR}/pytorch/scripts/process_op_report.py ${INSTALL_TEST_DIR}/TEST-torch_unsupported_ops.log
- name: Available storage after tests
run: |
echo "Available storage:"
df -h
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-torch-models

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
jobs:
Samples:
runs-on: ${{ inputs.runner }}
@ -31,18 +33,14 @@ jobs:
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
BUILD_DIR: ${{ github.workspace }}/build
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -63,16 +61,12 @@ jobs:
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install OpenVINO dependencies (Linux)
if: runner.os == 'Linux'
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y
- name: Install OpenVINO dependencies (mac)
if: runner.os == 'macOS'
run: brew install coreutils
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -84,7 +78,6 @@ jobs:
with:
version: '3.11'
should-setup-pip-paths: 'false'
self-hosted-runner: ${{ runner.os == 'Linux' }}
- name: Build cpp samples - GCC
run: $INSTALL_DIR/samples/cpp/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/cpp_samples
@ -94,7 +87,7 @@ jobs:
- name: Build cpp samples - Clang
if: runner.os == 'Linux'
run: |
apt-get install -y clang
apt-get update && apt-get install -y clang
$INSTALL_DIR/samples/cpp/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/cpp_samples_clang
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'

View File

@ -21,6 +21,8 @@ on:
type: string
required: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -41,24 +43,20 @@ jobs:
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests
steps:
- name: Set apt retries
if: runner.os == 'Linux'
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
- name: Download OpenVINO tokenizers extension
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tokenizers_wheel
path: ${{ env.INSTALL_DIR }}
@ -92,12 +90,8 @@ jobs:
Expand-Archive openvino_tests.zip -DestinationPath ${{ env.INSTALL_DIR }}
popd
- name: Install OpenVINO dependencies (Linux)
if: runner.os == 'Linux'
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y -c=gpu
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -164,7 +158,7 @@ jobs:
TEST_PRECISION: FP16
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-python-tf-layers

View File

@ -17,6 +17,8 @@ on:
type: string
required: true
permissions: read-all
jobs:
TensorFlow_Models_Tests:
name: TensorFlow Models tests
@ -34,33 +36,20 @@ jobs:
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests
NUMBER_OF_REPLICAS: 2
steps:
- name: Check sudo
if: ${{ runner.os == 'Linux' }}
run: if [ "$(id -u)" -eq 0 ]; then apt update && apt --assume-yes install sudo; fi
- name: Set apt retries
if: runner.os == 'Linux'
run: |
if [ "$(id -u)" -eq 0 ]; then
echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
else
sudo sh -c "echo 'Acquire::Retries \"10\";' >> /etc/apt/apt.conf.d/80-retries"
fi
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tokenizers extension
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tokenizers_wheel
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -88,19 +77,13 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
sparse-checkout-cone-mode: false
path: 'openvino'
- name: Install dependencies
if: ${{ runner.os == 'Linux' }}
run: |
# install git (required to build pip deps from the sources)
sudo apt-get install --assume-yes --no-install-recommends g++ git ca-certificates wget
- name: Setup Python 3.11
uses: ./openvino/.github/actions/setup_python
with:
@ -131,7 +114,7 @@ jobs:
TEST_DEVICE: CPU
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-tensorflow-models-${{ inputs.model_scope }}

View File

@ -21,6 +21,8 @@ on:
type: string
required: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -48,7 +50,7 @@ jobs:
echo "EXTENSION_BUILD_DIR=$GITHUB_WORKSPACE/build" >> "$GITHUB_ENV"
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python
@ -56,7 +58,6 @@ jobs:
install_build_dependencies.sh
- name: Setup Python ${{ env.PYTHON_VERSION }}
if: ${{ runner.os != 'Linux' }} # We do not need to install Python on Linux as we use Docker with it installed
uses: ./.github/actions/setup_python
with:
version: ${{ env.PYTHON_VERSION }}
@ -65,14 +66,14 @@ jobs:
self-hosted-runner: ${{ runner.os == 'Linux' }}
- name: Clone OpenVINO Tokenizers
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_tokenizers'
path: ${{ env.OPENVINO_TOKENIZERS_REPO }}
ref: 'master'
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
@ -129,7 +130,7 @@ jobs:
- name: Upload openvino tokenizers wheel
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tokenizers_wheel
path: ${{ env.EXTENSION_BUILD_DIR }}/*.whl

View File

@ -2,6 +2,8 @@ name: "Pull Request Labeler"
on:
- pull_request_target
permissions: read-all
jobs:
triage:
permissions:
@ -9,20 +11,20 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: akladiev/labeler@v4.3.1
- uses: akladiev/labeler@eeac5941e7fb6f980d47e038ac0665168851c874 # v4.3.1
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'
sync-labels: 'true'
dot: 'true'
non-matching-label: 'no-match-files'
external_pr_labeller:
name: Label External PR
runs-on: ubuntu-latest
steps:
- name: Checkout Labeller Script
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: '.github'

View File

@ -16,6 +16,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux
cancel-in-progress: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -29,7 +31,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -62,13 +64,15 @@ jobs:
images: "${{ steps.handle_docker.outputs.images }}"
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: ./.github/actions/handle_docker
id: handle_docker
with:
images: |
ov_build/ubuntu_20_04_x64
ov_build/ubuntu_20_04_x64_nvidia
ov_test/ubuntu_20_04_x64
registry: 'openvinogithubactions.azurecr.io'
dockerfiles_root_dir: '.github/dockerfiles'
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
@ -109,7 +113,7 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
@ -124,7 +128,7 @@ jobs:
git rev-parse HEAD
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: ${{ env.OPENVINO_CONTRIB_REPO }}
@ -252,7 +256,7 @@ jobs:
# Upload build artifacts and logs
#
- name: Upload build logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: build_logs
@ -261,7 +265,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -269,7 +273,7 @@ jobs:
- name: Upload openvino js package
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_js_package
path: ${{ env.INSTALL_DIR_JS }}
@ -277,7 +281,7 @@ jobs:
- name: Upload openvino developer package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_developer_package
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz
@ -285,7 +289,7 @@ jobs:
- name: Upload openvino debian packages
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_debian_packages
path: ${{ env.BUILD_DIR }}/*.deb
@ -293,7 +297,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -308,22 +312,22 @@ jobs:
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
Samples:
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
if: fromJSON(needs.smart_ci.outputs.affected_components).samples
uses: ./.github/workflows/job_samples_tests.yml
with:
runner: 'aks-linux-4-cores-16gb'
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
JS_API:
name: OpenVINO JS API
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: ./.github/workflows/job_openvino_js.yml
with:
runner: 'aks-linux-4-cores-16gb'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04"}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}"}'
Conformance:
needs: [ Build, Smart_CI ]
@ -358,13 +362,13 @@ jobs:
#
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -379,7 +383,7 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -423,7 +427,7 @@ jobs:
- name: Upload Conformance Artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-${{ env.TEST_DEVICE }}
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
@ -449,7 +453,7 @@ jobs:
- name: Upload Conformance Artifacts
if: ${{ matrix.TEST_TYPE == 'API' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-TEMPLATE
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
@ -470,79 +474,79 @@ jobs:
name: ONNX Models Tests
if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test ||
fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
uses: ./.github/workflows/job_onnx_models_tests.yml
with:
runner: 'aks-linux-16-cores-32gb'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
runner: 'aks-linux-16-cores-64gb'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
CXX_Unit_Tests:
name: C++ unit tests
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
uses: ./.github/workflows/job_cxx_unit_tests.yml
with:
runner: 'aks-linux-4-cores-16gb'
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
Python_Unit_Tests:
name: Python unit tests
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
uses: ./.github/workflows/job_python_unit_tests.yml
with:
runner: 'aks-linux-4-cores-16gb'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
TensorFlow_Layer_Tests:
name: TensorFlow Layer Tests
needs: [ Build, Smart_CI, Openvino_tokenizers ]
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
uses: ./.github/workflows/job_tensorflow_layer_tests.yml
with:
runner: 'aks-linux-4-cores-16gb'
shell: bash
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
CPU_Functional_Tests:
name: CPU functional tests
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
uses: ./.github/workflows/job_cpu_functional_tests.yml
with:
runner: 'aks-linux-8-cores-32gb'
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
TensorFlow_Models_Tests_Precommit:
name: TensorFlow Models tests
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test ||
fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test
needs: [ Build, Smart_CI, Openvino_tokenizers ]
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
uses: ./.github/workflows/job_tensorflow_models_tests.yml
with:
runner: 'aks-linux-8-cores-16gb'
model_scope: 'precommit'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
TensorFlow_Models_Tests_Nightly_TF_HUB:
name: TensorFlow TF Hub Models tests
if: ${{ github.event_name == 'schedule' }}
needs: [ Build, Smart_CI, Openvino_tokenizers ]
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
uses: ./.github/workflows/job_tensorflow_models_tests.yml
with:
runner: 'aks-linux-8-cores-32gb'
runner: 'aks-linux-8-cores-64gb'
model_scope: 'nightly_tf_hub'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
TensorFlow_Models_Tests_Nightly_HF:
name: TensorFlow Hugging Face Models tests
if: ${{ github.event_name == 'schedule' }}
needs: [ Build, Smart_CI, Openvino_tokenizers ]
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
uses: ./.github/workflows/job_tensorflow_models_tests.yml
with:
runner: 'aks-linux-8-cores-32gb'
runner: 'aks-linux-8-cores-64gb'
model_scope: 'nightly_hf'
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
# TODO: Switch back to self-hosted runners
# container:
@ -560,14 +564,14 @@ jobs:
NVIDIA_Plugin:
name: NVIDIA plugin
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
timeout-minutes: 15
defaults:
run:
shell: bash
runs-on: aks-linux-16-cores-32gb
container:
image: openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu20.04
image: ${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64_nvidia }}
volumes:
- /mount:/mount
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING
@ -591,28 +595,14 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).NVIDIA
steps:
- name: Set apt retries
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Fetch install_build_dependencies.sh
uses: actions/checkout@v4
with:
sparse-checkout: |
install_build_dependencies.sh
sparse-checkout-cone-mode: false
path: ${{ env.OPENVINO_REPO }}
- name: Install Prerequisites
run: apt update && apt install -y git ca-certificates
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO Developer package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_developer_package
path: ${{ env.INSTALL_DIR }}
@ -628,44 +618,12 @@ jobs:
popd
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: ${{ env.OPENVINO_CONTRIB_REPO }}
ref: 'master'
#
# Dependencies
#
- name: Install build dependencies
run: |
${OPENVINO_REPO}/install_build_dependencies.sh
apt -y --no-install-recommends install software-properties-common curl
- name: Install sccache
uses: mozilla-actions/sccache-action@v0.0.4
with:
version: "v0.7.5"
- name: Install CUDA
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
apt update
apt install -y \
libcudnn8=8.9.4.*-1+cuda11.8 \
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
cuda-runtime-11-8 \
cuda-11-8 \
libcutensor1=1.6.1.5-1 \
libcutensor-dev=1.6.1.5-1 \
cuda-drivers=520.61.05-1
#
# Build
#
@ -694,119 +652,44 @@ jobs:
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
if: fromJSON(needs.smart_ci.outputs.affected_components).TOKENIZERS
GPU:
name: GPU Tests
iGPU:
name: iGPU Tests
needs: [ Build, Smart_CI ]
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
timeout-minutes: 80
runs-on: [ self-hosted, gpu ]
uses: ./.github/workflows/job_gpu_tests.yml
strategy:
max-parallel: 2
fail-fast: false
matrix:
TEST_TYPE: ['unit', 'func']
container:
image: ubuntu:20.04
options: --device /dev/dri:/dev/dri --group-add 109 --group-add 44
volumes:
- /dev/dri:/dev/dri
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
INSTALL_DIR: ${{ github.workspace }}/install
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
GTEST_PARALLEL_SCRIPT: ${{ github.workspace }}/gtest_parallel.py
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
with:
name: 'openvino_package'
path: ${{ env.INSTALL_DIR }}
with:
device: 'igpu'
test_type: ${{ matrix.TEST_TYPE }}
runner: "[ 'self-hosted', 'igpu' ]"
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
--device /dev/dri:/dev/dri"}'
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
with:
name: 'openvino_tests'
path: ${{ env.INSTALL_TEST_DIR }}
# Needed as ${{ github.workspace }} is not working correctly when using Docker
- name: Setup Variables
run: |
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV"
echo "GTEST_PARALLEL_SCRIPT=$GITHUB_WORKSPACE/gtest_parallel.py" >> "$GITHUB_ENV"
- name: Extract OpenVINO packages
run: |
pushd $INSTALL_DIR
tar -xzf openvino_package.tar.gz -C $INSTALL_DIR
popd
pushd $INSTALL_TEST_DIR
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
popd
- name: Install dependencies (Linux)
run: |
$INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
apt-get update && apt-get install -y wget software-properties-common ca-certificates gpg-agent tzdata
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
TZ: "Europe/London" # to prevent tzdata from waiting user input
- name: Setup Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Get gtest-parallel script
run: wget https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py
- name: Install GPU Drivers
run: |
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
dpkg -i *.deb
#
# Tests
#
- name: OpenVINO GPU ${{ matrix.TEST_TYPE }} Tests
run: |
source ${INSTALL_DIR}/setupvars.sh
rm -rf ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests && mkdir -p ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests
test_filter=''
if [[ "${{ matrix.TEST_TYPE }}" == "unit" ]]; then
# Ticket: 138018
test_filter='-*scatter_nd_update_gpu.dynamic_padded_output*:*border_gpu.basic_zero_input*:*bicubic_zeros_no_align_data1x1*:*bicubic_border_align_batches*:*bilinear_zeros_no_align_data1x1*:*non_zero_gpu.empty_input*:*mark_shape_of_subgraphs.concat_with_empty_tensor_inputs*:*concat_cpu_impl.dynamic_4d_f*:*border_gpu.basic_zero_input_dynamic*:*network_test.model_with_empty_input_is_not_dynamic*:*bicubic_zeros_align_data1x1*'
else
test_filter='*smoke*'
fi
python3 ${GTEST_PARALLEL_SCRIPT} ${INSTALL_TEST_DIR}/ov_gpu_${{ matrix.TEST_TYPE }}_tests --dump_json_test_results=${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests/ov_gpu_${{ matrix.TEST_TYPE }}_tests.json -- --report_unique_name --gtest_filter=$test_filter
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-${{ matrix.TEST_TYPE }}-gpu
path: ${{ env.INSTALL_TEST_DIR }}/gpu_${{ matrix.TEST_TYPE }}_tests
if-no-files-found: 'error'
dGPU:
name: dGPU Tests
needs: [ Build, Smart_CI ]
uses: ./.github/workflows/job_gpu_tests.yml
strategy:
max-parallel: 2
fail-fast: false
matrix:
TEST_TYPE: ['unit', 'func']
with:
device: 'dgpu'
test_type: ${{ matrix.TEST_TYPE }}
runner: "[ 'self-hosted', 'dgpu' ]"
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
--device /dev/dri/card0:/dev/dri/card0 --device /dev/dri/renderD128:/dev/dri/renderD128"}'
if: ${{ github.event_name == 'schedule' }}
Overall_Status:
name: ci/gha_overall_status
needs: [Smart_CI, Build, Debian_Packages, Samples, Conformance, ONNX_Runtime, CXX_Unit_Tests, Python_Unit_Tests, TensorFlow_Layer_Tests,
CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, NVIDIA_Plugin, Openvino_tokenizers, GPU]
CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, NVIDIA_Plugin, Openvino_tokenizers, iGPU]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:

View File

@ -13,6 +13,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-arm
cancel-in-progress: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -26,7 +28,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -59,7 +61,7 @@ jobs:
images: "${{ steps.handle_docker.outputs.images }}"
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: ./.github/actions/handle_docker
id: handle_docker
@ -106,13 +108,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: ${{ env.OPENVINO_CONTRIB_REPO }}
@ -245,7 +247,7 @@ jobs:
# Upload build artifacts and logs
#
- name: Upload build logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: build_logs
@ -254,7 +256,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -262,7 +264,7 @@ jobs:
- name: Upload openvino developer package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_developer_package
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz
@ -270,7 +272,7 @@ jobs:
- name: Upload openvino js package
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_js_package
path: ${{ env.INSTALL_DIR_JS }}
@ -278,7 +280,7 @@ jobs:
- name: Upload openvino debian packages
if: ${{ 'false' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_debian_packages
path: ${{ env.BUILD_DIR }}/*.deb
@ -286,7 +288,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz

View File

@ -13,6 +13,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-cc
cancel-in-progress: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -26,7 +28,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -59,13 +61,14 @@ jobs:
images: "${{ steps.handle_docker.outputs.images }}"
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: ./.github/actions/handle_docker
id: handle_docker
with:
images: |
ov_build/ubuntu_22_04_x64_cc
ov_test/ubuntu_22_04_x64
registry: 'openvinogithubactions.azurecr.io'
dockerfiles_root_dir: '.github/dockerfiles'
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
@ -104,13 +107,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
- name: Clone test models
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/testdata'
path: ${{ env.MODELS_PATH }}
@ -217,7 +220,7 @@ jobs:
# Upload build artifacts and logs
#
- name: Upload build logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: build_logs
@ -226,7 +229,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -234,7 +237,7 @@ jobs:
- name: Upload selective build statistics package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_selective_build_stat
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.tar.gz
@ -242,7 +245,7 @@ jobs:
- name: Upload OpenVINO tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -276,13 +279,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
- name: Clone test models
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/testdata'
path: ${{ env.MODELS_PATH }}
@ -290,7 +293,7 @@ jobs:
ref: 'master'
- name: Download selective build statistics package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_selective_build_stat
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }}
@ -333,11 +336,11 @@ jobs:
CPU_Functional_Tests:
name: CPU functional tests
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
needs: [ Build, Smart_CI ]
needs: [ Docker, Build, Smart_CI ]
uses: ./.github/workflows/job_cpu_functional_tests.yml
with:
runner: 'aks-linux-8-cores-32gb'
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04'
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}
Overall_Status:
name: ci/gha_overall_status_linux_cc

View File

@ -16,6 +16,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-riscv
cancel-in-progress: true
permissions: read-all
jobs:
Smart_CI:
runs-on: ubuntu-latest
@ -24,7 +26,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -75,7 +77,7 @@ jobs:
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'

View File

@ -11,6 +11,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-sanitizers
cancel-in-progress: true
permissions: read-all
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
@ -62,13 +64,13 @@ jobs:
apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: ${{ env.OPENVINO_CONTRIB_REPO }}
@ -184,7 +186,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package_${{ matrix.SANITIZER }}
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -192,7 +194,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests_${{ matrix.SANITIZER }}
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -228,13 +230,13 @@ jobs:
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: ${{ format('openvino_package_{0}', matrix.SANITIZER) }}
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: ${{ format('openvino_tests_{0}', matrix.SANITIZER) }}
path: ${{ env.INSTALL_TEST_DIR }}
@ -264,7 +266,7 @@ jobs:
apt update && apt --assume-yes install clang lld
- name: Fetch Sanitizer Suppression Lists
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
tests/lsan/suppressions.txt
@ -401,7 +403,7 @@ jobs:
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpImplTests.xml
- name: AUTO unit tests
if: ${{ 'false' }} # Ticket: 134423
if: always()
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_auto_unit_tests --gtest_print_time=1 \
@ -460,7 +462,7 @@ jobs:
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-cpp

View File

@ -29,11 +29,12 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-main
cancel-in-progress: true
permissions: read-all
env:
PYTHON_VERSION: '3.11'
jobs:
Smart_CI:
runs-on: ubuntu-latest
outputs:
@ -41,7 +42,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -79,13 +80,13 @@ jobs:
BUILD_DIR: ${{ github.workspace }}/build
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: 'openvino_contrib'
@ -130,7 +131,7 @@ jobs:
#
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
with:
max-size: "2000M"
# Should save cache only if run in the master branch of the base repo
@ -203,7 +204,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -211,7 +212,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -219,7 +220,7 @@ jobs:
- name: Upload openvino js package
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_js_package
path: ${{ env.INSTALL_DIR_JS }}

View File

@ -29,6 +29,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-arm64
cancel-in-progress: true
permissions: read-all
env:
PYTHON_VERSION: '3.11'
@ -40,7 +42,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -78,13 +80,13 @@ jobs:
BUILD_DIR: ${{ github.workspace }}/build
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: 'openvino_contrib'
@ -129,7 +131,7 @@ jobs:
#
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
with:
max-size: "2000M"
# Should save cache only if run in the master branch of the base repo
@ -202,7 +204,7 @@ jobs:
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
@ -210,7 +212,7 @@ jobs:
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
@ -218,7 +220,7 @@ jobs:
- name: Upload openvino js package
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_js_package
path: ${{ env.INSTALL_DIR_JS }}

View File

@ -16,20 +16,22 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
Pylint-UT:
runs-on: ubuntu-22.04
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.10'
- name: Cache pip
uses: actions/cache@v4
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('tools/mo/requirements*.txt') }}
@ -53,4 +55,4 @@ jobs:
- name: Pylint-MO
run: pylint -d C,R,W openvino/tools/mo
working-directory: tools/mo
working-directory: tools/mo

View File

@ -11,20 +11,22 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
Pylint-UT:
runs-on: ubuntu-22.04
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.10'
- name: Cache pip
uses: actions/cache@v4
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('src/bindings/python/requirements*.txt') }}

View File

@ -20,15 +20,17 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
linters:
runs-on: ubuntu-20.04
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.8'
@ -47,7 +49,7 @@ jobs:
git diff > samples_diff.diff
working-directory: samples/python
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: failure()
with:
name: samples_diff
@ -65,7 +67,7 @@ jobs:
git diff > pyopenvino_diff.diff
working-directory: src/bindings/python/src/openvino
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: failure()
with:
name: pyopenvino_diff
@ -83,7 +85,7 @@ jobs:
git diff > wheel_diff.diff
working-directory: src/bindings/python/wheel
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: failure()
with:
name: wheel_diff
@ -111,4 +113,3 @@ jobs:
fi
fi
done

View File

@ -35,7 +35,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: '.github'

View File

@ -4,15 +4,16 @@ on:
schedule:
- cron: '0 0 * * *'
permissions:
issues: write
pull-requests: write
permissions: read-all
jobs:
stale:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
with:
stale-issue-message: 'This issue will be closed in a week because of 9 months of no activity.'
stale-pr-message: 'This PR will be closed in a week because of 2 weeks of no activity.'

View File

@ -13,6 +13,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-webassembly
cancel-in-progress: true
permissions: read-all
jobs:
Smart_CI:
runs-on: ubuntu-latest
@ -21,7 +23,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -64,13 +66,13 @@ jobs:
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Install sccache
uses: mozilla-actions/sccache-action@v0.0.4
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
with:
version: "v0.7.5"

View File

@ -16,6 +16,8 @@ env:
PIP_CACHE_PATH: /mount/caches/pip/win
PYTHON_VERSION: '3.11'
permissions: read-all
jobs:
Smart_CI:
runs-on: ubuntu-latest
@ -24,7 +26,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -67,13 +69,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/openvino_contrib'
path: 'openvino_contrib'
@ -150,7 +152,9 @@ jobs:
${{ runner.os }}-${{ runner.arch }}-ccache
- name: Configure Developer Command Prompt for Microsoft Visual C++
uses: ilammy/msvc-dev-cmd@v1
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
toolset: 14.40
- name: Set SSL_CERT_FILE for model downloading for unit tests
run: echo SSL_CERT_FILE=$(python3 -m certifi) >> $env:GITHUB_ENV
@ -215,14 +219,14 @@ jobs:
#
- name: Upload openvino package
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.zip
if-no-files-found: 'error'
- name: Upload openvino tests package
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.zip
@ -230,7 +234,7 @@ jobs:
- name: Upload openvino js package
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_js_package
path: ${{ env.INSTALL_DIR_JS }}
@ -253,13 +257,13 @@ jobs:
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -274,7 +278,7 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -339,20 +343,20 @@ jobs:
steps:
- name: Fetch OpenVINO JS sources
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
src/bindings/js
path: 'openvino'
- name: Download OpenVINO js package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_js_package
path: ${{ env.OPENVINO_JS_LIBS_DIR }}
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
@ -405,13 +409,13 @@ jobs:
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -426,7 +430,7 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -563,7 +567,7 @@ jobs:
run: python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/ovc/unit_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-OpenVinoConversion.xml
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-python
@ -593,13 +597,13 @@ jobs:
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -769,7 +773,7 @@ jobs:
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-cpp
@ -793,13 +797,13 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
steps:
- name: Download OpenVINO package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -814,7 +818,7 @@ jobs:
popd
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -832,7 +836,7 @@ jobs:
run: python3 -m pip install -r ${{ github.workspace }}\install\tests\functional_test_utils\layer_tests_summary\requirements.txt
- name: Restore tests execution time
uses: actions/cache/restore@v4
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ${{ env.PARALLEL_TEST_CACHE }}
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
@ -846,14 +850,14 @@ jobs:
timeout-minutes: 60
- name: Save tests execution time
uses: actions/cache/save@v4
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
if: github.ref_name == 'master'
with:
path: ${{ env.PARALLEL_TEST_CACHE }}
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-functional-cpu

View File

@ -16,6 +16,8 @@ concurrency:
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-windows-cc
cancel-in-progress: true
permissions: read-all
env:
PYTHON_VERSION: '3.11'
@ -27,7 +29,7 @@ jobs:
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
steps:
- name: checkout action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: .github/actions/smart-ci
@ -50,7 +52,7 @@ jobs:
defaults:
run:
shell: pwsh
runs-on: aks-win-8-cores-64gb
runs-on: aks-win-32-cores-128gb
env:
CMAKE_BUILD_TYPE: 'Release'
CMAKE_GENERATOR: 'Ninja Multi-Config'
@ -70,13 +72,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Clone test models
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/testdata'
path: 'testdata'
@ -149,7 +151,9 @@ jobs:
${{ runner.os }}-${{ runner.arch }}-ccache
- name: Configure Developer Command Prompt for Microsoft Visual C++
uses: ilammy/msvc-dev-cmd@v1
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
toolset: 14.40
- name: Set SSL_CERT_FILE for model downloading for unit tests
run: echo SSL_CERT_FILE=$(python3 -m certifi) >> $env:GITHUB_ENV
@ -172,10 +176,11 @@ jobs:
- name: Clean ccache stats
run: '& ccache --zero-stats'
# If the build fails due to running out of RAM, please decrease the number of parallel jobs (--parallel n)
- name: Cmake build - CC COLLECT
run: |
cmake --build ${{ env.BUILD_DIR }} --parallel 8 --config ${{ env.CMAKE_BUILD_TYPE }} && `
cmake --build ${{ env.BUILD_DIR }} --parallel 8 --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib
cmake --build ${{ env.BUILD_DIR }} --parallel 16 --config ${{ env.CMAKE_BUILD_TYPE }} && `
cmake --build ${{ env.BUILD_DIR }} --parallel 16 --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib
- name: Show ccache stats
run: '& ccache --show-stats'
@ -242,7 +247,7 @@ jobs:
- name: Upload selective build statistics package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_selective_build_stat
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.zip
@ -250,7 +255,7 @@ jobs:
- name: Upload OpenVINO tests package
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.zip
@ -262,7 +267,7 @@ jobs:
defaults:
run:
shell: pwsh
runs-on: aks-win-8-cores-64gb
runs-on: aks-win-32-cores-128gb
env:
CMAKE_BUILD_TYPE: 'Release'
OPENVINO_REPO: "${{ github.workspace }}\\openvino"
@ -273,13 +278,13 @@ jobs:
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
path: 'openvino'
submodules: 'true'
- name: Clone test models
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'openvinotoolkit/testdata'
path: 'testdata'
@ -287,7 +292,7 @@ jobs:
ref: 'master'
- name: Download selective build statistics package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_selective_build_stat
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }}
@ -349,7 +354,7 @@ jobs:
steps:
- name: Download OpenVINO tests package
uses: actions/download-artifact@v4
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
@ -358,7 +363,7 @@ jobs:
run: Expand-Archive ${{ env.INSTALL_TEST_DIR }}/openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}"
- name: Fetch setup_python action
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: |
.github/actions/setup_python/action.yml
@ -376,7 +381,7 @@ jobs:
run: python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/layer_tests_summary/requirements.txt
- name: Restore tests execution time
uses: actions/cache/restore@v4
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ${{ env.PARALLEL_TEST_CACHE }}
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
@ -391,7 +396,7 @@ jobs:
timeout-minutes: 60
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ !cancelled() }}
with:
name: test-results-functional-cpu

View File

@ -16,6 +16,8 @@ on:
- '.github/workflows/workflow_rerunner.yml'
- '.github/scripts/workflow_rerun/**'
permissions: read-all
jobs:
rerun:
name: Rerun Workflow
@ -28,7 +30,7 @@ jobs:
checks: read
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: '.github/scripts/workflow_rerun'
@ -59,7 +61,7 @@ jobs:
runs-on: aks-linux-2-cores-8gb
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
sparse-checkout: '.github/scripts/workflow_rerun'
lfs: true

View File

@ -1,6 +1,6 @@
# custom OpenVINO values
CppMethod: '^(operator\W+|[a-z_\d]+|signaling_NaN|quiet_NaN|OPENVINO_OP)$'
ClassName: '^([A-Z][\w]+|b?float16|float8_e4m3|float8_e5m2|numeric_limits|ngraph_error|stopwatch|unsupported_op)$'
ClassName: '^([A-Z][\w]+|b?float16|float8_e4m3|float8_e5m2|float4_e2m1|numeric_limits|ngraph_error|stopwatch|unsupported_op)$'
StructName: '^([A-Z][\w]+|element_type_traits|hash|oi_pair|stat)$'
FunctionName: '^(operator\W+|[a-z_\d]+)|PrintTo$'
Namespace: '^([a-z\d_]*|InferenceEngine)$'
@ -18,7 +18,7 @@ VariableReference: '^\w+$'
EnumName: '^[A-Z][\w]+$'
# excepts element_type
EnumConstantName: '^([A-Z\d_]+|undefined|dynamic|boolean|bf16|f16|f32|f64|i4|i8|i16|i32|i64|u1|u2|u3|u4|u6|u8|u16|u32|u64|nf4|f8e4m3|f8e5m2|string|asymmetric|align_corners|round_prefer_floor|round_prefer_ceil|floor|ceil|simple|nearest|linear|linear_onnx|cubic|area|scales|sizes|half_pixel|tf_half_pixel_for_nn|pytorch_half_pixel|asymetric)$'
EnumConstantName: '^([A-Z\d_]+|undefined|dynamic|boolean|bf16|f16|f32|f64|i4|i8|i16|i32|i64|u1|u2|u3|u4|u6|u8|u16|u32|u64|nf4|f8e4m3|f8e5m2|f4e2m1|string|asymmetric|align_corners|round_prefer_floor|round_prefer_ceil|floor|ceil|simple|nearest|linear|linear_onnx|cubic|area|scales|sizes|half_pixel|tf_half_pixel_for_nn|pytorch_half_pixel|asymetric)$'
# TODO: align
UsingDeclaration: '^.*$'
TypedefName: '^.*$'

View File

@ -33,6 +33,7 @@ function(build_docs)
set(DOXYGEN_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_mapping.py")
set(DOCS_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_doc_mapping.py")
set(BREATHE_APIDOC_SCRIPT "${SCRIPTS_DIR}/apidoc.py")
set(OV_INSTALLATION_SCRIPT "${SCRIPTS_DIR}/install_appropriate_openvino_version.py")
# Doxygen/Sphinx setup
set(DOXYGEN_XML_OUTPUT "${DOCS_BUILD_DIR}/xml")
@ -62,7 +63,9 @@ function(build_docs)
if(${ENABLE_PYTHON_API})
list(APPEND commands COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "STARTED preprocessing OpenVINO Python API")
list(APPEND commands COMMAND ${Python3_EXECUTABLE} -m pip install openvino)
list(APPEND commands COMMAND ${Python3_EXECUTABLE} ${OV_INSTALLATION_SCRIPT}
--ov_dir=${SPHINX_SETUP_DIR}
--python=${Python3_EXECUTABLE})
list(APPEND commands COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "FINISHED preprocessing OpenVINO Python API")
endif()

View File

@ -6,7 +6,7 @@ Additional Resources
.. meta::
:description: Learn more about OpenVINO from benchmark results, case studies
:description: Learn more about OpenVINO from benchmark results, case studies
and lists of supported models, operations and devices.
.. toctree::
@ -14,7 +14,7 @@ Additional Resources
:hidden:
additional-resources/glossary
additional-resources/legal-information
Legal and Responsible AI Information <./additional-resources/legal-information>
additional-resources/telemetry
Case Studies <https://www.intel.com/openvino-success-stories>
@ -23,9 +23,9 @@ Additional Resources
:doc:`Glossary <additional-resources/glossary>` contains terms used in OpenVINO.
:doc:`Legal Information <additional-resources/legal-information>` has trademark information and other legal statements.
:doc:`Legal and Responsible AI Information <additional-resources/legal-information>` provides trademark information and other legal statements.
:doc:`OpenVINO™ Telemetry <additional-resources/telemetry>` has detailed information on the telemetry data collection.
:doc:`OpenVINO™ Telemetry <additional-resources/telemetry>` has detailed information on the telemetry data collection.
`Case Studies <https://www.intel.com/openvino-success-stories>`__ are articles about real-world examples of OpenVINO™ usage.

View File

@ -1,7 +1,7 @@
.. {#openvino_docs_Legal_Information}
Legal Information
=================
Legal and Responsible AI Information
=====================================
.. meta::
@ -46,4 +46,12 @@ Intel Global Human Right Principles
Intel is committed to respecting human rights and avoiding causing or contributing to adverse
impacts on human rights. See `Intel's Global Human Rights Principles <https://www.intel.com/content/dam/www/central-libraries/us/en/documents/policy-human-rights.pdf>`__.
Intel's products and software are intended only to be used in applications that do not cause or
contribute to adverse impacts on human rights.
contribute to adverse impacts on human rights.
Model Card Statement
###########################################################
We recommend that users, wherever you are sourcing the model from, should check for a model card,
consult the model card for each model you access and use, and create one if you are developing
or updating a model. A model card is a short document that provides key information to assess
performance and validation and ensure appropriate use.

View File

@ -1,5 +1,3 @@
.. {#openvino_docs_performance_benchmarks}
Performance Benchmarks
======================
@ -12,6 +10,7 @@ Performance Benchmarks
:maxdepth: 1
:hidden:
performance-benchmarks/generativeAI-benchmarks
performance-benchmarks/performance-benchmarks-faq
OpenVINO Accuracy <performance-benchmarks/model-accuracy-int8-fp32>
performance-benchmarks/getting-performance-numbers
@ -23,6 +22,8 @@ and :doc:`OpenVINO Model Server <../ovms_what_is_openvino_model_server>`, for a
selection of public neural networks and Intel® devices. The results may help you decide which
hardware to use in your applications or plan AI workload for the hardware you have already
implemented in your solutions. Click the buttons below to see the chosen benchmark data.
For more detailed view of performance numbers for generative AI models, check the
:doc:`Generative AI Benchmark Results <./performance-benchmarks/generativeAI-benchmarks>`
.. grid:: 1 1 2 2
:gutter: 4

View File

@ -0,0 +1,8 @@
Generative AI Benchmark Results
===================================
This page will give you a detailed information on how OpenVINO performs running a selection of
Generative AI models.

View File

@ -1,5 +1,3 @@
.. {#system_requirements}
System Requirements
===================
@ -30,6 +28,7 @@ CPU
.. tab-item:: Supported Operating Systems
* Ubuntu 24.04 long-term support (LTS), 64-bit (Kernel 6.8+)
* Ubuntu 22.04 long-term support (LTS), 64-bit (Kernel 5.15+)
* Ubuntu 20.04 long-term support (LTS), 64-bit (Kernel 5.15+)
* Ubuntu 18.04 long-term support (LTS) with limitations, 64-bit (Kernel 5.4+)
@ -59,6 +58,7 @@ GPU
.. tab-item:: Supported Operating Systems
* Ubuntu 24.04 long-term support (LTS), 64-bit
* Ubuntu 22.04 long-term support (LTS), 64-bit
* Ubuntu 20.04 long-term support (LTS), 64-bit
* Windows 10, 64-bit
@ -75,7 +75,7 @@ GPU
for information about your processor.
* While this release of OpenVINO supports Ubuntu 20.04, the driver stack
for Intel discrete graphic cards does not fully support Ubuntu 20.04.
We recommend using Ubuntu 22.04 when executing on discrete graphics.
We recommend using Ubuntu 22.04 and later when executing on discrete graphics.
* The following minimum (i.e., used for old hardware) OpenCL™ driver's versions
were used during OpenVINO internal validation: 22.43 for Ubuntu 22.04, 21.48
for Ubuntu 20.04 and 21.49 for Red Hat Enterprise Linux 8 (some hardware may require
@ -88,6 +88,7 @@ Intel® Neural Processing Unit
.. tab-item:: Operating Systems for NPU
* Ubuntu 24.04 long-term support (LTS), 64-bit
* Ubuntu 22.04 long-term support (LTS), 64-bit
* Windows 11, 64-bit (22H2, 23H2)
@ -106,6 +107,7 @@ Operating systems and developer environment
.. tab-item:: Linux OS
* Ubuntu 24.04 with Linux kernel 6.8+
* Ubuntu 22.04 with Linux kernel 5.15+
* Ubuntu 20.04 with Linux kernel 5.15+
* Red Hat Enterprise Linux 8 with Linux kernel 5.4

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b78713020891a6655e3860338b7db430840560d8f2860162eca3d00b84533f24
size 36362

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:353c5b7f35a8f9f6c2c3074485a5a4e51f8c6ee776214444666da4037cc44832
size 45347

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:696672a8c38260147f2fa68d266866ab4390ef919fa092cea1149b0eb529c68e
size 58557

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d378718b968f6a40555b31bf54af83fac978c3bfc07e234f9b1370229222cccd
size 31092

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6b3511899521a49c1bfdc569e16b8ad1e12157fe107d2b86d25ee04ff67a85b2
size 43066

View File

@ -37,7 +37,7 @@ compiled_model_3 = core.compile_model(
# ! [ov:intel_cpu:multi_threading:part0]
# ! [ov:intel_cpu:multi_threading:part1]
# Disable CPU threads pinning for inference when system supoprt it
# Disable CPU thread pinning for inference when the system supports it
compiled_model_4 = core.compile_model(
model=model,
device_name=device_name,

View File

@ -171,8 +171,8 @@ if (m->match(node->output(0))) {
bool openvino_api_examples(std::shared_ptr<ov::Node> node) {
{
// ! [ov:ports_example]
// Let's suppose that node is opset8::Convolution operation
// as we know opset8::Convolution has two input ports (data, weights) and one output port
// Let's suppose that node is of ov::op::v0::Convolution type.
// As we know ov::op::v0::Convolution has two input ports (data, weights) and one output port.
ov::Input<ov::Node> data = node->input(0);
ov::Input<ov::Node> weights = node->input(1);
ov::Output<ov::Node> output = node->output(0);
@ -181,7 +181,7 @@ ov::Output<ov::Node> output = node->output(0);
auto pshape = data.get_partial_shape();
auto el_type = data.get_element_type();
// Getting parent for input port
// Getting parent for input port i.e. Output mapped by the input
ov::Output<ov::Node> parent_output;
parent_output = data.get_source_output();
@ -216,15 +216,15 @@ return true;
// ! [ov:replace_node]
bool ov_replace_node(std::shared_ptr<ov::Node> node) {
// Step 1. Verify that node has opset8::Negative type
auto neg = std::dynamic_pointer_cast<ov::opset8::Negative>(node);
// Step 1. Verify that node is of type ov::op::v0::Negative
auto neg = std::dynamic_pointer_cast<ov::op::v0::Negative>(node);
if (!neg) {
return false;
}
// Step 2. Create opset8::Multiply operation where the first input is negative operation input and second as Constant with -1 value
auto mul = std::make_shared<ov::opset8::Multiply>(neg->input_value(0),
ov::opset8::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
// Step 2. Create ov::op::v1::Multiply operation with the first input being the output going into Negative and second as Constant with -1 value
auto mul = std::make_shared<ov::op::v1::Multiply>(neg->input_value(0),
ov::op::v0::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
mul->set_friendly_name(neg->get_friendly_name());
ov::copy_runtime_info(neg, mul);
@ -233,18 +233,18 @@ bool ov_replace_node(std::shared_ptr<ov::Node> node) {
ov::replace_node(neg, mul);
return true;
// Step 4. Negative operation will be removed automatically because all consumers was moved to Multiply operation
// Step 4. Negative operation will be removed automatically because all consumers were moved to Multiply operation
}
// ! [ov:replace_node]
bool ov_manual_replace_node(std::shared_ptr<ov::Node> node) {
auto neg = std::dynamic_pointer_cast<ov::opset8::Negative>(node);
auto neg = std::dynamic_pointer_cast<ov::op::v0::Negative>(node);
if (!neg) {
return false;
}
auto mul = std::make_shared<ov::opset8::Multiply>(neg->input_value(0),
ov::opset8::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
auto mul = std::make_shared<ov::op::v1::Multiply>(neg->input_value(0),
ov::op::v0::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
mul->set_friendly_name(neg->get_friendly_name());
ov::copy_runtime_info(neg, mul);
@ -262,8 +262,8 @@ void insert_example(std::shared_ptr<ov::Node> node) {
// Get all consumers for node
auto consumers = node->output(0).get_target_inputs();
// Step 2. Create new node. Let it be opset8::Relu.
auto new_node = std::make_shared<ov::opset8::Relu>(node);
// Step 2. Create new node ov::op::v0::Relu.
auto new_node = std::make_shared<ov::op::v0::Relu>(node);
// Step 3. Reconnect all consumers to new_node
for (auto input : consumers) {
@ -277,7 +277,7 @@ void insert_example_with_copy(std::shared_ptr<ov::Node> node) {
// Make a node copy
auto node_copy = node->clone_with_new_inputs(node->input_values());
// Create new node
auto new_node = std::make_shared<ov::opset8::Relu>(node_copy);
auto new_node = std::make_shared<ov::op::v0::Relu>(node_copy);
ov::replace_node(node, new_node);
}
// ! [ov:insert_node_with_copy]
@ -290,12 +290,12 @@ bool success = ov::replace_output_update_name(node->output(0), node->input_value
}
void replace_friendly_name() {
auto div = std::make_shared<ov::opset8::Divide>();
auto div = std::make_shared<ov::op::v1::Divide>();
// ! [ov:replace_friendly_name]
// Replace Div operation with Power and Multiply sub-graph and set original friendly name to Multiply operation
auto pow = std::make_shared<ov::opset8::Power>(div->input(1).get_source_output(),
auto pow = std::make_shared<ov::op::v1::Power>(div->input(1).get_source_output(),
ov::op::v0::Constant::create(div->get_input_element_type(1), ov::Shape{1}, {-1}));
auto mul = std::make_shared<ov::opset8::Multiply>(div->input(0).get_source_output(), pow);
auto mul = std::make_shared<ov::op::v1::Multiply>(div->input(0).get_source_output(), pow);
mul->set_friendly_name(div->get_friendly_name());
ov::replace_node(div, mul);
// ! [ov:replace_friendly_name]
@ -304,10 +304,10 @@ ov::replace_node(div, mul);
void constant_subgraph() {
// ! [ov:constant_subgraph]
// After ConstantFolding pass Power will be replaced with Constant
auto input = std::make_shared<ov::opset8::Parameter>(ov::element::f32, ov::Shape{1});
auto pow = std::make_shared<ov::opset8::Power>(ov::opset8::Constant::create(ov::element::f32, ov::Shape{1}, {2}),
ov::opset8::Constant::create(ov::element::f32, ov::Shape{1}, {3}));
auto mul = std::make_shared<ov::opset8::Multiply>(input /* not constant input */, pow);
auto input = std::make_shared<ov::op::v0::Parameter>(ov::element::f32, ov::Shape{1});
auto pow = std::make_shared<ov::op::v1::Power>(ov::op::v0::Constant::create(ov::element::f32, ov::Shape{1}, {2}),
ov::op::v0::Constant::create(ov::element::f32, ov::Shape{1}, {3}));
auto mul = std::make_shared<ov::op::v1::Multiply>(input /* not constant input */, pow);
// ! [ov:constant_subgraph]
}

View File

@ -0,0 +1,251 @@
// Copyright (C) 2018-2024 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
// ! [ov::imports]
#include <gtest/gtest.h>
#include "common_test_utils/matcher.hpp"
#include "openvino/op/abs.hpp"
#include "openvino/op/add.hpp"
#include "openvino/op/matmul.hpp"
#include "openvino/op/parameter.hpp"
#include "openvino/op/relu.hpp"
#include "openvino/op/sigmoid.hpp"
#include "openvino/pass/pattern/op/optional.hpp"
#include "openvino/pass/pattern/op/or.hpp"
#include "openvino/pass/pattern/op/wrap_type.hpp"
#include "transformations/utils/utils.hpp"
using namespace ov;
using namespace ov::pass;
using namespace std;
// ! [ov::imports]
// ! [ov:create_simple_model_and_pattern]
TEST(pattern, simple_model_and_pattern) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a sample model
auto pattern_mul = std::make_shared<ov::op::v0::MatMul>(pattern::any_input(), pattern::any_input(), false, false);
auto pattern_abs = std::make_shared<ov::op::v0::Abs>(pattern_mul->output(0));
auto pattern_relu = std::make_shared<ov::op::v0::Relu>(pattern_abs->output(0));
// Create a matcher and try to match the nodes
TestMatcher tm;
// Should perfectly match
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
}
// ! [ov:create_simple_model_and_pattern]
// ! [ov:create_simple_model_and_pattern_wrap_type]
TEST(pattern, simple_model_and_pattern_wrap_type) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a sample model
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
// Create a matcher and try to match the nodes
TestMatcher tm;
// Should perfectly match
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
}
// ! [ov:create_simple_model_and_pattern_wrap_type]
// ! [ov:wrap_type_list]
TEST(pattern, wrap_type_list) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
auto model_sig = std::make_shared<ov::op::v0::Sigmoid>(model_abs->output(0));
auto model_result1 = std::make_shared<ov::op::v0::Result>(model_sig->output(0));
// Create a sample model
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu, ov::op::v0::Sigmoid>({pattern_abs->output(0)});
// Create a matcher and try to match the nodes
TestMatcher tm;
// The same pattern perfectly matches 2 different nodes
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
ASSERT_TRUE(tm.match(pattern_relu, model_sig));
}
// ! [ov:wrap_type_list]
void patterns_misc() {
// ! [ov:any_input]
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
// ! [ov:any_input]
// ! [ov:wrap_type_predicate]
ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern::any_input()}, pattern::consumers_count(2));
// ! [ov:wrap_type_predicate]
// ! [ov:any_input_predicate]
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input([](const Output<Node>& value){
return value.get_shape().size() == 4;}),
pattern::any_input([](const Output<Node>& value){
return value.get_shape().size() == 4;})});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
// ! [ov:any_input_predicate]
// ! [ov:optional_predicate]
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern_relu, pattern::consumers_count(2));
// ! [ov:optional_predicate]
}
// ! [ov::pattern_or]
TEST(pattern, pattern_or) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a red branch
auto red_pattern_add = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto red_pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({red_pattern_add->output(0)});
auto red_pattern_sigmoid = ov::pass::pattern::wrap_type<ov::op::v0::Sigmoid>({red_pattern_relu->output(0)});
// Create a blue branch
auto blue_pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto blue_pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({blue_pattern_mul->output(0)});
auto blue_pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({blue_pattern_abs->output(0)});
// Create Or node
auto pattern_or = std::make_shared<ov::pass::pattern::op::Or>(OutputVector{red_pattern_sigmoid->output(0), blue_pattern_relu->output(0)});
// Create a matcher and try to match the nodes
TestMatcher tm;
// The same pattern perfectly matches 2 different nodes
ASSERT_TRUE(tm.match(pattern_or, model_relu));
}
// ! [ov::pattern_or]
// ! [ov:pattern_optional_middle]
TEST(pattern, pattern_optional_middle) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a sample pattern with an Optional node in the middle
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>({pattern_abs->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_sig_opt->output(0)});
// Create a matcher and try to match the nodes
TestMatcher tm;
// Should perfectly match
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
}
// ! [ov:pattern_optional_middle]
// ! [ov:pattern_optional_top]
TEST(pattern, pattern_optional_top) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a sample pattern an optional top node
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern::any_input());
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern_sig_opt, pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
// Create a matcher and try to match the nodes
TestMatcher tm;
// Should perfectly match
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
}
// ! [ov:pattern_optional_top]
// ! [ov:pattern_optional_root]
TEST(pattern, pattern_optional_root) {
// Create a sample model
PartialShape shape{2, 2};
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
// Create a sample pattern an optional top node
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern_relu);
// Create a matcher and try to match the nodes
TestMatcher tm;
// Should perfectly match
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
}
// ! [ov:pattern_optional_root]

View File

@ -0,0 +1,217 @@
# Copyright (C) 2018-2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
# ! [ov:imports]
import pytest
from openvino import PartialShape
from openvino.runtime import opset13 as ops
from openvino.runtime.passes import Matcher, WrapType, Or, AnyInput, Optional
# ! [ov:imports]
from openvino.runtime.passes import (
consumers_count,
has_static_dim,
has_static_dims,
has_static_shape,
has_static_rank,
type_matches,
type_matches_any,
)
# ! [ov:create_simple_model_and_pattern]
def simple_model_and_pattern():
# Create a sample model
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a sample pattern
pattern_mul = ops.matmul(AnyInput(), AnyInput(), False, False)
pattern_abs = ops.abs(pattern_mul)
pattern_relu = ops.relu(pattern_abs)
# Create a matcher and try to match the nodes
matcher = Matcher(pattern_relu, "FindPattern")
# Should perfectly match
assert matcher.match(model_relu)
# ! [ov:create_simple_model_and_pattern]
# ! [ov:create_simple_model_and_pattern_wrap_type]
def simple_model_and_pattern_wrap_type():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a sample pattern
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType("opset13.Relu", pattern_abs)
# Create a matcher and try to match the nodes
matcher = Matcher(pattern_relu, "FindPattern")
# Should perfectly match
assert matcher.match(model_relu)
# ! [ov:create_simple_model_and_pattern_wrap_type]
# ! [ov:wrap_type_list]
def wrap_type_list():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
model_sig = ops.sigmoid(model_abs) # Note that we've added a Sigmoid node after Abs
model_result1 = ops.result(model_sig)
# Create a sample pattern
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType(["opset13.Relu", "opset13.Sigmoid"], pattern_abs)
# Create a matcher and try to match the nodes
matcher = Matcher(pattern_relu, "FindPattern")
# The same pattern perfectly matches 2 different nodes
assert matcher.match(model_relu)
assert matcher.match(model_sig)
# ! [ov:wrap_type_list]
def any_input():
# ! [ov:any_input]
# Create a pattern with a MatMul node taking any inputs.
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType("opset13.Relu", pattern_abs)
# ! [ov:any_input]
def wrap_type_predicate():
# ! [ov:wrap_type_predicate]
WrapType("opset13.Relu", AnyInput(), consumers_count(2))
# ! [ov:wrap_type_predicate]
# ! [ov:any_input_predicate]
# Create a pattern with an MatMul node taking any input that has a rank 4.
pattern_mul = WrapType("opset13.MatMul", [AnyInput(lambda output: len(output.get_shape()) == 4), AnyInput(lambda output: len(output.get_shape()) == 4)])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType("opset13.Relu", pattern_abs)
# ! [ov:any_input_predicate]
# ! [ov::pattern_or]
def pattern_or():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a red branch
red_pattern_add = WrapType("opset13.Add", [AnyInput(), AnyInput()])
red_pattern_relu = WrapType("opset13.Relu", red_pattern_add)
red_pattern_sigmoid = WrapType(["opset13.Sigmoid"], red_pattern_relu)
# Create a blue branch
blue_pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
blue_pattern_abs = WrapType("opset13.Abs", blue_pattern_mul)
blue_pattern_relu = WrapType(["opset13.Relu"], blue_pattern_abs)
#Create Or node
pattern_or = Or([red_pattern_sigmoid, blue_pattern_relu])
# Create a matcher and try to match the nodes
matcher = Matcher(pattern_or, "FindPattern")
# The same pattern perfectly matches 2 different nodes
assert matcher.match(model_relu)
# ! [ov::pattern_or]
# ! [ov:pattern_optional_middle]
def pattern_optional_middle():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a sample pattern with an Optional node in the middle
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_abs)
pattern_relu = WrapType("opset13.Relu", pattern_sig_opt)
# Create a matcher and try to match the nodes
matcher = Matcher(pattern_relu, "FindPattern")
# Should perfectly match
assert matcher.match(model_relu)
# ! [ov:pattern_optional_middle]
# ! [ov:pattern_optional_top]
def pattern_optional_top():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a sample pattern an optional top node
pattern_sig_opt = Optional(["opset13.Sigmoid"], AnyInput())
pattern_mul = WrapType("opset13.MatMul", [pattern_sig_opt, AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType("opset13.Relu", pattern_abs)
matcher = Matcher(pattern_relu, "FindPattern")
# Should perfectly match even though there's no Sigmoid going into MatMul
assert matcher.match(model_relu)
# ! [ov:pattern_optional_top]
# ! [ov:pattern_optional_root]
def pattern_optional_root():
model_param1 = ops.parameter(PartialShape([2, 2]))
model_param2 = ops.parameter(PartialShape([2, 2]))
model_add = ops.add(model_param1, model_param2)
model_param3 = ops.parameter(PartialShape([2, 2]))
model_mul = ops.matmul(model_add, model_param3, False, False)
model_abs = ops.abs(model_mul)
model_relu = ops.relu(model_abs)
model_result = ops.result(model_relu)
# Create a sample pattern
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
pattern_abs = WrapType("opset13.Abs", pattern_mul)
pattern_relu = WrapType("opset13.Relu", pattern_abs)
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_relu)
matcher = Matcher(pattern_sig_opt, "FindPattern")
# Should perfectly match even though there's no Sigmoid as root
assert matcher.match(model_relu)
# ! [ov:pattern_optional_root]
# ! [ov:optional_predicate]
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_relu, consumers_count(1))
# ! [ov:optional_predicate]

View File

@ -16,25 +16,26 @@ Overview of Transformations API
transformation-api/model-pass
transformation-api/matcher-pass
transformation-api/graph-rewrite-pass
transformation-api/patterns-python-api
OpenVINO Transformation mechanism allows to develop transformation passes to modify ``ov::Model``. You can use this mechanism to apply additional optimizations to the original Model or transform unsupported subgraphs and operations to new operations which are supported by the plugin.
This guide contains all necessary information that you need to start implementing OpenVINO™ transformations.
OpenVINO Transformation mechanism allows to develop transformation passes to modify ``ov::Model``. You can use this mechanism to apply additional optimizations to the original Model or transform unsupported subgraphs and operations to new operations supported by the plugin.
This guide contains all the necessary information to start implementing OpenVINO™ transformations.
Working with Model
##################
Before the moving to transformation part it is needed to say several words about functions which allow to modify ``ov::Model``.
This chapter extends the :doc:`model representation guide <../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` and shows an API that allows us to manipulate with ``ov::Model``.
Before moving to the transformation part, it is important to say a few words about the functions which allow modifying ``ov::Model``.
This section extends the :doc:`model representation guide <../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` and introduces an API for ``ov::Model`` manipulation.
Working with node input and output ports
++++++++++++++++++++++++++++++++++++++++
First of all let's talk about ``ov::Node`` input/output ports. Each OpenVINO™ operation has input and output ports except cases when operation has ``Parameter`` or ``Constant`` type.
Each OpenVINO operation has ``ov::Node`` input and output ports, except for ``Parameter`` and ``Constant`` types.
The terms ``node`` and ``operation`` are used interchangeably in OpenVINO, but this article will maintain consistency in their use.
Every port belongs to its node, so using a port we can access parent node, get shape and type for particular input/output, get all consumers in case of output port, and get producer node in case of input port.
With output port we can set inputs for newly created operations.
Every port is associated with a node, allowing access to the node it belongs to, including its shape, type, all consumers for output ports and the producer node for input ports.
Lets look at the code example.
Take a look at the code example:
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
:language: cpp
@ -47,7 +48,7 @@ OpenVINO™ provides two ways for node replacement: via OpenVINO™ helper funct
Let's start with OpenVINO™ helper functions. The most popular function is ``ov::replace_node(old_node, new_node)``.
We will review real replacement case where Negative operation is replaced with Multiply.
Let's review a replacement case where a Negative operation is replaced with Multiply.
.. image:: ../../assets/images/ov_replace_node.png
@ -55,7 +56,7 @@ We will review real replacement case where Negative operation is replaced with M
:language: cpp
:fragment: [ov:replace_node]
``ov::replace_node`` has a constraint that number of output ports for both of ops must be the same; otherwise, it raises an exception.
``ov::replace_node`` has a constraint that number of output ports for both nodes must be the same. Otherwise, the attempt to replace the nodes will result in an exception.
The alternative way to do the same replacement is the following:
@ -63,7 +64,7 @@ The alternative way to do the same replacement is the following:
:language: cpp
:fragment: [ov:manual_replace]
Another transformation example is insertion.
Another transformation example is insertion. Let's insert an additional Relu node.
.. image:: ../../assets/images/ov_insert_node.png
@ -71,7 +72,7 @@ Another transformation example is insertion.
:language: cpp
:fragment: [ov:insert_node]
The alternative way to the insert operation is to make a node copy and use ``ov::replace_node()``:
The alternative way of inserting a node is to make a copy of the node and use ``ov::replace_node()``:
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
:language: cpp
@ -80,15 +81,15 @@ The alternative way to the insert operation is to make a node copy and use ``ov:
Node elimination
++++++++++++++++
Another type of node replacement is its elimination.
Another type of node replacement is elimination of a node.
To eliminate operation, OpenVINO™ has special method that considers all limitations related to OpenVINO™ Runtime.
To eliminate a node, OpenVINO provides a method that considers all limitations of the OpenVINO Runtime.
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
:language: cpp
:fragment: [ov:eliminate_node]
``ov::replace_output_update_name()`` in case of successful replacement it automatically preserves friendly name and runtime info.
If the replacement is successful, ``ov::replace_output_update_name()`` automatically preserves the friendly name and runtime info.
.. _transformations_types:
@ -99,7 +100,7 @@ OpenVINO™ Runtime has three main transformation types:
* :doc:`Model pass <transformation-api/model-pass>` - straightforward way to work with ``ov::Model`` directly
* :doc:`Matcher pass <transformation-api/matcher-pass>` - pattern-based transformation approach
* :doc:`Graph rewrite pass <transformation-api/graph-rewrite-pass>` - container for matcher passes needed for efficient execution
* :doc:`Graph rewrite pass <transformation-api/graph-rewrite-pass>` - container for matcher passes used for efficient execution
.. image:: ../../assets/images/transformations_structure.png
@ -116,36 +117,36 @@ Transformation library has two internal macros to support conditional compilatio
Transformation writing essentials
#################################
When developing a transformation, you need to follow these transformation rules:
To develop a transformation, follow these transformation rules:
1. Friendly Names
+++++++++++++++++
Each ``ov::Node`` has an unique name and a friendly name. In transformations we care only about friendly name because it represents the name from the model.
To avoid losing friendly name when replacing node with other node or subgraph, set the original friendly name to the latest node in replacing subgraph. See the example below.
Each ``ov::Node`` has a unique name and a friendly name. In transformations, only the friendly name matters because it represents the name from the model's perspective.
To prevent losing the friendly name when replacing a node with another node or a subgraph, the original friendly name is set to the last node in the replacing subgraph. See the example below.
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
:language: cpp
:fragment: [ov:replace_friendly_name]
In more advanced cases, when replaced operation has several outputs and we add additional consumers to its outputs, we make a decision how to set friendly name by arrangement.
In more complicated cases, when a replaced operation has several outputs and additional consumers are added to its outputs, the decision on how to set the friendly name is determined by an agreement.
2. Runtime Info
+++++++++++++++
Runtime info is a map ``std::map<std::string, ov::Any>`` located inside ``ov::Node`` class. It represents additional attributes in ``ov::Node``.
These attributes can be set by users or by plugins and when executing transformation that changes ``ov::Model`` we need to preserve these attributes as they will not be automatically propagated.
Runtime info is a map ``std::map<std::string, ov::Any>`` located inside the ``ov::Node`` class. It represents additional attributes of the ``ov::Node``.
These attributes, which can be set by users or plugins, need to be preserved when executing a transformation that changes ``ov::Model``, as they are not automatically propagated.
In most cases, transformations have the following types: 1:1 (replace node with another node), 1:N (replace node with a sub-graph), N:1 (fuse sub-graph into a single node), N:M (any other transformation).
Currently, there is no mechanism that automatically detects transformation types, so we need to propagate this runtime information manually. See the examples below.
Currently, there is no mechanism that automatically detects transformation types, so this runtime information needs to be propagated manually. See the example below:
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
:language: cpp
:fragment: [ov:copy_runtime_info]
When transformation has multiple fusions or decompositions, ``ov::copy_runtime_info`` must be called multiple times for each case.
When a transformation has multiple fusions or decompositions, ``ov::copy_runtime_info`` must be called multiple times for each case.
.. note:: ``copy_runtime_info`` removes ``rt_info`` from destination nodes. If you want to keep it, you need to specify them in source nodes like this: ``copy_runtime_info({a, b, c}, {a, b})``
.. note:: ``copy_runtime_info`` removes ``rt_info`` from destination nodes. If you want to keep it, specify them in source nodes as following: ``copy_runtime_info({a, b, c}, {a, b})``
3. Constant Folding
+++++++++++++++++++
@ -172,21 +173,21 @@ Common mistakes in transformations
In transformation development process:
* Do not use deprecated OpenVINO™ API. Deprecated methods has the ``OPENVINO_DEPRECATED`` macros in its definition.
* Do not pass ``shared_ptr<Node>`` as an input for other node if type of node is unknown or it has multiple outputs. Use explicit output port.
* If you replace node with another node that produces different shape, remember that new shape will not be propagated until the first ``validate_nodes_and_infer_types`` call for ``ov::Model``. If you are using ``ov::pass::Manager``, it will automatically call this method after each transformation execution.
* Do not use deprecated OpenVINO™ API. Deprecated methods are marked with ``OPENVINO_DEPRECATED`` macro in their definition.
* Do not pass ``shared_ptr<Node>`` as input for another node if the type of the node is unknown or if it has multiple outputs. Instead, use explicit output ports.
* If you replace a node with another node that produces different shape, note that the new shape will not be propagated until the first ``validate_nodes_and_infer_types`` call for ``ov::Model``. If you are using ``ov::pass::Manager``, it will automatically call this method after each transformation execution.
* Do not forget to call the ``ov::pass::ConstantFolding`` pass if your transformation creates constant subgraphs.
* Use latest OpSet if you are not developing downgrade transformation pass.
* When developing a callback for ``ov::pass::MatcherPass``, do not change nodes that come after the root node in topological order.
* When developing a callback for ``ov::pass::MatcherPass``, do not change nodes that come after the root node in the topological order.
.. _using_pass_manager:
Using pass manager
##################
``ov::pass::Manager`` is a container class that can store the list of transformations and execute them. The main idea of this class is to have high-level representation for grouped list of transformations.
It can register and apply any `transformation pass <#transformations_types>`__ on model.
In addition, ``ov::pass::Manager`` has extended debug capabilities (find more information in the `how to debug transformations <#how_to_debug_transformations>`__ section).
``ov::pass::Manager`` is a container class that can store a list of transformations and execute them. The main idea of this class is to have a high-level representation for grouped list of transformations.
It can register and apply any `transformation pass <#transformations_types>`__ on a model.
In addition, ``ov::pass::Manager`` has extended debug capabilities (find more information in the `how to debug transformations <#how-to-debug-transformations>`__ section).
The example below shows basic usage of ``ov::pass::Manager``

View File

@ -0,0 +1,175 @@
Transformation Patterns with OpenVINO API
==================================================
.. meta::
:description: Learn how to apply additional model optimizations or transform
unsupported subgraphs and operations using OpenVINO™ Transformations API.
Pattern matching is an essential component of OpenVINO™ transformations. Before performing any transformation on a subgraph of a graph, it is necessary to find that subgraph in the graph.
Patterns serve as a searching utility to identify nodes intended for transformations. This article covers the basics of pattern
creation using OpenVINO™ API and helpful utilities to facilitate working with them. While this guide focuses on creating patterns, if you want to learn more about ``MatcherPass``, refer to the :doc:`OpenVINO Matcher Pass article <./matcher-pass>`. Note that some examples may be intentionally simplified for ease of understanding.
Before proceeding further, it is necessary to add some imports. These imports include the operations to be used and additional utilities described in this guide.
Add the following lines to your file:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:imports]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:imports]
Pattern Creation
+++++++++++++++++++++
A pattern is a simplified model comprised of nodes aimed to be matched. It lacks some features of a model and cannot function as one.
Consider a straightforward pattern consisting of three nodes to be found in a given model.
.. image:: ./../../../assets/images/simple_pattern_example.png
Let's create the model and the pattern:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:create_simple_model_and_pattern]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:create_simple_model_and_pattern]
.. note:: This example uses testing utilities that directly compare given sequences of nodes. In reality, the process of finding a pattern within a model is more complicated. However, to focus only on patterns and their functionality, these details are intentionally omitted.
Although the code is functional, in OpenVINO, patterns are typically not created using the same nodes as those used for creating the model. Instead, wrappers are preferred, providing additional functionality.
For the given case, ``WrapType`` is used and the code looks as following:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:create_simple_model_and_pattern_wrap_type]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:create_simple_model_and_pattern_wrap_type]
1. WrapType
++++++++++++++++++++++++++++++++++++++++
``WrapType`` is a wrapper used to store one or many types to match them. As demonstrated earlier, it is possible to specify a single type in ``WrapType`` and use it for matching.
However, you can also list all possible types for a given node, for example:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:wrap_type_list]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:wrap_type_list]
Note that ``pattern_sig`` is created with the list ``["opset13.Relu", "opset13.Sigmoid"]``, meaning it can be either a ``Relu`` or a ``Sigmoid``.
This feature enables matching the same pattern against different nodes. Essentially, ``WrapType`` can represent "one of listed" types. ``WrapType`` supports specifying more than two types.
To add additional checks for your node, create a predicate by providing a function or a lambda. This function will be executed during matching, performing the additional validation specified in the logic of the function. For example, you might want to check the consumers count of a given node:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:wrap_type_predicate]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:wrap_type_predicate]
2. AnyInput
++++++++++++++++++++++++++++++++++++++++
``AnyInput`` is used when there is no need to specify a particular input for a given node.
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:any_input]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:any_input]
You can also create ``AnyInput()`` with a predicate, if you want additional checks for you input. It will look similar to ``WrapType`` with a lambda or a function. For example, to ensure that the input has a rank of 4:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:any_input_predicate]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:any_input_predicate]
3. Or
++++++++++++++++++++++++++++++++++++++++
``Or`` functions similar to ``WrapType``, however, while ``WrapType`` can only match one of the types provided in the list, ``Or`` is used to match different branches of nodes.
Suppose the goal is to match the model against two different sequences of nodes. The ``Or`` type
facilitates this by creating two different branches (``Or`` supports more than two branches), looking as follows:
.. image:: ./../../../assets/images/or_branches.png
The red branch will not match, but it will work perfectly for the blue one.
Here is how it looks in code:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:pattern_or]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:pattern_or]
Note that matching will succeed for the first matching branch and the remaining ones will not be checked.
4. Optional
++++++++++++++++++++++++++++++++++++++++
``Optional`` is a bit tricky. It allows specifying whether a node might be present or absent in the model. Under the hood,
the pattern will create two branches using ``Or``: one with the optional node present and another one without it. Here is what it would look like with the ``Optional``
unfolding into two branches:
.. image:: ./../../../assets/images/optional.png
The code for our model looks as follows:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:pattern_optional_middle]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:pattern_optional_middle]
The ``Optional`` does not necessarily have to be in the middle of the pattern. It can be a top node and a root node.
Top node:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:pattern_optional_top]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:pattern_optional_top]
Root node:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:pattern_optional_root]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:pattern_optional_root]
``Optional`` also supports adding a predicate the same way ``WrapType`` and ``AnyInput`` do:
.. doxygensnippet:: docs/snippets/ov_patterns.py
:language: python
:fragment: [ov:optional_predicate]
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
:language: cpp
:fragment: [ov:optional_predicate]

View File

@ -17,7 +17,10 @@ Squeeze
**Detailed description**: *Squeeze* can be used with or without the second input tensor.
* If only the first input is provided, every dimension that is equal to 1 will be removed from it.
* With the second input provided, each value is an index of a dimension from the first tensor that is to be removed. Specified dimension has to be equal to 1, otherwise an error will be raised. Dimension indices can be specified directly, or by negative indices (counting dimensions from the end).
* With the second input provided, each value is an index of a dimension from the first tensor that is to be removed. Specified dimension should be equal to 1, otherwise it will be ignored and copied as is.
Dimension indices can be specified directly, or by negative indices (counting dimensions from the end).
Note: Updated behavior since 2024.3, request of squeezing dimension not equal to 1 is expected to be ignored instead of causing an error.
**Attributes**: *Squeeze* operation doesn't have attributes.
@ -87,4 +90,3 @@ Squeeze
</port>
</output>
</layer>

View File

@ -16,7 +16,7 @@ GET STARTED
Install OpenVINO <get-started/install-openvino>
Additional Hardware Setup <get-started/configurations>
Troubleshooting <get-started/troubleshooting-install-config>
System Requirements <about-openvino/system-requirements>
System Requirements <./about-openvino/release-notes-openvino/system-requirements>
.. raw:: html

View File

@ -32,12 +32,16 @@ Below are the instructions on how to install the OpenCL packages on supported Li
.. tab-set::
.. tab-item:: Ubuntu 22.04 LTS
.. tab-item:: Ubuntu 22.04 LTS / Ubuntu 24.04 LTS
:sync: ubuntu-22
Download and install the `deb` packages published `here <https://github.com/intel/compute-runtime/releases/latest>`__ and install the apt package `ocl-icd-libopencl1` with the OpenCl ICD loader.
Download and install the `deb` packages published `here <https://github.com/intel/compute-runtime/releases/latest>`__
and install the apt package `ocl-icd-libopencl1` with the OpenCl ICD loader.
Alternatively, you can add the apt repository by following the `installation guide <https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps>`__. Then install the `ocl-icd-libopencl1`, `intel-opencl-icd`, `intel-level-zero-gpu` and `level-zero` apt packages:
Alternatively, you can add the apt repository by following the
`installation guide <https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps>`__.
Then install the `ocl-icd-libopencl1`, `intel-opencl-icd`, `intel-level-zero-gpu` and `level-zero`
apt packages:
.. code-block:: sh
@ -119,7 +123,7 @@ Below are the required steps to make it work with OpenVINO:
wsl --update
wsl --shutdown
- When booting Ubuntu 20.04 or Ubuntu 22.04, install the same drivers as described above in the Linux section
- When booting Ubuntu 20.04, 22.04, or 24.04 install the same drivers as described above in the Linux section
.. note::
@ -128,29 +132,6 @@ Below are the required steps to make it work with OpenVINO:
Additional Resources
####################
.. The following Intel® Graphics Driver versions were used during OpenVINO's internal validation:
.. <The table below is out of date and we do not have an updated list of drivers used for validation as of 2024.0 release date.>
.. <The table will be updated when an updated list of drivers is available>
.. +------------------+-------------------------------------------------------------------------------------------+
.. | Operation System | Driver version |
.. +==================+===========================================================================================+
.. | Ubuntu 22.04 | `22.43.24595.30 <https://github.com/intel/compute-runtime/releases/tag/22.43.24595.30>`__ |
.. +------------------+-------------------------------------------------------------------------------------------+
.. | Ubuntu 20.04 | `22.35.24055 <https://github.com/intel/compute-runtime/releases/tag/22.35.24055>`__ |
.. +------------------+-------------------------------------------------------------------------------------------+
.. | Ubuntu 18.04 | `21.38.21026 <https://github.com/intel/compute-runtime/releases/tag/21.38.21026>`__ |
.. +------------------+-------------------------------------------------------------------------------------------+
.. | CentOS 7 | `19.41.14441 <https://github.com/intel/compute-runtime/releases/tag/19.41.14441>`__ |
.. +------------------+-------------------------------------------------------------------------------------------+
.. | RHEL 8 | `22.28.23726 <https://github.com/intel/compute-runtime/releases/tag/22.28.23726>`__ |
.. +------------------+-------------------------------------------------------------------------------------------+
.. Whats Next?
.. ############
* :doc:`GPU Device <../../openvino-workflow/running-inference/inference-devices-and-modes/gpu-device>`
* :doc:`Install Intel® Distribution of OpenVINO™ toolkit from a Docker Image <../install-openvino/install-openvino-archive-linux>`
* `Docker CI framework for Intel® Distribution of OpenVINO™ toolkit <https://github.com/openvinotoolkit/docker_ci/blob/master/README.md>`__

View File

@ -4,7 +4,7 @@ Configurations for Intel® NPU with OpenVINO™
===============================================
.. meta::
:description: Learn how to provide additional configuration for Intel®
:description: Learn how to provide additional configuration for Intel®
NPU to work with the OpenVINO™ toolkit on your system.
@ -19,27 +19,27 @@ Make sure you use the most recent supported driver for your hardware setup.
The driver is maintained as open source and may be found in the following repository,
together with comprehensive information on installation and system requirements:
`github.com/intel/linux-npu-driver <https://github.com/intel/linux-npu-driver>`__
It is recommended to check for the latest version of the driver.
Make sure you use a supported OS version, as well as install make, gcc,
and Linux kernel headers. To check the NPU state, use the ``dmesg``
command in the console. A successful boot-up of the NPU should give you
a message like this one:
``[ 797.193201] [drm] Initialized intel_vpu 0.<version number> for 0000:00:0b.0 on minor 0``
The current requirement for inference on NPU is Ubuntu 22.04 with the kernel
version of 6.6 or higher.
The current requirement for inference on NPU is the minimum of Ubuntu 22.04, kernel
version of 6.6.
.. tab-item:: Windows
The Intel® NPU driver for Windows is available through Windows Update but
it may also be installed manually by downloading the
`NPU driver package <https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html>`__ and following the
it may also be installed manually by downloading the
`NPU driver package <https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html>`__ and following the
`Windows driver installation guide <https://support.microsoft.com/en-us/windows/update-drivers-manually-in-windows-ec62f46c-ff14-c91d-eead-d7126dc1f7b6>`__.
If a driver has already been installed you should be able to find
'Intel(R) NPU Accelerator' in Windows Device Manager. If you
If a driver has already been installed you should be able to find
'Intel(R) NPU Accelerator' in Windows Device Manager. If you
cannot find such a device, the NPU is most likely listed in "Other devices"
as "Multimedia Video Controller."

View File

@ -1,6 +1,4 @@
.. {#openvino_docs_install_guides_overview}
Install OpenVINO™ 2024.0
Install OpenVINO™ 2024.2
==========================
@ -36,17 +34,17 @@ Install OpenVINO™ 2024.0
.. tip::
OpenVINO 2024.0, described here, is not a Long-Term-Support version!
OpenVINO 2024.2, described here, is not a Long-Term-Support version!
All currently supported versions are:
* 2024.0 (development)
* 2024.2 (development)
* 2023.3 (LTS)
* 2022.3 (LTS)
Moreover, different OpenVINO distributions may support slightly different sets of features.
Read installation guides for particular distributions for more details.
.. dropdown:: Distribution Comparison for OpenVINO 2024.0
.. dropdown:: Distribution Comparison for OpenVINO 2024.2
=============== ========== ====== =============== ======== ============ ========== ========== ==========
Device Archives PyPI APT/YUM/ZYPPER Conda Homebrew vcpkg Conan npm
@ -56,7 +54,7 @@ Install OpenVINO™ 2024.0
NPU V\* V\* V\ * n/a n/a n/a n/a V\*
=============== ========== ====== =============== ======== ============ ========== ========== ==========
| \* **Of the Linux systems, only Ubuntu 22.04 includes drivers for NPU device.**
| \* **Of the Linux systems, versions 22.04 and 24.04 include drivers for NPU.**
| **For Windows, CPU inference on ARM64 is not supported.**
| **Build OpenVINO from source**

View File

@ -73,6 +73,13 @@ Step 1: Set Up the OpenVINO Toolkit APT Repository
.. tab-set::
.. tab-item:: Ubuntu 24
:sync: ubuntu-24
.. code-block:: sh
echo "deb https://apt.repos.intel.com/openvino/2024 ubuntu24 main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2024.list
.. tab-item:: Ubuntu 22
:sync: ubuntu-22
@ -148,7 +155,7 @@ Step 2: Install OpenVINO Runtime Using the APT Package Manager
.. code-block:: sh
sudo apt install openvino-2024.0.0
sudo apt install openvino-2024.2.0
.. note::
@ -221,7 +228,7 @@ To uninstall OpenVINO Runtime via APT, run the following command based on your n
.. code-block:: sh
sudo apt autoremove openvino-2024.0.0
sudo apt autoremove openvino-2024.2.0
What's Next?

View File

@ -1,5 +1,3 @@
.. {#openvino_docs_install_guides_installing_openvino_from_archive_linux}
Install OpenVINO™ Runtime on Linux from an Archive File
=========================================================
@ -30,6 +28,7 @@ Install OpenVINO™ Runtime on Linux from an Archive File
Ubuntu18 x86_64 V V n/a
Ubuntu20 x86_64 V V V
Ubuntu22 x86_64 V V V
Ubuntu24 x86_64 V V V
RHEL8 x86_64 V V n/a
=================== ===== ===== =====
@ -130,6 +129,16 @@ Step 1: Download and Install the OpenVINO Core Components
.. tab-set::
.. tab-item:: Ubuntu 24.04
:sync: ubuntu-24
.. code-block:: sh
curl -L https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu22_2024.1.0.15008.f4afc983258_x86_64.tgz --output openvino_2024.1.0.tgz
tar -xf openvino_2024.1.0.tgz
sudo mv l_openvino_toolkit_ubuntu24_2024.1.0.15008.f4afc983258_x86_64 /opt/intel/openvino_2024.1.0
.. tab-item:: Ubuntu 22.04
:sync: ubuntu-22

View File

@ -52,7 +52,7 @@ Installing OpenVINO Runtime with Conan Package Manager
.. code-block:: sh
[requires]
openvino/2024.1.0
openvino/2024.2.0
[generators]
CMakeDeps
CMakeToolchain

View File

@ -64,7 +64,7 @@ Installing OpenVINO Runtime with Anaconda Package Manager
.. code-block:: sh
conda install -c conda-forge openvino=2024.1.0
conda install -c conda-forge openvino=2024.2.0
Congratulations! You've just Installed OpenVINO! For some use cases you may still
need to install additional components. Check the description below, as well as the
@ -115,7 +115,7 @@ with the proper OpenVINO version number:
.. code-block:: sh
conda remove openvino=2024.1.0
conda remove openvino=2024.2.0
What's Next?
############################################################

View File

@ -128,7 +128,7 @@ Install OpenVINO Runtime
.. code-block:: sh
sudo yum install openvino-2024.0.0
sudo yum install openvino-2024.2.0
@ -199,7 +199,7 @@ To uninstall OpenVINO Runtime via YUM, run the following command based on your n
.. code-block:: sh
sudo yum autoremove openvino-2024.0.0
sudo yum autoremove openvino-2024.2.0

View File

@ -143,7 +143,7 @@ To uninstall OpenVINO Runtime via ZYPPER, run the following command based on you
.. code-block:: sh
sudo zypper remove *openvino-2024.0.0*
sudo zypper remove *openvino-2024.2.0*

View File

@ -10,14 +10,14 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
of OpenVINO™ on your system.
| This guide provides general troubleshooting steps and solutions to possible issues that
may be encountered while installing and configuring OpenVINO™. For a comprehensive
database of support topics on OpenVINO, go to:
| This article provides general troubleshooting steps and solutions to possible issues that you
may face while installing and configuring OpenVINO™. For a comprehensive database of support
topics on OpenVINO, go to:
| `Support for OpenVINO™ toolkit <https://www.intel.com/content/www/us/en/support/products/96066/software/development-software/openvino-toolkit.html>`__
.. dropdown:: Errors with Installing via PIP for Users in China
.. dropdown:: PIP for Users in China gives errors
Users in China might encounter errors while downloading sources via PIP during OpenVINO™
installation. To resolve the issues, try adding the download source using the ``-i``
@ -34,16 +34,18 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
pip install openvino-dev[tensorflow2] -i https://mirrors.aliyun.com/pypi/simple/
.. dropdown:: ImportError: cannot import name 'Core' from 'openvino'
.. dropdown:: Issues with Installing OpenVINO on Linux from Docker
This error may appear on systems lacking C++ components. Since it is almost exclusively a
Windows case, installing `Microsoft Visual C++ Redistributable [vc_redist.x64] <https://aka.ms/vs/17/release/vc_redist.x64.exe>`__
package may fix it. For more information on dependencies, check
:doc:`System Requirements <../about-openvino/release-notes-openvino/system-requirements>` and
:doc:`Additional Hardware Configurations <./configurations>`
.. _proxy-issues:
.. dropdown:: Proxy issues installing OpenVINO on Linux from Docker
Proxy Issues
++++++++++++
If you meet proxy issues during the installation with Docker, you need set up proxy settings
for Docker. See the `Docker guide <https://docs.docker.com/network/proxy/#set-proxy-using-the-cli>`__
If you face proxy issues during installation with Docker, you may need to set up proxy
settings for it. See the `Docker guide <https://docs.docker.com/network/proxy/#set-proxy-using-the-cli>`__
for more details.
.. dropdown:: Check the version of OpenVINO Runtime
@ -81,11 +83,11 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
.. dropdown:: Check if environment variables are set correctly
- For Python developers, if you previously installed OpenVINO using the archive file,
* For Python developers, if you previously installed OpenVINO using the archive file,
and are now installing OpenVINO using PIP, remove all the PATH settings and the lines with
``setupvars`` from ``.bashrc``. Note that if you installed OpenVINO with PIP in a virtual
environment, you don't need to set any environment variables.
- If you have installed OpenVINO before, you probably have added ``setupvars`` to your
* If you have installed OpenVINO before, you probably have added ``setupvars`` to your
``PATH /.bashrc`` or Windows environment variables. After restarting your environment,
you should see an information similar to the following:
@ -93,10 +95,10 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
[setupvars.sh] OpenVINO™ environment initialized
- If you don't see the information above, your PATH variables may be configured incorrectly.
* If you don't see the information above, your PATH variables may be configured incorrectly.
Check if you have typed the correct <INSTALL_DIR> or you are trying to activate in the
correct directory.
- If you added it to a ``.bashrc`` file, make sure that the command is correctly written and
* If you added it to a ``.bashrc`` file, make sure that the command is correctly written and
the file is found in the ``~/.bashrc`` folder.
.. dropdown:: Verify that OpenVINO is correctly installed

View File

@ -32,15 +32,17 @@ The table below lists the supported operating systems and Python versions.
| | (64-bit |
| | ) <https://www.python.org/>`__ |
+=====================================+================================+
| Ubuntu 18.04 LTS | 3.8, 3.9, 3.10. 3.11 |
| Ubuntu 20.04 LTS, 64-bit | 3.8, 3.9, 3.10. 3.11 |
+-------------------------------------+--------------------------------+
| Ubuntu 20.04 LTS | 3.8, 3.9, 3.10, 3.11 |
| Ubuntu 22.04 LTS, 64-bit | 3.8, 3.9, 3.10, 3.11 |
+-------------------------------------+--------------------------------+
| Red Hat Enterprise Linux 8 | 3.8, 3.9, 3.10, 3.11 |
+-------------------------------------+--------------------------------+
| macOS 12.6.x versions | 3.8, 3.9, 3.10, 3.11 |
| CentOS 7, 64 bit | 3.8, 3.9, 3.10, 3.11 |
+-------------------------------------+--------------------------------+
| Windows 10 Pro, Enterprise | 3.8, 3.9, 3.10, 3.11 |
| macOS 10.15.x versions or higher | 3.8, 3.9, 3.10, 3.11 |
+-------------------------------------+--------------------------------+
| Windows 10, 64-bit Pro, Enterprise | 3.8, 3.9, 3.10, 3.11 |
| or Education editions | |
+-------------------------------------+--------------------------------+
| Windows Server 2016 or higher | 3.8, 3.9, 3.10, 3.11 |
@ -64,6 +66,7 @@ Installing prerequisites
Run the installer by double clicking it. Follow the installation steps to set up the software.
While installing, make sure you check the box to *add Python to system PATH*.
Also, it is recommended to use the installer option to disable the PATH length limit.
.. note::
@ -81,6 +84,12 @@ Installing prerequisites
Run the installer by double clicking it. Follow the installation steps to set up the software.
4. (Optional) Install FFMPEG
Download FFMPEG binary from `here <https://ffmpeg.org/download.html>`__
Set FFMPEG's path (e.g., ``C:\ffmpeg\bin``) to the PATH environmental variable on Windows.
.. tab-item:: Linux
:sync: linux
@ -96,7 +105,7 @@ Installing prerequisites
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-venv build-essential python3-dev git-all
sudo apt-get install python3-venv build-essential python3-dev git-all libgl1-mesa-dev ffmpeg
For an Intel Integrated Graphics Card, you can install the `Intel Graphics Compute Runtime <https://github.com/intel/compute-runtime>`__ to enable inference on this device. The command for Ubuntu 20.04 is:
@ -133,7 +142,8 @@ Installing prerequisites
.. code-block:: sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After you install it, follow the instructions from the Homebrew installation to set it up.
After you install it, follow the instructions from the Homebrew installation to set it up.
3. **Install Python and dependencies**
@ -142,6 +152,8 @@ Installing prerequisites
brew install python@3.9
brew install protobuf
# optional but recommended
brew install ffmpeg
Run each step below in a terminal.
@ -250,6 +262,56 @@ Installing prerequisites
CMD /tmp/scripts/run
.. tab-item:: Amazon SageMaker
:sync: amazon-sagemaker
.. note::
An `AWS <https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin>`__
account and access to
`Amazon SageMaker Studio <https://aws.amazon.com/sagemaker/studio/>`__
are required.
1. **Log into your Amazon SageMaker Studio Environment and** ``Add user``.
|amazon-studio-1|
2. **Choose desired user profile name**
|amazon-studio-2|
3. **Choose Jupyter Lab version 3.0**
|amazon-studio-3|
4. **Choose the remaining default setting and click "Submit" to add a user.**
5. **Launch the Amazon SageMaker Studio environment.**
Click "Open Studio" to start the environment:
|amazon-studio-4|
.. note::
You are using an ``ml.t3.medium`` instance, which is for free for
250 hours per month for the first 2 months on Studio notebook.
6. **Wait for a couple of minutes for your environment to load.**
You should be able to see the following screen:
|amazon-studio-5|
7. **Select a SageMaker image.**
Choose ``Data Science 3.0`` in "Select a SageMaker image" drop-down under
"Notebooks and compute resources".
Then, click **+** on "Image Terminal" to start a terminal session:
|amazon-studio-6|
Installing notebooks
++++++++++++++++++++
@ -294,6 +356,19 @@ Installing notebooks
pip install -r requirements.txt
.. important::
In case of problems with accessing HuggingFace in PRC, set-up the networking
environment before you launch the notebooks:
.. code-block::
pip install -U huggingface_hub
set HF_ENDPOINT = https://hf-mirror.com
For more information, visit `HF-Mirror HuggingFace <https://hf-mirror.com>`__.
.. tab-item:: Linux
:sync: linux
@ -333,6 +408,18 @@ Installing notebooks
pip install -r requirements.txt
.. important::
In case of problems with accessing HuggingFace in PRC, set-up the networking
environment before you launch the notebooks:
.. code-block::
pip install -U huggingface_hub
set HF_ENDPOINT = https://hf-mirror.com
For more information, visit `HF-Mirror HuggingFace <https://hf-mirror.com>`__.
.. tab-item:: macOS
:sync: macos
@ -475,6 +562,69 @@ Installing notebooks
While running the container on Windows and macOS, only CPU devices can be used. To access the iGPU, install the notebooks locally, following the instructions above.
.. tab-item:: Amazon SageMaker
:sync: amazon-sagemaker
**Use the terminal and follow the steps below.**
|amazon-studio-7|
1. **Install few system dependencies.**
.. code-block::
apt update
apt install build-essential -y
apt install libpython3.9-dev -y
apt install libgl1-mesa-glx -y
2. **Setup OpenVINO conda environment.**
.. code-block::
conda create --name openvino_env python=3.9
conda activate openvino_env
conda install ipykernel
set PATH="/anaconda/envs/openvino_env/bin;%PATH%"
3. **Setup OpenVINO Notebooks.**
.. code-block::
git clone https://github.com/openvinotoolkit/openvino_notebooks.git
cd openvino_notebooks
# Install OpenVINO and OpenVINO notebook Requirements
python -m pip install --upgrade pip
pip install -r requirements.txt
4. **Run the Notebooks**
* To run the notebooks, click the top level "openvino_notebooks" folder
and navigate to your example:
|amazon-studio-8|
* Choose "Image" - ``Data Science 3.0``,
"Kernel" - ``Python [conda env:openvino_env],``
"Instance type"- your desired compute instance.
|amazon-studio-9|
|amazon-studio-10|
|amazon-studio-11|
.. note::
Make sure you use the ``Python [conda env:openvino_env]``
environment (not ``Python 3``).
* Next, run the cells of the notebook. You may try other notebooks to
explore OpenVINO features and examples.
Run the Notebooks
#################
@ -614,6 +764,27 @@ Additional Resources
.. |ml-studio-2| image:: https://user-images.githubusercontent.com/15709723/117582205-b6f4d580-b0b5-11eb-9b83-eb2004ad9b19.png
.. |amazon-studio-1| image:: https://user-images.githubusercontent.com/4837253/199801883-7bb64ad2-bb7f-4477-ace1-25111d4fd43c.png
.. |amazon-studio-2| image:: https://user-images.githubusercontent.com/4837253/199802173-8d65c851-604b-4b92-bafa-cae86b17d1ec.png
.. |amazon-studio-3| image:: https://user-images.githubusercontent.com/4837253/199802353-14c17233-3dae-4649-bbfe-59b8a598450c.png
.. |amazon-studio-4| image:: https://user-images.githubusercontent.com/4837253/199802726-97c85732-ff25-4cdd-ad6e-d491b4ed122b.png
.. |amazon-studio-5| image:: https://user-images.githubusercontent.com/15709723/199784252-c8581c73-342a-4c70-9207-5543d7b87346.png
.. |amazon-studio-6| image:: https://user-images.githubusercontent.com/4837253/199805717-5d102d27-e92e-4426-8d14-0484fd5ba24c.png
.. |amazon-studio-7| image:: https://user-images.githubusercontent.com/4837253/199807022-3cc5dd9e-f9f0-445d-be5e-d429dc1b752c.png
.. |amazon-studio-8| image:: https://user-images.githubusercontent.com/4837253/199810405-0f6748e1-d5f5-469e-8305-a96724dfffba.png
.. |amazon-studio-9| image:: https://user-images.githubusercontent.com/4837253/199812540-c52ea429-9d53-4bdb-aec1-a0b8616c6fcc.png
.. |amazon-studio-10| image:: https://user-images.githubusercontent.com/4837253/199812587-20c3e360-3a31-4032-b17a-8b242d6ccc26.png
.. |amazon-studio-11| image:: https://user-images.githubusercontent.com/4837253/199812713-32074aa7-8190-43c8-815c-231542c7b286.png
.. |docker-terminal-1| image:: https://user-images.githubusercontent.com/15709723/127793994-355e4d29-d131-432d-a12a-b08ca6131223.png

View File

@ -9,7 +9,7 @@ Bert Benchmark Python Sample
This sample demonstrates how to estimate performance of a Bert model using Asynchronous
Inference Request API. Unlike `demos <https://docs.openvino.ai/nightly/omz_demos.html>`__ this sample does not have
Inference Request API. Unlike `demos <https://docs.openvino.ai/2024/omz_demos.html>`__ this sample does not have
configurable command line arguments. Feel free to modify sample's source code to
try out different options.

View File

@ -264,7 +264,7 @@ You need a model that is specific for your inference task. You can get it from o
Convert the Model
--------------------
If Your model requires conversion, check the `article <https://docs.openvino.ai/2023.3/openvino_docs_../../get-started_../../get-started_demos.html>`__ for information how to do it.
If Your model requires conversion, check the `article <https://docs.openvino.ai/2024/learn-openvino/openvino-samples/get-started-demos.html>`__ for information how to do it.
.. _download-media:

View File

@ -211,6 +211,6 @@ Additional Resources
- :doc:`Get Started with Samples <get-started-demos>`
- :doc:`Using OpenVINO Samples <../openvino-samples>`
- :doc:`Convert a Model <../../documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api>`
- `API Reference <https://docs.openvino.ai/2023.2/api/api_reference.html>`__
- `API Reference <https://docs.openvino.ai/2024/api/api_reference.html>`__
- `Hello NV12 Input Classification C++ Sample on Github <https://github.com/openvinotoolkit/openvino/blob/master/samples/cpp/hello_nv12_input_classification/README.md>`__
- `Hello NV12 Input Classification C Sample on Github <https://github.com/openvinotoolkit/openvino/blob/master/samples/c/hello_nv12_input_classification/README.md>`__

View File

@ -11,7 +11,7 @@ Sync Benchmark Sample
This sample demonstrates how to estimate performance of a model using Synchronous
Inference Request API. It makes sense to use synchronous inference only in latency
oriented scenarios. Models with static input shapes are supported. Unlike
`demos <https://docs.openvino.ai/nightly/omz_demos.html>`__ this sample does not have other configurable command-line
`demos <https://docs.openvino.ai/2024/omz_demos.html>`__ this sample does not have other configurable command-line
arguments. Feel free to modify sample's source code to try out different options.
Before using the sample, refer to the following requirements:

View File

@ -9,7 +9,7 @@ Throughput Benchmark Sample
This sample demonstrates how to estimate performance of a model using Asynchronous
Inference Request API in throughput mode. Unlike `demos <https://docs.openvino.ai/nightly/omz_demos.html>`__ this sample
Inference Request API in throughput mode. Unlike `demos <https://docs.openvino.ai/2024/omz_demos.html>`__ this sample
does not have other configurable command-line arguments. Feel free to modify sample's
source code to try out different options.

View File

@ -1,5 +1,3 @@
.. {#openvino_deployment_guide}
Deploy Locally
==============
@ -43,11 +41,11 @@ The table below shows which distribution type can be used for what target operat
* - Distribution type
- Operating systems
* - Debian packages
- Ubuntu 18.04 long-term support (LTS), 64-bit; Ubuntu 20.04 long-term support (LTS), 64-bit
- Ubuntu 18.04, 20.04, 22.04, 24.04 (64-bit)
* - RPM packages
- Red Hat Enterprise Linux 8, 64-bit
* - Docker images
- Ubuntu 22.04 long-term support (LTS), 64-bit; Ubuntu 20.04 long-term support (LTS), 64-bit; Red Hat Enterprise Linux 8, 64-bit
- Ubuntu 20.04, 22.04, 24.04 (64-bit); Red Hat Enterprise Linux 8, 64-bit
* - PyPI (PIP package manager)
- See https://pypi.org/project/openvino
* - :doc:`Libraries for Local Distribution <deployment-locally/local-distribution-libraries>`

Some files were not shown because too many files have changed in this diff Show More