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

[CPU][ARM] JIT Ceiling Operation #27527

Merged
merged 19 commits into from
Nov 22, 2024

Conversation

xyz-harshal
Copy link
Contributor

Details:

  • Added JIT emitter for Eltwise Ceiling operation on ARM64 SIMD
  • Implemented fp32 optimization replacing C++ Math implementation
  • Modified ARM64 executor to support new JIT emitter
  • Updated kernel files to include Ceiling in Eltwise operations
  • Added test coverage for JIT implementation verification
  • Transitioned operation type from Math to Eltwise for better performance

Tickets:

added a jit emitter for Eltwise Ceiling ops for ARM
Created a fp32 Ceiling operation JIT emitter for ARM64 SIMD platform
Modified file such as ARM64 Executor and Kernel
Completed Minor tasks
@xyz-harshal xyz-harshal requested review from a team as code owners November 12, 2024 20:38
@github-actions github-actions bot added the category: CPU OpenVINO CPU plugin label Nov 12, 2024
@sys-openvino-ci sys-openvino-ci added the ExternalPR External contributor label Nov 12, 2024
@xyz-harshal xyz-harshal changed the title [CPU][ARM] JIT Ceiling Operation #27498 [CPU][ARM] JIT Ceiling Operation Nov 12, 2024
@ilya-lavrenov ilya-lavrenov added the platform: arm OpenVINO on ARM / ARM64 label Nov 13, 2024
@xyz-harshal
Copy link
Contributor Author

xyz-harshal commented Nov 20, 2024

image

This instance passes all the test locally

The image mentioned above shows that all the test have passed.

Description

I actually forgot to add a line in the eltwise.cpp

Hopefully all the test cases on github should pass!

Reviewers

@a-sidorova , @ilya-lavrenov , @dmitry-gorokhov - Please review the changes made in this PR.

Thank you!

@a-sidorova
Copy link
Contributor

@xyz-harshal Hi! Thanks a lot for the contribution!

I observe some failed tests:

[ RUN      ] smoke_Activation4D_Snippets_CPU/ActivationLayerCPUTest.CompareWithRefs/Ceiling_TS=(2.17.5.4)_AS=()_ConstantsValue=()_netPRC=f32_inPRC=f32_outPRC=f32__inFmts=nhwc_outFmts=nhwc_enforceSnippets=1

MEM_USAGE=2253716KB
src/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp:97: Failure
Exception from src/inference/src/cpp/core.cpp:104:
Exception from src/inference/src/dev/plugin.cpp:53:
Check 'jitter != jitters.end()' failed at src/common/snippets/src/lowered/target_machine.cpp:19:
Supported precisions set is not available for Ceiling operation.



[  FAILED  ] smoke_Activation4D_Snippets_CPU/ActivationLayerCPUTest.CompareWithRefs/Ceiling_TS=(2.17.5.4)_AS=()_ConstantsValue=()_netPRC=f32_inPRC=f32_outPRC=f32__inFmts=nhwc_outFmts=nhwc_enforceSnippets=1, where GetParam() = ({ ({}, { { 2, 17, 5, 4 } }) }, {}, (29, {}), f32, f32, f32, ({ 7 }, { 7 }, {}, ""), true) (29 ms)

Could you please remove your addition of Ceiling to activationTypesSnippets there? Ceiling op is not supported by Snippets for now, so no need to add this op to the validation list of types for Snippets.

@xyz-harshal
Copy link
Contributor Author

Hi @a-sidorova i have made changes in the file as you said.
Can you start the CI?

@a-sidorova
Copy link
Contributor

build_jenkins

@a-sidorova
Copy link
Contributor

build_jenkins

@a-sidorova
Copy link
Contributor

build_jenkins

Copy link
Contributor

@a-sidorova a-sidorova left a comment

Choose a reason for hiding this comment

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

@xyz-harshal Thank you for the contribution! 👍🏼

@dmitry-gorokhov dmitry-gorokhov added this pull request to the merge queue Nov 22, 2024
Merged via the queue into openvinotoolkit:master with commit 91a5518 Nov 22, 2024
166 checks passed
@mlukasze mlukasze added this to the 2025.0 milestone Nov 22, 2024
NishantPrabhuFujitsu pushed a commit to NishantPrabhuFujitsu/openvino that referenced this pull request Nov 26, 2024
### Details:
 - Added JIT emitter for Eltwise Ceiling operation on ARM64 SIMD
 - Implemented fp32 optimization replacing C++ Math implementation
 - Modified ARM64 executor to support new JIT emitter
 - Updated kernel files to include Ceiling in Eltwise operations
 - Added test coverage for JIT implementation verification
- Transitioned operation type from Math to Eltwise for better
performance

### Tickets:
 - openvinotoolkit#27498
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: CPU OpenVINO CPU plugin ExternalPR External contributor platform: arm OpenVINO on ARM / ARM64
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Good First Issue] [ARM]: Implement CPU plugin just-in-time emitter for Ceiling operation
6 participants