Skip to content

[Good First Issue] [RISCV64]: Implement CPU plugin just-in-time emitter for Swish operation #30247

Open
@a-sidorova

Description

@a-sidorova

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

Due to limited resources, cross compilation is preferred option now for building OpenVINO targeting RISC-V development boards. Please see the documentation "Cross compile OpenVINO™ Runtime for RISCV64 systems" for more details. For this work, you need to build xuantie-gnu-toolchain or riscv-gnu-toolchain with QEMU support for emulation. So you don't need to have RISC-V development board even to contribute to OpenVINO for these platforms 😃

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 during the project configuration.

GoogleTest is used for testing. CPU functional test target is ov_cpu_func_tests. You can use GoogleTest filter:

# If you use xuantie-gnu-toolchain:
<xuantie_install_path>/bin/qemu-riscv64 -cpu rv64,x-v=true,vext_spec=v1.0 ./bin/[platform]/[build_type]/ov_cpu_func_tests --gtest_filter="*smoke*Activation*Swish*"

# If you use riscv-gnu-toolchain:
<riscv_install_path>/bin/qemu-riscv64 -cpu rv64,v=true,vext_spec=v1.0 ./bin/[platform]/[build_type]/ov_cpu_func_tests --gtest_filter="*smoke*Activation*Swish*"

Example Pull Requests

Resources

Contact points

@a-sidorova

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Contributors Needed

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions