aboutsummaryrefslogtreecommitdiff
path: root/applications
diff options
context:
space:
mode:
authorPer Åstrand <per.astrand@arm.com>2021-03-23 13:57:14 +0100
committerKristofer Jonsson <kristofer.jonsson@arm.com>2021-03-26 11:20:54 +0000
commit2572fe95f2cf2216fc5e7b0d66a6849201514c78 (patch)
tree7347fc894e3d24c9ced83d2eb9700e118dfd270c /applications
parent3a0d3f286be62b4933ba404187aff23cae166a5a (diff)
downloadethos-u-core-software-2572fe95f2cf2216fc5e7b0d66a6849201514c78.tar.gz
Handle empty pmuConfigs in InferenceJob for runJob
Verify that the size of the pmueventconfig argument is the expected size before accessing the vector and set up the pmu counters to be ETHOSU_PMU_NO_EVENT if it's not. Change-Id: Icfcf5255e7e99fd3bcae6535d54f8c18e89e24f2
Diffstat (limited to 'applications')
-rw-r--r--applications/inference_process/src/inference_process.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/applications/inference_process/src/inference_process.cpp b/applications/inference_process/src/inference_process.cpp
index 727c340..743ed64 100644
--- a/applications/inference_process/src/inference_process.cpp
+++ b/applications/inference_process/src/inference_process.cpp
@@ -203,10 +203,12 @@ bool InferenceProcess::runJob(InferenceJob &job) {
tflite::MicroProfiler profiler;
#if defined(INFERENCE_PROC_TFLU_PROFILER) && defined(ETHOSU)
- profiler.MonitorEthosuPMUEvents(ethosu_pmu_event_type(job.pmuEventConfig[0]),
- ethosu_pmu_event_type(job.pmuEventConfig[1]),
- ethosu_pmu_event_type(job.pmuEventConfig[2]),
- ethosu_pmu_event_type(job.pmuEventConfig[3]));
+ vector<ethosu_pmu_event_type> pmu_events(ETHOSU_PMU_NCOUNTERS, ETHOSU_PMU_NO_EVENT);
+
+ for (size_t i = 0; i < job.pmuEventConfig.size(); i++) {
+ pmu_events[i] = ethosu_pmu_event_type(job.pmuEventConfig[i]);
+ }
+ profiler.MonitorEthosuPMUEvents(pmu_events[0], pmu_events[1], pmu_events[2], pmu_events[3]);
#endif
tflite::MicroInterpreter interpreter(model, resolver, tensorArena, tensorArenaSize, reporter, &profiler);