src/core/docs/operation_enabling_flow.md
Implement operation "shell" in the src/core/[src|include]/op/:
validate_and_infer_types method which should support dynamic input tensor(s) (with partially dynamic shapes). For more information read OpenVINO Shape propagation guidevisit_attributes methodclone_with_new_inputs method. The generated operation version must be explicitly specified and be equal to the operation version being added*.hpp file add:
OPENVINO_OP("<Operation_name>", "opset_name", <Parent_op> /* Not needed if operation is inherited from ov::Op */);
*.cpp file:
OV_OP_SCOPE(<operation_version>_<operation_name>_<method_name>);
src/core/tests/type_prop/Add operation to the dedicated opset file src/core/include/openvino/opsets/opsetX_tbl.hpp
Implement evaluate method for the operation (reference implementation) in the openvino/core/[src|include/openvino]/op/. Reference implementation can be called from Template plugin or from OpenVINO.
To not increase the binary size of openvino lib it should be placed in Template plugin unless you are directly asked to put it in the OpenVINO core. While adding reference implementation the following points should be considered: