From 31441595009182c985dacbedc70c41ee6664d070 Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Mon, 7 Nov 2022 16:20:48 +0000 Subject: IVGCVSW-7214 Disable BF16-Turbo-Mode and remove conversion layers - Remove Bf16ToFp32 Conversion Layer - Remove Fp32ToBf16 Conversion Layer - Remove B16 Conversion tests * Throw exception if m_ReduceFp32ToBf16 optimzer option is set to true * Provide comments to enable fast math in order to use bf16 * Update docs to inform users to enable fast math for bf16 Execute Network Changes * Require bf16_turbo_mode to also have fast_math_enabled set to true - Remove setting m_ReduceFp32ToBf16 optimizer option Signed-off-by: Ryan OShea Change-Id: Ibaa6da9d29c96a1ce32ff5196b0847fde9f04a1c --- tests/ExecuteNetwork/ArmNNExecutor.cpp | 1 - tests/ExecuteNetwork/ExecuteNetworkParams.cpp | 6 ++---- tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp | 6 +++--- tests/InferenceModel.hpp | 1 - 4 files changed, 5 insertions(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/ExecuteNetwork/ArmNNExecutor.cpp b/tests/ExecuteNetwork/ArmNNExecutor.cpp index e8b501489e..943d3aad07 100644 --- a/tests/ExecuteNetwork/ArmNNExecutor.cpp +++ b/tests/ExecuteNetwork/ArmNNExecutor.cpp @@ -513,7 +513,6 @@ armnn::IOptimizedNetworkPtr ArmNNExecutor::OptimizeNetwork(armnn::INetwork* netw armnn::OptimizerOptions options; options.m_ReduceFp32ToFp16 = m_Params.m_EnableFp16TurboMode; - options.m_ReduceFp32ToBf16 = m_Params.m_EnableBf16TurboMode; options.m_Debug = m_Params.m_PrintIntermediate; options.m_DebugToFile = m_Params.m_PrintIntermediateOutputsToFile; options.m_shapeInferenceMethod = m_Params.m_InferOutputShape ? diff --git a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp index 155a4c4a8b..fa467c93f8 100644 --- a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp +++ b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp @@ -60,10 +60,9 @@ void ExecuteNetworkParams::ValidateParams() } CheckClTuningParameter(m_TuningLevel, m_TuningPath, m_ComputeDevices); - if (m_EnableBf16TurboMode && m_EnableFp16TurboMode) + if (m_EnableBf16TurboMode && !m_EnableFastMath) { - throw armnn::InvalidArgumentException("BFloat16 and Float16 turbo mode cannot be " - "enabled at the same time."); + throw armnn::InvalidArgumentException("To use BF16 please use --enable-fast-math. "); } // Check input tensor shapes @@ -124,7 +123,6 @@ armnnDelegate::DelegateOptions ExecuteNetworkParams::ToDelegateOptions() const armnn::OptimizerOptions options; options.m_ReduceFp32ToFp16 = m_EnableFp16TurboMode; - options.m_ReduceFp32ToBf16 = m_EnableBf16TurboMode; options.m_Debug = m_PrintIntermediate; options.m_DebugToFile = m_PrintIntermediateOutputsToFile; options.m_ProfilingEnabled = m_EnableProfiling; diff --git a/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp b/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp index 5f19a1498c..e9d77509e4 100644 --- a/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp +++ b/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp @@ -375,14 +375,14 @@ ProgramOptions::ProgramOptions() : m_CxxOptions{"ExecuteNetwork", m_CxxOptions.add_options("c) Optimization") ("bf16-turbo-mode", - "If this option is enabled, FP32 layers, " - "weights and biases will be converted to BFloat16 where the backend supports it", + "This option is no longer being used. In order to use bf16 please set enable-fast-math " + "to true", cxxopts::value(m_ExNetParams.m_EnableBf16TurboMode) ->default_value("false")->implicit_value("true")) ("enable-fast-math", "Enables fast_math options in backends that support it. Using the fast_math flag can lead to " - "performance improvements but may result in reduced or different precision.", + "performance improvements but may result in reduced or different precision. ", cxxopts::value(m_ExNetParams.m_EnableFastMath)->default_value("false")->implicit_value("true")) ("number-of-threads", diff --git a/tests/InferenceModel.hpp b/tests/InferenceModel.hpp index d837fc1fcf..28069242f2 100644 --- a/tests/InferenceModel.hpp +++ b/tests/InferenceModel.hpp @@ -452,7 +452,6 @@ public: armnn::OptimizerOptions options; options.m_ReduceFp32ToFp16 = params.m_EnableFp16TurboMode; - options.m_ReduceFp32ToBf16 = params.m_EnableBf16TurboMode; options.m_Debug = params.m_PrintIntermediateLayers; options.m_DebugToFile = params.m_PrintIntermediateLayersToFile; options.m_shapeInferenceMethod = params.m_InferOutputShape ? -- cgit v1.2.1