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

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

Open
eshoguli opened this issue May 8, 2024 · 12 comments · May be fixed by #28494
Open

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

eshoguli opened this issue May 8, 2024 · 12 comments · May be fixed by #28494
Assignees
Labels
category: CPU OpenVINO CPU plugin good first issue Good for newcomers no_stale Do not mark as stale platform: arm OpenVINO on ARM / ARM64

Comments

@eshoguli
Copy link
Contributor

eshoguli commented May 8, 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

@dmitry-gorokhov, @a-sidorova

Ticket

CVS-140689

@eshoguli eshoguli added good first issue Good for newcomers no_stale Do not mark as stale labels May 8, 2024
@github-project-automation github-project-automation bot moved this to Contributors Needed in Good first issues May 8, 2024
@eshoguli eshoguli added category: CPU OpenVINO CPU plugin platform: arm OpenVINO on ARM / ARM64 labels May 8, 2024
@eshoguli eshoguli changed the title [Good First Issue] [ARM]: Implement CPU plugin just-in-time emitter for SoftSign operation [Good First Issue] [ARM]: Implement CPU plugin just-in-time emitter for Less operation May 8, 2024
@jvr0123
Copy link
Contributor

jvr0123 commented Jun 16, 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 Jun 17, 2024
jvr0123 added a commit to jvr0123/openvino that referenced this issue Jun 17, 2024
Added support and unit test for Less jit emitter
@dmitry-gorokhov dmitry-gorokhov moved this from Assigned to In Review in Good first issues Jul 9, 2024
@mlukasze mlukasze moved this from In Review to Contributors Needed in Good first issues Oct 11, 2024
@nashez
Copy link
Contributor

nashez commented Oct 14, 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 Oct 15, 2024
nashez added a commit to nashez/openvino that referenced this issue Oct 19, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 19, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 21, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 23, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
nashez added a commit to nashez/openvino that referenced this issue Oct 27, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
@mlukasze mlukasze moved this from Assigned to In Review in Good first issues Nov 6, 2024
nashez added a commit to nashez/openvino that referenced this issue Nov 21, 2024
* Added a jit_less_emitter derived class in
  aarch64/jit_eltwise_emitters
* Created entry Algorithm::EltwiseLess in the
  get_supported_precisions in nodes/kernels/aarch64
* Add the EltwiseLess entry in the aarch64
  executors supported algorithms

Closes: openvinotoolkit#24415

Signed-off-by: Nashez Zubair <[email protected]>
@a-sidorova a-sidorova moved this from In Review to Contributors Needed in Good first issues Jan 7, 2025
@a-sidorova
Copy link
Contributor

Moved to `Contributors needed" due to no activity of the current assignee and closed the PR.

@srinjoydutta03
Copy link

srinjoydutta03 commented Jan 9, 2025

Hi @a-sidorova, I'm new to open-source development and excited to learn and contribute. Could you please assign this issue to me? Thank you!

@a-sidorova
Copy link
Contributor

Hi @a-sidorova, I'm new to open-source development and excited to learn and contribute. Could you please assign this issue to me? Thank you!

@srinjoydutta03 sure! Have a fun! 😊 If you have any specific questions, please feel free to ask them.

@a-sidorova a-sidorova moved this from Contributors Needed to Assigned in Good first issues Jan 10, 2025
@a-sidorova
Copy link
Contributor

@srinjoydutta03 Hi! How is it going? Could you tell us please if you need help with something? 😊

@srinjoydutta03
Copy link

Hi, I am sorry for the delay, I have almost finished the implementation. I will raise the PR today.

@a-sidorova
Copy link
Contributor

Hi, I am sorry for the delay, I have almost finished the implementation. I will raise the PR today.

Thank you for the update! Don't worry, everything's fine - I just checked to see if you needed any help with the task. Take your time 😊

@srinjoydutta03
Copy link

Thank you for the update! Don't worry, everything's fine - I just checked to see if you needed any help with the task. Take your time 😊

I had a question. Im confused on how can i verify my implementation locally, will running the gtest help?

@a-sidorova
Copy link
Contributor

Thank you for the update! Don't worry, everything's fine - I just checked to see if you needed any help with the task. Take your time 😊

I had a question. Im confused on how can i verify my implementation locally, will running the gtest help?

Firstly, you need to build OpenVINO with tests using the cmake key -DENABLE_TESTS=ON. By default, the tests are not built. There will be file ./bin/aarch64/[build_type]/ov_cpu_func_tests.
Then, you need to launch the tests with gtest filter:

./bin/aarch64/[build_type]/ov_cpu_func_tests --gtest_filter='*smoke*ComparisonLayerTest*Less*'

@a-sidorova a-sidorova moved this from Assigned to In Review in Good first issues Jan 17, 2025
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 platform: arm OpenVINO on ARM / ARM64
Projects
Status: In Review
5 participants