blob: 868ac4db5cd04bd269605b284350b845d207b396 [file] [log] [blame]
Jens Elofsson8b1d9de2021-05-27 16:03:20 +02001@startuml
2skinparam backgroundColor #FEFEFE
3
4box "Application" #Orange
5participant "Application" as app
6end box
7
8box "PMU monitor" #Orange
9participant "PMU monitor" as pmumon
10end box
11
12box "Tensorflow" #LightGreen
13participant "TFLu" as tflu
14end box
15
16box "Ethos-U" #LightBlue
17participant "Ethos-U driver" as driver
18end box
19
20box "EventRecorder" #LightBlue
21participant EventRecorder as event
22end box
23
24box "Timer source"
25participant "Timer source" as timer
26end box
27
28app -> event: EventRecorderInitialize()
29
30app -> tflu: Invoke()
31tflu -> driver: ethosu_invoke()
32
33driver -> app ++: ethosu_inference_begin(inference data, driver) [weak]
34app -> pmumon: ethosu_monitor.configure()
35pmumon -> driver: 'Configure PMU'
36pmumon -> timer: Enable timer events
37return
38
39group While the Ethos-U custom op is executing
40group Recurrent: PMU-monitor log events
41 ...
42 timer -> app++: Timer event
43 app -> pmumon: ethosu_monitor.monitorSample()
44 pmumon -> driver: 'Sample PMU registers'
45 driver --> pmumon
46 pmumon -> event : EventRecord2()
47...
48end
49end
50
51driver -> app++: ethosu_inference_end(inference data, driver) [weak]
52app -> timer: 'Disable timer events'
53app -> pmumon: ethosu_monitor.monitorSample()
54pmumon -> driver: 'Sample PMU registers'
55driver --> pmumon
56pmumon -> event : EventRecord2()
57app -> pmumon: ethosu_monitor.release()
58pmumon -> driver: 'Disable PMU'
59return
60
61@enduml