Skip to content

[Good First Issue] [ARM]: Implement CPU plugin just-in-time emitter for Sqrt operation #24446

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

Closed
eshoguli opened this issue May 9, 2024 · 11 comments · Fixed by #27023
Closed
Assignees
Labels
category: CPU OpenVINO CPU plugin good first issue Good for newcomers no_stale Do not mark as stale
Milestone

Comments

@eshoguli
Copy link
Contributor

eshoguli commented May 9, 2024

Context

JIT Emitters are part of code generation feature (a.k.a. tensor compiler) that automatically produces highly-efficient optimized fused subgraph binary code. Each emitter implements specific operation from low level OpenVINO dialect.

Prerequisites

Recommended to use ARM CPU based platform for development (e.g. Mac, Raspberry Pi etc). Emulators (e.g. QEMU) is still an option, but not that convenient, especially for final performance evaluation.

What needs to be done?

Before emitter implementation, please, modify tests to be sure that deveoped functionality is covered by test:

Tests

Tests are disabled in default build, so ensure to add -DENABLE_TESTS=ON into cmake command.

GoogleTest is used for testing. CPU functional test target is ov_cpu_func_tests. You can use two GoogleTest filters for element-wise and activation operations:

  • for element-wise operations:
./bin/[platform]/[build_type]/ov_cpu_func_tests --gtest_filter="*smoke*Eltwise*"
  • for activations:
./bin/[platform]/[build_type]/ov_cpu_func_tests --gtest_filter="*smoke*Activation*"

Example Pull Requests

Resources

Contact points

@eshoguli, @dmitry-gorokhov

Ticket

CVS-140845

@eshoguli eshoguli added good first issue Good for newcomers no_stale Do not mark as stale labels May 9, 2024
@github-project-automation github-project-automation bot moved this to Contributors Needed in Good first issues May 9, 2024
@stibrew
Copy link

stibrew commented May 30, 2024

.take

Copy link
Contributor

Thank you for looking into this issue! Please let us know if you have any questions or require any help.

@dmitry-gorokhov dmitry-gorokhov added the category: CPU OpenVINO CPU plugin label May 30, 2024
@dmitry-gorokhov dmitry-gorokhov moved this from Contributors Needed to Assigned in Good first issues May 30, 2024
@dmitry-gorokhov
Copy link

dmitry-gorokhov commented Jul 12, 2024

Hi @stibrew. Do you have any updates on the progress? Any help needed from our side?

@stibrew
Copy link

stibrew commented Jul 12, 2024

Hi @dmitry-gorokhov
Its on my ToDo list and I expect to either complete it within this week or unassign myself from it in case the priority requires quicker completion.
Does that work?

@dmitry-gorokhov
Copy link

@stibrew There is no rush at all. So take your time :)

@mlukasze mlukasze moved this from Assigned to Contributors Needed in Good first issues Sep 18, 2024
@nashez
Copy link
Contributor

nashez commented Sep 27, 2024

@mlukasze Can I take this up?

@mlukasze
Copy link
Contributor

sure :)

@nashez
Copy link
Contributor

nashez commented Sep 27, 2024

.take

Copy link
Contributor

Thank you for looking into this issue! Please let us know if you have any questions or require any help.

@mlukasze mlukasze moved this from Contributors Needed to Assigned in Good first issues Sep 30, 2024
nashez added a commit to nashez/openvino that referenced this issue Oct 13, 2024
* Added a jit_sqrt_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseSqrt in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseSqrt entry in the aarch64
  executors supported algorithms
* Add the ActivationType::Sqrt in the getPrimitiveType
  in activations

Closes: openvinotoolkit#24446

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 14, 2024
* Added a jit_sqrt_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseSqrt in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseSqrt entry in the aarch64
  executors supported algorithms
* Add the ActivationType::Sqrt in the getPrimitiveType
  in activations
* Fix an unnecessary exp emitter in SoftSign included in
  the previous PR

Closes: openvinotoolkit#24446

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 14, 2024
* Added a jit_sqrt_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseSqrt in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseSqrt entry in the aarch64
  executors supported algorithms
* Add the ActivationType::Sqrt in the getPrimitiveType
  in activations
* Fix an unnecessary exp emitter in SoftSign included in
  the previous PR

Closes: openvinotoolkit#24446

Signed-off-by: Nashez Zubair <[email protected]>
@nashez
Copy link
Contributor

nashez commented Oct 15, 2024

@dmitry-gorokhov Can you link my Sqrt PR to this issue?

@mlukasze mlukasze linked a pull request Oct 15, 2024 that will close this issue
@mlukasze
Copy link
Contributor

linked

nashez added a commit to nashez/openvino that referenced this issue Oct 15, 2024
* Added a jit_sqrt_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseSqrt in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseSqrt entry in the aarch64
  executors supported algorithms
* Add the ActivationType::Sqrt in the getPrimitiveType
  in activations
* Fix an unnecessary exp emitter in SoftSign included in
  the previous PR

Closes: openvinotoolkit#24446

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 16, 2024
* Added a jit_sqrt_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseSqrt in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseSqrt entry in the aarch64
  executors supported algorithms
* Add the ActivationType::Sqrt in the getPrimitiveType
  in activations
* Fix an unnecessary exp emitter in SoftSign included in
  the previous PR

Closes: openvinotoolkit#24446

Signed-off-by: Nashez Zubair <[email protected]>
github-merge-queue bot pushed a commit that referenced this issue Oct 16, 2024
### Details:
- Added a jit_sqrt_emitter derived class in aarch64/jit_eltwise_emitters
- Created entry Algorithm::EltwiseSqrt in the get_supported_precisions
in nodes/kernels/aarch64
- Add the EltwiseSqrt entry in the aarch64 executors supported
algorithms
- Add the ActivationType::Sqrt in the getPrimitiveType in activations

### Tickets:
 - #24446

Signed-off-by: Nashez Zubair <[email protected]>
@github-project-automation github-project-automation bot moved this from In Review to Closed in Good first issues Oct 16, 2024
@mlukasze mlukasze added this to the 2024.5 milestone Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: CPU OpenVINO CPU plugin good first issue Good for newcomers no_stale Do not mark as stale
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

5 participants