Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RISCV64] [GSoC] Integrate SHL eltwise ops into OV #214

Closed
wants to merge 286 commits into from

Conversation

BHbean
Copy link
Collaborator

@BHbean BHbean commented Jul 4, 2024

Details:

  • integrate eltwise ops: Add, Sub, Mul, Div, Maximum, Minimum, Exp, ReLu, LeakyReLu and PReLu

Tickets:

  • N/A

ilya-lavrenov and others added 30 commits June 27, 2024 23:50
### Details:
- Regression after
openvinotoolkit#25069
- With `function` some vars are bounded to its scope, while they are
required for functions below
…t#25223)

### Details:
Branch, Capture, Skip pass::patterns are outdated and not really applied
in the project

### Tickets:
N/A
…penvinotoolkit#25100)

### Details:
- *Add specification for EmbeddingBagOffsets-15 and
EmbeddingBagPacked-15*
- *Remove dead links and improve specification of
EmbeddingBagOffsetsSum-3 and EmbeddingBagPackedSum-3*

### Tickets:
 - *141862*
 - *141863*
…kit#25266)

### Details:
 - Expand `opset13.constant` to support more custom OV float8 types

### Tickets:
 - CVS-145378
### Details:
 - Default initialize m_name member variable

### Tickets:
 - [*CVS-145084*](https://jira.devtools.intel.com/browse/CVS-145084)
…FC (openvinotoolkit#25232)

Disallow usage of FP32 input with compressed weights and zero point on
FC layer, since it's currently not supported

### Details:
- Disallow usage of FP32 input with compressed weights and zero point on
FC layer

### Tickets:
 - 138360
### Details:
 - Coverity fix

### Tickets:
 - CVS-145053
### Details:
 - add compile_tool
 - add single-image-test
 - tools support standalone build
 - tools are installed in npu_internal cpack target 

### Tickets:
 - E-124825

---------

Co-authored-by: Alina Kladieva <[email protected]>
### Details:
- Identified an issue where enabling the oneAPI environment during the
compilation of OpenVINO from source code on Linux causes the compilation
to fail.
- This issue seems to occur due to conflicts between the oneAPI
environment and the OpenVINO build process.
- To address this, I have added a warning in the building document
advising users to disable the oneAPI environment during the build
process.
- This change will help users avoid compilation failures and ensure a
smoother build process.
- I have tested the build process with the oneAPI environment disabled
and confirmed that the compilation completes successfully.

---------

Co-authored-by: Tatiana Savina <[email protected]>
**Details:** Correct creation of numpy dtypes dictionary. `dtypes` looks
not accessible for some numpy versions. And it leads to error:
AttributeError: module 'numpy' has no attribute 'dtypes'. Example:
https://github.com/openvinotoolkit/openvino/actions/runs/9709509944/job/26799144381#step:25:12135

So I simplify creation of types mapping and checking.

**Ticket:** TBD

---------

Signed-off-by: Kazantsev, Roman <[email protected]>
### Details:
- Stable Diffusion in dpas has bad first inference latency because all
onednn convolutions are compiled at first inference. We can resolve this
bottleneck with shape agnostic kernel. Target kernel is
convolution_fsv16_1x1


### Tickets:
 - *143317*

---------

Signed-off-by: hyunback <[email protected]>
…vinotoolkit#25268)

**Details:** Fix leftovers for Keras LSTM fusion transformation
openvinotoolkit#25170

**Tickets:** TBD

Signed-off-by: Kazantsev, Roman <[email protected]>
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
…25086)

### Details:
- In primitive_inst.cpp when skippable node which is optimized out, is
returned at realloc_if_needed(), output memory layout should be changed.
- So it needs to adjust in respective primitive_inst (for this case,
Reorder)

### Tickets:
 - 143848
…it#25208)

### Details:
- Update attention mask expected shape, allow for broadcast (aligned
with shape_infer, decomposition, and CPU plugin)
 - Fix existing batch broadcast example
 - Update `scale` input shape info (allow for single element 1D tensor)
 - related PRs: 
  openvinotoolkit#24745
 openvinotoolkit#25213
 

### Tickets:
 - 143009
### Details:
 - Fix bunch of Coverity issues in core module.

### Continuation of PR
- openvinotoolkit#24246  

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

---------

Co-authored-by: vurusovs <[email protected]>
Co-authored-by: Michal Lukaszewski <[email protected]>
… input broadcast (openvinotoolkit#25213)

### Details:
- More ScaledDotProductAttention tests to cover attention mask input
broadcast
 - related PRs: 
 openvinotoolkit#24745
 openvinotoolkit#25213
 

### Tickets:
 - 143009
### Details:
 - fix loop operator when parameter is int32 instead int64
- fix for situation when on end of graph is shape calculated, and
calculation makes stack overflow

### Tickets:
 - 140412

---------

Co-authored-by: Pavel Durandin <[email protected]>
### Details:
 - *need to fix gha*


### Tickets:
 - *ticket-id*
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
### Details:
-
*openvinotoolkit#16500 (comment)
- *add test case for conv dconv fullconnect matmul mvn pad pooling
subgraph softmax*

### Tickets:
 - *CVS-110112*

---------

Signed-off-by: HU Yuan2 <[email protected]>
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
### Details:
 - Each error msg concerned the 'compiledModelSync' method. 
- A new parameter with method name was added to
`get_parameters_error_msg`

---------

Co-authored-by: Vishniakov Nikolai <[email protected]>
### Details:
 - *tool - specific substitutions moved to config*
…notoolkit#24633)

### Details:
- Improved LLMs latency for models with BF16 weights (by extending
compressed IP kernel on BF16 data type)
- Improved compilation time for models with BF16 weights on avx2 systems
(enabled jit reorder for BF16 data type)

OneDNN fork PR: openvinotoolkit/oneDNN#250

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

---------

Co-authored-by: Maksim Kutakov <[email protected]>
…oolkit#25064)

### Details:
- *Some PyTorch models may have `dicts`, `lists`, `tuples` as inputs. We
unpack them on `normalize` step in PT FE, but this means that those
unpacked inputs do not exist before conversion and `convert_model` can't
set shapes/types for them. This PR adds ability for `convert_model` to
set shapes/types to any arbitrary input obtained by index or name.*

### Tickets:
 - *CVS-142939*
### Details:
- Added SDPA impl based on microkernels using internal onednn API and
related infra
 - Current limitations:
- fused transpose shouldn't change order of innermost dim (head size).
   - is_causal = true is not supported
   - fp16 only
   - num heads dimension must be static
   - no indirect kv support
- Initial version of KV Cache + SDPA func test
- Enabled Transpose+SDPA fusion for static shape too

### Tickets:
 - CVS-141761
… /src/bindings/python (openvinotoolkit#25300)

Updates the requirements on
[flake8-comprehensions](https://github.com/adamchainz/flake8-comprehensions)
to permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/adamchainz/flake8-comprehensions/blob/main/CHANGELOG.rst">flake8-comprehensions's
changelog</a>.</em></p>
<blockquote>
<h2>3.15.0 (2024-06-29)</h2>
<ul>
<li>
<p>Add rule C420 to check for dict comprehensions with constant values,
encouraging replacement with <code>dict.fromkeys()</code>.</p>
<p>Thanks to Tom Kuson in <code>PR
[openvinotoolkit#553](adamchainz/flake8-comprehensions#553)
&lt;https://github.com/adamchainz/flake8-comprehensions/pull/553&gt;</code>__.</p>
</li>
</ul>
<h2>3.14.0 (2023-07-10)</h2>
<ul>
<li>Drop Python 3.7 support.</li>
</ul>
<h2>3.13.0 (2023-06-15)</h2>
<ul>
<li>Support Python 3.12.</li>
</ul>
<h2>3.12.0 (2023-04-13)</h2>
<ul>
<li>
<p>Add rule C418 to check for calls passing a dict literal or dict
comprehension to <code>dict()</code>.</p>
</li>
<li>
<p>Add rule C419 to check for calls passing a list comprehension to
<code>any()</code>/<code>all()</code>.</p>
</li>
</ul>
<h2>3.11.1 (2023-03-21)</h2>
<ul>
<li>
<p>Fix false positives in C406 “unnecessary dict literal”.</p>
<p>Fixes <code>Issue
[openvinotoolkit#260](adamchainz/flake8-comprehensions#260)
&lt;https://github.com/adamchainz/flake8-comprehensions/issues/260&gt;</code>__.</p>
</li>
</ul>
<h2>3.11.0 (2023-03-18)</h2>
<ul>
<li>
<p>Expand C416 to <code>dict</code> comprehensions.</p>
<p>Thanks to Aaron Gokaslan in <code>PR
[openvinotoolkit#490](adamchainz/flake8-comprehensions#490)
&lt;https://github.com/adamchainz/flake8-comprehensions/pull/490&gt;</code>__.</p>
</li>
</ul>
<h2>3.10.1 (2022-10-29)</h2>
<ul>
<li>
<p>Fix false positive in rules C402 and C404 for <code>dict()</code>
calls with keyword arguments.</p>
<p>Thanks to Anders Kaseorg for the report in <code>Issue
[openvinotoolkit#457](adamchainz/flake8-comprehensions#457)
&lt;https://github.com/adamchainz/flake8-comprehensions/issues/457&gt;</code>__.</p>
</li>
</ul>
<h2>3.10.0 (2022-05-19)</h2>
<ul>
<li>Add rule C417 which recommends rewriting use of <code>map()</code>
with <code>lambda</code> to an equivalent generator expression or
comprehension.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/b348af1c22e8ef34e2fd9b501918b4f45002db20"><code>b348af1</code></a>
Version 3.15.0</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/1ae816f430a668ee527d1fd240640cff291b84cb"><code>1ae816f</code></a>
Add rule for dict comprehensions with constant values (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/553">#553</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/226a7e0e58b231d8ae47080a4459172b9a29b708"><code>226a7e0</code></a>
Improve MyPy configuration</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/a562c757802890635d0723dfc312be496f2c978b"><code>a562c75</code></a>
Tidy pyproject.toml readme and license fields</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/e609dea5202dd0663a996c11883da7723f69e9c8"><code>e609dea</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/579">#579</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/9506eef08eca053bbca03fd8d2eef54b6caff5ec"><code>9506eef</code></a>
Upgrade requirements (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/578">#578</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/353b7b5f4571ac620fd2db62680cffccc219a2d9"><code>353b7b5</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/577">#577</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/419907c69778ad9e3c5fedb1a3e6700a9584a680"><code>419907c</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/576">#576</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/75cf66dc88b690941fac2c1a4e5255d1343a2c87"><code>75cf66d</code></a>
Upgrade requirements (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/575">#575</a>)</li>
<li><a
href="https://github.com/adamchainz/flake8-comprehensions/commit/b0dd1652ec50fb9e2b50b69aece0f85fd547894a"><code>b0dd165</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/adamchainz/flake8-comprehensions/issues/574">#574</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/adamchainz/flake8-comprehensions/compare/1.0.0...3.15.0">compare
view</a></li>
</ul>
</details>
<br />


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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[RISCV64] add shlExecutor option for eltwise node

[RISCV64] fix some errors with eltwise executor

[RISCV64] add constructor def and vector initialization for ShlTensor

[RISCV64] remove redundant debug print

[RISCV64] skip failed tests

[RISCV64] change way of invoking kernels

[RISCV64] set shapes for ShlTensor before SHL add

[RISCV64] simplify eltwise kernel invocation

[RISCV64] integrate other eltwise ops

[RISCV64] fix tests for some eltwise and activation ops

[RISCV64] integrate PRelu and LeakyRelu op and fix related tests

[RISCV64] integrate Maximum and Minimum op for the need of some tests

[RISCV64] fix some tests

[RISCV64] fix inaccurate problem with LeakyReLu op

[RISCV64] fix some tests

[RISCV64] enable debugging for riscv64

[RISCV64] update due to API changes
@a-sidorova
Copy link
Owner

The PR to the openvino repository: openvinotoolkit#25674

@a-sidorova a-sidorova closed this Jul 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment