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][ARM64] Add a JIT emitter for SoftPlus operation #27147

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nashez
Copy link
Contributor

@nashez nashez commented Oct 20, 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:

@nashez nashez requested review from a team as code owners October 20, 2024 07:06
@github-actions github-actions bot added the category: CPU OpenVINO CPU plugin label Oct 20, 2024
@sys-openvino-ci sys-openvino-ci added the ExternalPR External contributor label Oct 20, 2024
@nashez
Copy link
Contributor Author

nashez commented Oct 20, 2024

@dmitry-gorokhov @eshoguli I don't see an entry for Eltwise::SoftPlus in the enum class Algorithm.
Also have some questions about the implementation. I don't see a log instruction in the ARM ISA, and am thinking to use Taylor's expansion for the same. Do you guys have any other approaches for me to consider?

@dmitry-gorokhov
Copy link
Contributor

@nashez SoftPlus is not enabled as Eltwise algorithm yet, so you need to extend it. Please see how it was done for Floor op: #24041

@dmitry-gorokhov
Copy link
Contributor

@nashez As for log algorithm, Please refer to oneDNN impl: https://github.com/oneapi-src/oneDNN/blob/main/src/cpu/aarch64/injectors/jit_uni_eltwise_injector.cpp#L915. It is implemented using SVE, so I would suggest to write our own NEON code but with the same math underneath

@ilya-lavrenov ilya-lavrenov added the platform: arm OpenVINO on ARM / ARM64 label Oct 31, 2024
Copy link
Contributor

This PR will be closed in a week because of 2 weeks of no activity.

@github-actions github-actions bot added the Stale label Nov 24, 2024
@nashez
Copy link
Contributor Author

nashez commented Nov 24, 2024

Resuming work on this while I await a resolution to the less than PR #27144

@nashez nashez force-pushed the nashez/jit_softplus_emitter branch from a09bec7 to c812fc3 Compare November 24, 2024 09:43
@github-actions github-actions bot removed the Stale label Nov 25, 2024
@nashez nashez force-pushed the nashez/jit_softplus_emitter branch from c812fc3 to d6ed1f4 Compare November 26, 2024 05:57
Copy link
Contributor

This PR will be closed in a week because of 2 weeks of no activity.

@github-actions github-actions bot added the Stale label Dec 11, 2024
@mg-intel mg-intel removed the Stale label Dec 12, 2024
@dmitry-gorokhov
Copy link
Contributor

Hi @nashez! How is it going? Any help needed form OpenVINO side? :)

@nashez
Copy link
Contributor Author

nashez commented Dec 13, 2024

Hi @dmitry-gorokhov
I haven't been able to get back to this yet as I took up some other issues
I will rewrite this next weekend
If the task is more urgent, I can unassign myself and can assign myself back next week when I get some time.

- 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#24109

Signed-off-by: Nashez Zubair <[email protected]>
@nashez nashez force-pushed the nashez/jit_softplus_emitter branch from d6ed1f4 to 6b4c756 Compare December 13, 2024 10:16
@dmitry-gorokhov
Copy link
Contributor

Hi @dmitry-gorokhov I haven't been able to get back to this yet as I took up some other issues I will rewrite this next weekend If the task is more urgent, I can unassign myself and can assign myself back next week when I get some time.

No, this is totally fine. Take your time :)

Copy link
Contributor

This PR will be closed in a week because of 2 weeks of no activity.

@github-actions github-actions bot added the Stale label Dec 28, 2024
@mg-intel mg-intel removed the Stale label Jan 2, 2025
Copy link
Contributor

This PR will be closed in a week because of 2 weeks of no activity.

@github-actions github-actions bot added the Stale label 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 ExternalPR External contributor platform: arm OpenVINO on ARM / ARM64 Stale
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 SoftPlus operation
5 participants