// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #define LOG_TAG "ArmnnDriver" #include "ArmnnDevice.hpp" #include #include #include using namespace android; namespace armnn_driver { ArmnnDevice::ArmnnDevice(DriverOptions options) : m_Runtime(nullptr, nullptr) , m_ClTunedParameters(nullptr) , m_Options(std::move(options)) { ALOGV("ArmnnDevice::ArmnnDevice()"); armnn::ConfigureLogging(false, m_Options.IsVerboseLoggingEnabled(), armnn::LogSeverity::Trace); if (m_Options.IsVerboseLoggingEnabled()) { SetMinimumLogSeverity(base::VERBOSE); } else { SetMinimumLogSeverity(base::INFO); } try { armnn::IRuntime::CreationOptions options; if (!m_Options.GetClTunedParametersFile().empty()) { m_ClTunedParameters = armnn::IGpuAccTunedParameters::Create(m_Options.GetClTunedParametersMode()); try { m_ClTunedParameters->Load(m_Options.GetClTunedParametersFile().c_str()); } catch (const armnn::Exception& error) { // This is only a warning because the file won't exist the first time you are generating it. ALOGW("ArmnnDevice: Failed to load CL tuned parameters file '%s': %s", m_Options.GetClTunedParametersFile().c_str(), error.what()); } options.m_GpuAccTunedParameters = m_ClTunedParameters; } options.m_EnableGpuProfiling = m_Options.IsGpuProfilingEnabled(); m_Runtime = armnn::IRuntime::Create(options); } catch (const armnn::ClRuntimeUnavailableException& error) { ALOGE("ArmnnDevice: Failed to setup CL runtime: %s. Device will be unavailable.", error.what()); } } } // namespace armnn_driver