-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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] [Snippets] [ARM]: Enable Power, Select, Xor tokenization in CPU Plugin #28162
Comments
.take |
Thank you for looking into this issue! Please let us know if you have any questions or require any help. |
@sramichetty20019 hey can u please tell are u still working on this issue? |
@geeky33 I assigned it to you due to no activity of the previous assignee. Have a fun! 😄 |
Here’s the updated comment: Hi @a-sidorova, I am new to open-source and OpenVINO, and I’m eager to learn and contribute. If possible, could you assign me to this issue along with @geeky? I believe collaborating on this would be a great opportunity for me to learn and contribute effectively. @geeky, would you be okay with me joining you on this? Thank you! 😊 |
Hi @PIKABOLTCODER! Thank you for the interest! Unfortunately, this issue can have only one assignee - this task is quite simple and one contributor is enough to implement it. However, if you're interested in any another task in CPU Plugin, please take a look at the board. For example, we have 4 open GoodFirstIssues' for now. If you have time, you can try you hand at issue #24415 if this is open still 😊 |
Context
Snippets is a highly specialized JIT (just-in-time) compiler for computational graphs. It provides a scalable approach to operations' fusions and enablement. As a typical compiler,
Snippets
have frontend (tokenizer), optimizer and backend (generator).The first of the
Snippets
pipeline, Tokenization, identifies parts of the initialov::Model
that can be lowered bySnippets
efficiently, and tokenizes them into one whole node -Subgraph
.The second step of the pipeline (Optimizer) is applying common and device-specific optimizations to
Subgraph
and getting lowered representation of tokenizedSubgraph
.Finally, the last stage is code emission. The target generator maps every operation in the IR to a binary code emitter JIT Emitter, which is then used to produce a piece of executable code. As a result, we produce an executable that performs calculations described by the initial input
ov::Model
.The purpose of this issue is enabling tokenization of some elementwise operations (Power, Select, Xor) in Snippets for ARM devices. All JIT Emitters are already implemented in the CPU Plugin, so no need to write JIT Emitters.
Prerequisites
Recommended to use ARM CPU based platform for development (e.g. Mac, Raspberry Pi etc). The cross-compilation with an emulator (e.g. QEMU) using is still option:
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/arm64.toolchain.cmake ..
.What needs to be done?
is_supported_op
in the tokenization pass callback.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:Examples
Resources
Contact points
@a-sidorova, @dmitry-gorokhov
The text was updated successfully, but these errors were encountered: