diff options
-rw-r--r-- | 1.2/ArmnnDriverImpl.cpp | 11 | ||||
-rw-r--r-- | 1.3/ArmnnDriverImpl.cpp | 11 | ||||
-rw-r--r-- | ArmnnDriverImpl.cpp | 12 | ||||
-rw-r--r-- | DriverOptions.cpp | 7 | ||||
-rw-r--r-- | DriverOptions.hpp | 2 |
5 files changed, 42 insertions, 1 deletions
diff --git a/1.2/ArmnnDriverImpl.cpp b/1.2/ArmnnDriverImpl.cpp index 4571fe0e..6d713e06 100644 --- a/1.2/ArmnnDriverImpl.cpp +++ b/1.2/ArmnnDriverImpl.cpp @@ -130,6 +130,17 @@ Return<V1_0::ErrorStatus> ArmnnDriverImpl::prepareArmnnModel_1_2( armnn::OptimizerOptions OptOptions; OptOptions.m_ReduceFp32ToFp16 = float32ToFloat16; + armnn::BackendOptions gpuAcc("GpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + armnn::BackendOptions cpuAcc("CpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + OptOptions.m_ModelOptions.push_back(gpuAcc); + OptOptions.m_ModelOptions.push_back(cpuAcc); + std::vector<std::string> errMessages; try { diff --git a/1.3/ArmnnDriverImpl.cpp b/1.3/ArmnnDriverImpl.cpp index 6168c9d0..b2524d3b 100644 --- a/1.3/ArmnnDriverImpl.cpp +++ b/1.3/ArmnnDriverImpl.cpp @@ -141,6 +141,17 @@ Return<V1_3::ErrorStatus> ArmnnDriverImpl::prepareArmnnModel_1_3( armnn::OptimizerOptions OptOptions; OptOptions.m_ReduceFp32ToFp16 = float32ToFloat16; + armnn::BackendOptions gpuAcc("GpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + armnn::BackendOptions cpuAcc("CpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + OptOptions.m_ModelOptions.push_back(gpuAcc); + OptOptions.m_ModelOptions.push_back(cpuAcc); + std::vector<std::string> errMessages; try { diff --git a/ArmnnDriverImpl.cpp b/ArmnnDriverImpl.cpp index 9c6d51fd..936cc6e5 100644 --- a/ArmnnDriverImpl.cpp +++ b/ArmnnDriverImpl.cpp @@ -53,7 +53,6 @@ Return<V1_0::ErrorStatus> FailPrepareModel(V1_0::ErrorStatus error, return error; } - } // namespace namespace armnn_driver @@ -105,6 +104,17 @@ Return<V1_0::ErrorStatus> ArmnnDriverImpl<HalPolicy>::prepareModel( armnn::OptimizerOptions OptOptions; OptOptions.m_ReduceFp32ToFp16 = float32ToFloat16; + armnn::BackendOptions gpuAcc("GpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + armnn::BackendOptions cpuAcc("CpuAcc", + { + { "FastMathEnabled", options.IsFastMathEnabled() } + }); + OptOptions.m_ModelOptions.push_back(gpuAcc); + OptOptions.m_ModelOptions.push_back(cpuAcc); + std::vector<std::string> errMessages; try { diff --git a/DriverOptions.cpp b/DriverOptions.cpp index 1f534b6e..d179d653 100644 --- a/DriverOptions.cpp +++ b/DriverOptions.cpp @@ -35,6 +35,7 @@ DriverOptions::DriverOptions(armnn::Compute computeDevice, bool fp16Enabled) , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid) , m_EnableGpuProfiling(false) , m_fp16Enabled(fp16Enabled) + , m_FastMathEnabled(false) { } @@ -45,6 +46,7 @@ DriverOptions::DriverOptions(const std::vector<armnn::BackendId>& backends, bool , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid) , m_EnableGpuProfiling(false) , m_fp16Enabled(fp16Enabled) + , m_FastMathEnabled(false) { } @@ -54,6 +56,7 @@ DriverOptions::DriverOptions(int argc, char** argv) , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid) , m_EnableGpuProfiling(false) , m_fp16Enabled(false) + , m_FastMathEnabled(false) { namespace po = boost::program_options; @@ -104,6 +107,10 @@ DriverOptions::DriverOptions(int argc, char** argv) "exhaustive approach " "rapid: only 3 lws values should be tested for each kernel ") + ("fast-math,a", + po::bool_switch(&m_FastMathEnabled), + "Turns FastMath on") + ("gpu-profiling,p", po::bool_switch(&m_EnableGpuProfiling), "Turns GPU profiling on") diff --git a/DriverOptions.hpp b/DriverOptions.hpp index b05647c5..ba0919c1 100644 --- a/DriverOptions.hpp +++ b/DriverOptions.hpp @@ -31,6 +31,7 @@ public: armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; } armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; } bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; } + bool IsFastMathEnabled() const { return m_FastMathEnabled; } bool GetFp16Enabled() const { return m_fp16Enabled; } void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; } @@ -45,6 +46,7 @@ private: armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel; bool m_EnableGpuProfiling; bool m_fp16Enabled; + bool m_FastMathEnabled; }; } // namespace armnn_driver |