1*3e777be0SXin Li // 2*3e777be0SXin Li // Copyright © 2017 Arm Ltd. All rights reserved. 3*3e777be0SXin Li // SPDX-License-Identifier: MIT 4*3e777be0SXin Li // 5*3e777be0SXin Li 6*3e777be0SXin Li #include "ArmnnDriverImpl.hpp" 7*3e777be0SXin Li #include "../SystemPropertiesUtils.hpp" 8*3e777be0SXin Li 9*3e777be0SXin Li #include <log/log.h> 10*3e777be0SXin Li 11*3e777be0SXin Li namespace 12*3e777be0SXin Li { 13*3e777be0SXin Li 14*3e777be0SXin Li const char *g_Float32PerformanceExecTimeName = "ArmNN.float32Performance.execTime"; 15*3e777be0SXin Li const char *g_Float32PerformancePowerUsageName = "ArmNN.float32Performance.powerUsage"; 16*3e777be0SXin Li const char *g_Quantized8PerformanceExecTimeName = "ArmNN.quantized8Performance.execTime"; 17*3e777be0SXin Li const char *g_Quantized8PerformancePowerUsageName = "ArmNN.quantized8Performance.powerUsage"; 18*3e777be0SXin Li 19*3e777be0SXin Li } // anonymous namespace 20*3e777be0SXin Li 21*3e777be0SXin Li namespace armnn_driver 22*3e777be0SXin Li { 23*3e777be0SXin Li namespace hal_1_0 24*3e777be0SXin Li { 25*3e777be0SXin Li getCapabilities(const armnn::IRuntimePtr & runtime,V1_0::IDevice::getCapabilities_cb cb)26*3e777be0SXin LiReturn<void> ArmnnDriverImpl::getCapabilities(const armnn::IRuntimePtr& runtime, 27*3e777be0SXin Li V1_0::IDevice::getCapabilities_cb cb) 28*3e777be0SXin Li { 29*3e777be0SXin Li ALOGV("hal_1_0::ArmnnDriverImpl::getCapabilities()"); 30*3e777be0SXin Li 31*3e777be0SXin Li V1_0::Capabilities capabilities; 32*3e777be0SXin Li if (runtime) 33*3e777be0SXin Li { 34*3e777be0SXin Li capabilities.float32Performance.execTime = 35*3e777be0SXin Li ParseSystemProperty(g_Float32PerformanceExecTimeName, .1f); 36*3e777be0SXin Li 37*3e777be0SXin Li capabilities.float32Performance.powerUsage = 38*3e777be0SXin Li ParseSystemProperty(g_Float32PerformancePowerUsageName, .1f); 39*3e777be0SXin Li 40*3e777be0SXin Li capabilities.quantized8Performance.execTime = 41*3e777be0SXin Li ParseSystemProperty(g_Quantized8PerformanceExecTimeName, .1f); 42*3e777be0SXin Li 43*3e777be0SXin Li capabilities.quantized8Performance.powerUsage = 44*3e777be0SXin Li ParseSystemProperty(g_Quantized8PerformancePowerUsageName, .1f); 45*3e777be0SXin Li 46*3e777be0SXin Li cb(V1_0::ErrorStatus::NONE, capabilities); 47*3e777be0SXin Li } 48*3e777be0SXin Li else 49*3e777be0SXin Li { 50*3e777be0SXin Li capabilities.float32Performance.execTime = 0; 51*3e777be0SXin Li capabilities.float32Performance.powerUsage = 0; 52*3e777be0SXin Li capabilities.quantized8Performance.execTime = 0; 53*3e777be0SXin Li capabilities.quantized8Performance.powerUsage = 0; 54*3e777be0SXin Li 55*3e777be0SXin Li cb(V1_0::ErrorStatus::DEVICE_UNAVAILABLE, capabilities); 56*3e777be0SXin Li } 57*3e777be0SXin Li 58*3e777be0SXin Li return Void(); 59*3e777be0SXin Li } 60*3e777be0SXin Li 61*3e777be0SXin Li } // namespace hal_1_0 62*3e777be0SXin Li } // namespace armnn_driver