[Good First Issue] [ARM]: Implement CPU plugin just-in-time emitter for LeakyRelu operation #29019
Labels
category: CPU
OpenVINO CPU plugin
good first issue
Good for newcomers
platform: arm
OpenVINO on ARM / ARM64
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?
PRelu
operation with scalar second inputslope
- converts suchPRelu
ops to CPU-opset opLeakyRelu
. Currently, CPU Plugin has JIT Emitters only forPRelu
op with non-scalar second input andRelu
op with zeroalpha
for ARM64 SIMD platforms. Need to update existing JIT emitter forRelu
to supportLeakyRelu
op -PRelu
op with scalar non-zeroalpha
value. Use OpenVINO CPU plugin JIT emitters documentation and Arm A-profile A64 Instruction Set Architecture documentation for details.Before emitter implementation, please, modify tests to be sure that developed functionality is covered by test:
jit
kernel check in activation test, the test must fail.LeakyRelu
in CPU activation test instantiation if it's absent.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*Activation*LeakyRelu*"
Example Pull Requests
Resources
Contact points
@a-sidorova, @dmitry-gorokhov
The text was updated successfully, but these errors were encountered: