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

[core] Add specific tensor descriptor for Result #25954

Conversation

praasz
Copy link
Contributor

@praasz praasz commented Aug 7, 2024

Details:

  • Introduce shared tensor descriptor:

    • It has specific tensor names.
    • When specific tensor names set they will be used as tensor names otherwise the shred tensor names are used.
    • Specific tensor names will be added to shared descriptor (input descriptor), and transferred to new tensor descriptor if changed.
  • Use shared tensor descriptor for Result, which got specific tensor names.

  • Add dev API Extension interface for descriptor::Tensor for internal OV use.

  • Update ReverseShapeAndTypeInfer to use descriptor interface instead change properties directly. Update PartialShape of descriptor can change it in undefined state with Shape property.

  • Improves tensor names handling for model outputs introduced in [core] Preserve friendly name and tensor names in PPP #23713

  • Fix tensor names issue in unroll_if transformation (ticket: 114763)

Tickets:

Blocked by:

  • intel-innersource/frameworks.ai.openvino.tests#1684 - fixes e2e tests

@praasz praasz added WIP work in progress do_not_review labels Aug 7, 2024
@praasz praasz requested review from a team as code owners August 7, 2024 11:42
@praasz praasz requested review from itikhono and removed request for a team August 7, 2024 11:42
@github-actions github-actions bot added category: inference OpenVINO Runtime library - Inference category: Core OpenVINO Core (aka ngraph) category: transformations OpenVINO Runtime library - Transformations category: CPP API OpenVINO CPP API bindings labels Aug 7, 2024
@praasz praasz requested a review from t-jankowski August 7, 2024 12:49
@praasz praasz added this to the 2024.4 milestone Aug 7, 2024
@praasz praasz requested review from a team as code owners August 9, 2024 11:37
@github-actions github-actions bot added the category: MO Model Optimizer label Aug 9, 2024
@praasz praasz requested a review from a team as a code owner August 19, 2024 12:24
@github-actions github-actions bot added category: TF FE OpenVINO TensorFlow FrontEnd category: PyTorch FE OpenVINO PyTorch Frontend labels Aug 19, 2024
@mlukasze mlukasze dismissed rkazants’s stale review October 31, 2024 11:25

changes applied, please re-review

- add UnrollIf to check tensor names are not lost if body model is Parameter -> Result

Signed-off-by: Raasz, Pawel <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Nov 20, 2024
### Details:
- Enable simple `If` test for CPU plugin, Test pass as tensor names are
not checked.
- PR #25954 fixes issue with tensor names for `unroll_if` transformation
when `If` operator has got simple body like `Parameter -> Result`
 

### Tickets:
 - CVS-114763

Signed-off-by: Raasz, Pawel <[email protected]>
Copy link
Contributor

@alexsu52 alexsu52 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I confirm that this PR fixes NNCF layer-wise algorithms such as GPTQ.

NishantPrabhuFujitsu pushed a commit to NishantPrabhuFujitsu/openvino that referenced this pull request Nov 26, 2024
### Details:
- Enable simple `If` test for CPU plugin, Test pass as tensor names are
not checked.
- PR openvinotoolkit#25954 fixes issue with tensor names for `unroll_if` transformation
when `If` operator has got simple body like `Parameter -> Result`
 

### Tickets:
 - CVS-114763

Signed-off-by: Raasz, Pawel <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Nov 27, 2024
…pdate shapes, types (#27594)

### Details:
- Remove friend of `ReverseShapeAndTypeInfer` from Tensor descriptor
class
- Setting the shapes in tensor descriptor directly not using the Tensor
API can create risk e.g. PartialShape and Shape of Tensor descriptor
will not be sync correctly.

### Related PR:
- #25954 

### Tickets:
 - CVS-146649

---------

Signed-off-by: Raasz, Pawel <[email protected]>
Signed-off-by: Pawel Raasz <[email protected]>
@github-actions github-actions bot removed the category: CPU OpenVINO CPU plugin label Nov 27, 2024
@mlukasze mlukasze enabled auto-merge December 12, 2024 14:11
@mlukasze mlukasze added this pull request to the merge queue Dec 12, 2024
auto-merge was automatically disabled December 12, 2024 15:37

Pull Request is not mergeable

Merged via the queue into openvinotoolkit:master with commit 8d6491b Dec 12, 2024
174 of 176 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Dec 13, 2024
### Details:
- For models with `version > 10` the node's friendly name and tensor's
names will be not moved from original node. If conversion node added by
PPP or convert precision then new friendly name will be created based on
previous node. The new node name will have format
`[previous_node_name].[port_number]`.
- Align `ConvertPrecision` transformation to with PPP
- The issue with lost tensor names when set them on model's
inputss/outputs has been solved in #25954
- For model version 10 the old behavior is preserved as legacy
compatibility mode

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

### Depends on:
- #25954 - implements tensor names handling for model outputs (should be
used here)

---------

Signed-off-by: Raasz, Pawel <[email protected]>
Co-authored-by: Michal Lukaszewski <[email protected]>
Co-authored-by: Anastasia Kuporosova <[email protected]>
11happy pushed a commit to 11happy/openvino that referenced this pull request Dec 23, 2024
### Details:
 - Introduce shared tensor descriptor:
   - It has specific tensor names.
- When specific tensor names set they will be used as tensor names
otherwise the shred tensor names are used.
- Specific tensor names will be added to shared descriptor (input
descriptor), and transferred to new tensor descriptor if changed.
   
- Use shared tensor descriptor for Result, which got specific tensor
names.
- Add dev API Extension interface for descriptor::Tensor for internal OV
use.
- Update `ReverseShapeAndTypeInfer` to use descriptor interface instead
change properties directly. Update `PartialShape` of descriptor can
change it in undefined state with `Shape` property.
 - Improves tensor names handling for model outputs introduced in openvinotoolkit#23713
 - Fix tensor names issue in `unroll_if` transformation (ticket: 114763)

### Tickets:
 - CVS-143105
 - CVS-146649
 - CVS-114763

### Blocked  by:
- intel-innersource/frameworks.ai.openvino.tests#1684 - fixes e2e tests

---------

Signed-off-by: Raasz, Pawel <[email protected]>
11happy pushed a commit to 11happy/openvino that referenced this pull request Dec 23, 2024
…t#23713)

### Details:
- For models with `version > 10` the node's friendly name and tensor's
names will be not moved from original node. If conversion node added by
PPP or convert precision then new friendly name will be created based on
previous node. The new node name will have format
`[previous_node_name].[port_number]`.
- Align `ConvertPrecision` transformation to with PPP
- The issue with lost tensor names when set them on model's
inputss/outputs has been solved in openvinotoolkit#25954
- For model version 10 the old behavior is preserved as legacy
compatibility mode

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

### Depends on:
- openvinotoolkit#25954 - implements tensor names handling for model outputs (should be
used here)

---------

Signed-off-by: Raasz, Pawel <[email protected]>
Co-authored-by: Michal Lukaszewski <[email protected]>
Co-authored-by: Anastasia Kuporosova <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Core OpenVINO Core (aka ngraph) category: CPP API OpenVINO CPP API bindings category: inference OpenVINO Runtime library - Inference category: JAX FE OpenVINO JAX FrontEnd category: PyTorch FE OpenVINO PyTorch Frontend category: TF FE OpenVINO TensorFlow FrontEnd category: transformations OpenVINO Runtime library - Transformations
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants