OpenVINO IR Frontend uses the pugixml library to parse XML files. After that, based on the version and name of the operation, the Frontend creates the supported operation and initializes it using OpenVINO Visitor API:
flowchart TB
fw_model[(IR)]
style fw_model fill:#427cb0
pugixml([pugixml])
subgraph frontend [ov::frontend::ir::FrontEnd]
load_impl["load_impl()"]
end
fw_model--as stream-->load_impl
load_impl--load stream-->pugixml
pugixml--parsed object-->load_impl
subgraph input_model [ov::frontend::ir::InputModel]
convert["convert()"]
end
load_impl--create-->input_model
xml_deserializer(ov::XmlDeserializer)
ov_model[ov::Model]
convert--create visitor-->xml_deserializer
xml_deserializer--recursively parse all operations from the model-->ov_model
OpenVINO IR Frontend supports extensions. To add an extension, use ov::frontend::ir::Frontend::add_extension()
API.
The next extension types are supported:
ov::TelemetryExtension
- enable telemetry for the frontendov::BaseOpExtension
- enable support of a custom operationov::detail::SOExtension
- allow to supportov::BaseOpExtension
extensions loaded from the external library.