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 Round operation #27668

Closed
a-sidorova opened this issue Nov 21, 2024 · 4 comments · Fixed by #27885
Closed
Assignees
Labels
category: CPU OpenVINO CPU plugin good first issue Good for newcomers platform: arm OpenVINO on ARM / ARM64
Milestone

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:

  • Add jit kernel check in activation test, the test must fail.
  • If test doesn't fail then add supported activation type (RoundHalfToEven and RoundHalfAwayFromZero) in CPU activation test instantiation if it's absent.
  • For the better test coverage, update input generation algorithm to generate values with floating point.

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*Round*"

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 21, 2024
@github-project-automation github-project-automation bot moved this to Contributors Needed in Good first issues Nov 21, 2024
@emir05051
Copy link
Contributor

.take

Copy link
Contributor

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

@a-sidorova a-sidorova moved this from Contributors Needed to Assigned in Good first issues Nov 26, 2024
@emir05051
Copy link
Contributor

May I get some help please ? I get this error, when I'm trying to push. Also should Round be implemented as one operator for two modes or two operators for two modes like in src/nodes/eltwise.cpp?

Run # Needed as the Linux CC does not require setupvars to work
[setupvars.sh] OpenVINO environment initialized
ERROR:conformance_utilities:/__w/openvino does not contain applicable directories to pattern: bin
WARNING:test_parallel_runner:Please set the above env variable to get the same conformance ir names run by run!
INFO:test_parallel_runner:[ARGUMENTS] --exec_file=/__w/openvino/openvino/install/tests/ov_cpu_func_tests
INFO:test_parallel_runner:[ARGUMENTS] --working_dir=/__w/openvino/openvino/install/tests
INFO:test_parallel_runner:[ARGUMENTS] --process_timeout=3600
INFO:test_parallel_runner:[ARGUMENTS] --cache_path=/__w/openvino/openvino/install/tests/test_cache.lst
INFO:test_parallel_runner:[ARGUMENTS] --workers=8
INFO:test_parallel_runner:[ARGUMENTS] --parallel_devices=0
INFO:test_parallel_runner:[ARGUMENTS] --split_unit=suite
INFO:test_parallel_runner:[ARGUMENTS] --repeat_failed=0
INFO:test_parallel_runner:[ARGUMENTS] --excluded_tests_file=None
INFO:test_parallel_runner:[ARGUMENTS] Executable file arguments = ['--gtest_print_time=1', '--gtest_filter=*smoke*']
INFO:test_parallel_runner:Run test parallel is started. Worker num is 8
INFO:test_parallel_runner:Get test list using command: /__w/openvino/openvino/install/tests/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_list_tests > /__w/openvino/openvino/install/tests/test_list.lst
INFO:test_parallel_runner:Len test_list_runtime (without disabled tests): 1555
INFO:test_parallel_runner:Get test list from cache file: /__w/openvino/openvino/install/tests/test_cache.lst
INFO:test_parallel_runner:Len tests_dict_cache: 1555
INFO:test_parallel_runner:Total test counter is [17](https://github.com/openvinotoolkit/openvino/actions/runs/12147153611/job/33874519329?pr=27885#step:13:18)6458
INFO:test_parallel_runner:Execute jobs taken from cache and runtime
Worker initialization: [........................................] 0/8
Worker initialization: [#####...................................] 1/8
Worker initialization: [##########..............................] 2/8
Worker initialization: [###############.........................] 3/8
Worker initialization: [####################....................] 4/8
Worker initialization: [#########################...............] 5/8
Worker initialization: [##############################..........] 6/8
Worker initialization: [###################################.....] 7/8
Worker initialization: [########################################] 8/8
Worker execution: [........................................] 0/16
Worker execution: [##......................................] 1/16
Worker execution: [#####...................................] 2/16
Worker execution: [#######.................................] 3/16
Worker execution: [##########..............................] 4/16
Worker execution: [############............................] 5/16
Worker execution: [###############.........................] 6/16
Worker execution: [#################.......................] 7/16
Worker execution: [####################....................] 8/16
Worker execution: [######################..................] 9/16
Worker execution: [#########################...............] 10/16
Worker execution: [###########################.............] 11/16
Worker execution: [##############################..........] 12/16
Worker execution: [################################........] 13/16
Worker execution: [###################################.....] 14/16
Worker execution: [#####################################...] 15/16
Worker execution: [########################################] 16/16
INFO:test_parallel_runner:Compeleting processes: Active process counter: 7...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 6...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 5...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 4...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 3...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 2...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 1...
INFO:test_parallel_runner:Compeleting processes: Active process counter: 0...
INFO:test_parallel_runner:Get test list using command: /__w/openvino/openvino/install/tests/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_list_tests > /__w/openvino/openvino/install/tests/test_list.lst
INFO:test_parallel_runner:Len test_list_runtime (without disabled tests): 175871
INFO:test_parallel_runner:Run test parallel is finished successfully. Total time is 0h:[20](https://github.com/openvinotoolkit/openvino/actions/runs/12147153611/job/33874519329?pr=27885#step:13:21)m:10.02s
INFO:test_parallel_runner:Log analize is started
INFO:test_parallel_runner:Hashed test list is saved to: /__w/openvino/openvino/install/tests/logs/hash_table.csv
INFO:test_parallel_runner:Fix priorities list is saved to: /__w/openvino/openvino/install/tests/logs/fix_priority.csv
INFO:test_parallel_runner:Disabled test list is saved to: /__w/openvino/openvino/install/tests/logs/disabled_tests.log
INFO:test_parallel_runner:Get test list using command: /__w/openvino/openvino/install/tests/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_list_tests > /__w/openvino/openvino/install/tests/test_list.lst
INFO:test_parallel_runner:Len test_list_runtime (without disabled tests): 175871
INFO:test_parallel_runner:passed test counter is: 154111
INFO:test_parallel_runner:skipped test counter is: [21](https://github.com/openvinotoolkit/openvino/actions/runs/12147153611/job/33874519329?pr=27885#step:13:22)754
INFO:test_parallel_runner:failed test counter is: 6
INFO:test_parallel_runner:disabled test counter is: 20
INFO:test_parallel_runner:Total test count with disabled tests is 175891. All logs is saved to /__w/openvino/openvino/install/tests/logs
ERROR:test_parallel_runner:Run is not successful

@dmitry-gorokhov
Copy link
Contributor

@emir05051 Thanks for the contribution!
It is ok to have to seprate emitters.
As of CI issue: anwered in the PR.

@dmitry-gorokhov dmitry-gorokhov moved this from Assigned to In Review in Good first issues Dec 5, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 5, 2024
### Details:
 - Added two types of jit_round operator

### Tickets:
 - *#27668*
@dmitry-gorokhov dmitry-gorokhov moved this from In Review to Closed in Good first issues Dec 5, 2024
@dmitry-gorokhov dmitry-gorokhov linked a pull request Dec 5, 2024 that will close this issue
@mlukasze mlukasze added this to the 2025.0 milestone Dec 9, 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: Closed
Development

Successfully merging a pull request may close this issue.

4 participants