blob: 3f4c75badf5d417ed3442f071a668107e0ba7bde [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"
Kevin DuBois30c34ae2020-08-26 13:53:41 -07007#include "../NamespaceAdaptor.hpp"
Matteo Martincigh79250ab2018-09-04 16:28:10 +01008#include "../SystemPropertiesUtils.hpp"
9
10#include <log/log.h>
11
Matteo Martincigh79250ab2018-09-04 16:28:10 +010012namespace
13{
14
arovir01b0717b52018-09-05 17:03:25 +010015const char *g_Float32PerformanceExecTimeName = "ArmNN.float32Performance.execTime";
16const char *g_Float32PerformancePowerUsageName = "ArmNN.float32Performance.powerUsage";
17const char *g_Quantized8PerformanceExecTimeName = "ArmNN.quantized8Performance.execTime";
Matteo Martincigh79250ab2018-09-04 16:28:10 +010018const char *g_Quantized8PerformancePowerUsageName = "ArmNN.quantized8Performance.powerUsage";
19
20} // anonymous namespace
21
22namespace armnn_driver
23{
arovir01b0717b52018-09-05 17:03:25 +010024namespace hal_1_0
Matteo Martincigh79250ab2018-09-04 16:28:10 +010025{
26
arovir01b0717b52018-09-05 17:03:25 +010027Return<void> ArmnnDriverImpl::getCapabilities(const armnn::IRuntimePtr& runtime,
28 V1_0::IDevice::getCapabilities_cb cb)
Matteo Martincigh79250ab2018-09-04 16:28:10 +010029{
arovir01b0717b52018-09-05 17:03:25 +010030 ALOGV("hal_1_0::ArmnnDriverImpl::getCapabilities()");
Matteo Martincigh79250ab2018-09-04 16:28:10 +010031
arovir01b0717b52018-09-05 17:03:25 +010032 V1_0::Capabilities capabilities;
Matteo Martincigh79250ab2018-09-04 16:28:10 +010033 if (runtime)
34 {
35 capabilities.float32Performance.execTime =
36 ParseSystemProperty(g_Float32PerformanceExecTimeName, .1f);
37
38 capabilities.float32Performance.powerUsage =
39 ParseSystemProperty(g_Float32PerformancePowerUsageName, .1f);
40
41 capabilities.quantized8Performance.execTime =
42 ParseSystemProperty(g_Quantized8PerformanceExecTimeName, .1f);
43
44 capabilities.quantized8Performance.powerUsage =
45 ParseSystemProperty(g_Quantized8PerformancePowerUsageName, .1f);
46
Kevin DuBois30c34ae2020-08-26 13:53:41 -070047 cb(V1_0::ErrorStatus::NONE, capabilities);
Matteo Martincigh79250ab2018-09-04 16:28:10 +010048 }
49 else
50 {
arovir01b0717b52018-09-05 17:03:25 +010051 capabilities.float32Performance.execTime = 0;
52 capabilities.float32Performance.powerUsage = 0;
53 capabilities.quantized8Performance.execTime = 0;
Matteo Martincigh79250ab2018-09-04 16:28:10 +010054 capabilities.quantized8Performance.powerUsage = 0;
55
Kevin DuBois30c34ae2020-08-26 13:53:41 -070056 cb(V1_0::ErrorStatus::DEVICE_UNAVAILABLE, capabilities);
Matteo Martincigh79250ab2018-09-04 16:28:10 +010057 }
58
59 return Void();
60}
61
arovir01b0717b52018-09-05 17:03:25 +010062} // namespace hal_1_0
Kevin DuBois30c34ae2020-08-26 13:53:41 -070063} // namespace armnn_driver