@startuml skinparam backgroundColor #FEFEFE box "Application" #Orange participant "Application" as app end box box "PMU monitor" #Orange participant "PMU monitor" as pmumon end box box "Tensorflow" #LightGreen participant "TFLu" as tflu end box box "Ethos-U" #LightBlue participant "Ethos-U driver" as driver end box box "EventRecorder" #LightBlue participant EventRecorder as event end box box "Timer source" participant "Timer source" as timer end box app -> event: EventRecorderInitialize() app -> tflu: Invoke() tflu -> driver: ethosu_invoke() driver -> app ++: ethosu_inference_begin(inference data, driver) [weak] app -> pmumon: ethosu_monitor.configure() pmumon -> driver: 'Configure PMU' pmumon -> timer: Enable timer events return group While the Ethos-U custom op is executing group Recurrent: PMU-monitor log events ... timer -> app++: Timer event app -> pmumon: ethosu_monitor.monitorSample() pmumon -> driver: 'Sample PMU registers' driver --> pmumon pmumon -> event : EventRecord2() ... end end driver -> app++: ethosu_inference_end(inference data, driver) [weak] app -> timer: 'Disable timer events' app -> pmumon: ethosu_monitor.monitorSample() pmumon -> driver: 'Sample PMU registers' driver --> pmumon pmumon -> event : EventRecord2() app -> pmumon: ethosu_monitor.release() pmumon -> driver: 'Disable PMU' return @enduml