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 LogicalOr operation #27504

Open
a-sidorova opened this issue Nov 11, 2024 · 4 comments
Assignees
Labels
category: CPU OpenVINO CPU plugin good first issue Good for newcomers platform: arm OpenVINO on ARM / ARM64

Comments

@a-sidorova
Copy link
Contributor

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 developed 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 GoogleTest filter:

./bin/[platform]/[build_type]/ov_cpu_func_tests --gtest_filter="*smoke*Logical*LogicalOr*"

Example Pull Requests

Resources

Contact points

@a-sidorova, @dmitry-gorokhov

@a-sidorova a-sidorova added good first issue Good for newcomers category: CPU OpenVINO CPU plugin platform: arm OpenVINO on ARM / ARM64 labels Nov 11, 2024
@github-project-automation github-project-automation bot moved this to Contributors Needed in Good first issues Nov 11, 2024
@Aryan8912
Copy link
Contributor

Is there a preferred way of handling fp32 logical operations in JIT emitters?

@a-sidorova
Copy link
Contributor Author

@Aryan8912 logical operations performs element-wise logical operation with two given tensors. Since JIT emitters work with registers, we should perform this operation with two vector registers.
I think we can use instruction for bitwise or as it's done in the mentioned PR with implemented JIT emitter for LogicalXor. Please take a look at the PR #26846.

If I misunderstood your question, please let me know 😃

@shivam5522
Copy link

Hey! Can I work on this? I might need some help, but pretty interested in contributing to this project.

@dmitry-gorokhov
Copy link
Contributor

@shivam5522 Sure! It is all yours :) Assigned to you.

@dmitry-gorokhov dmitry-gorokhov moved this from Contributors Needed to Assigned in Good first issues Nov 19, 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 platform: arm OpenVINO on ARM / ARM64
Projects
Status: Assigned
Development

No branches or pull requests

4 participants