blob: 57f828c011f9a9d53c15b11adabd89ac013d7ff3 [file] [log] [blame]
Matteo Martincigh79250ab2018-09-04 16:28:10 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beck93e48982018-09-05 13:05:09 +01003// SPDX-License-Identifier: MIT
Matteo Martincigh79250ab2018-09-04 16:28:10 +01004//
5
6#include "ArmnnDriverImpl.hpp"
7#include "../SystemPropertiesUtils.hpp"
8
9#include <log/log.h>
10
Matteo Martincigh79250ab2018-09-04 16:28:10 +010011namespace
12{
13
arovir01b0717b52018-09-05 17:03:25 +010014const char *g_Float32PerformanceExecTimeName = "ArmNN.float32Performance.execTime";
15const char *g_Float32PerformancePowerUsageName = "ArmNN.float32Performance.powerUsage";
16const char *g_Quantized8PerformanceExecTimeName = "ArmNN.quantized8Performance.execTime";
Matteo Martincigh79250ab2018-09-04 16:28:10 +010017const char *g_Quantized8PerformancePowerUsageName = "ArmNN.quantized8Performance.powerUsage";
18
19} // anonymous namespace
20
21namespace armnn_driver
22{
arovir01b0717b52018-09-05 17:03:25 +010023namespace hal_1_0
Matteo Martincigh79250ab2018-09-04 16:28:10 +010024{
25
arovir01b0717b52018-09-05 17:03:25 +010026Return<void> ArmnnDriverImpl::getCapabilities(const armnn::IRuntimePtr& runtime,
27 V1_0::IDevice::getCapabilities_cb cb)
Matteo Martincigh79250ab2018-09-04 16:28:10 +010028{
arovir01b0717b52018-09-05 17:03:25 +010029 ALOGV("hal_1_0::ArmnnDriverImpl::getCapabilities()");
Matteo Martincigh79250ab2018-09-04 16:28:10 +010030
arovir01b0717b52018-09-05 17:03:25 +010031 V1_0::Capabilities capabilities;
Matteo Martincigh79250ab2018-09-04 16:28:10 +010032 if (runtime)
33 {
34 capabilities.float32Performance.execTime =
35 ParseSystemProperty(g_Float32PerformanceExecTimeName, .1f);
36
37 capabilities.float32Performance.powerUsage =
38 ParseSystemProperty(g_Float32PerformancePowerUsageName, .1f);
39
40 capabilities.quantized8Performance.execTime =
41 ParseSystemProperty(g_Quantized8PerformanceExecTimeName, .1f);
42
43 capabilities.quantized8Performance.powerUsage =
44 ParseSystemProperty(g_Quantized8PerformancePowerUsageName, .1f);
45
Kevin Mayec1e5b82020-02-26 17:00:39 +000046 cb(V1_0::ErrorStatus::NONE, capabilities);
Matteo Martincigh79250ab2018-09-04 16:28:10 +010047 }
48 else
49 {
arovir01b0717b52018-09-05 17:03:25 +010050 capabilities.float32Performance.execTime = 0;
51 capabilities.float32Performance.powerUsage = 0;
52 capabilities.quantized8Performance.execTime = 0;
Matteo Martincigh79250ab2018-09-04 16:28:10 +010053 capabilities.quantized8Performance.powerUsage = 0;
54
Kevin Mayec1e5b82020-02-26 17:00:39 +000055 cb(V1_0::ErrorStatus::DEVICE_UNAVAILABLE, capabilities);
Matteo Martincigh79250ab2018-09-04 16:28:10 +010056 }
57
58 return Void();
59}
60
arovir01b0717b52018-09-05 17:03:25 +010061} // namespace hal_1_0
62} // namespace armnn_driver