diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2020-03-20 15:01:01 +0000 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2020-03-20 19:09:07 +0000 |
commit | bc7ffb5e9e5f4c86280b20c65772eb12d8bb140e (patch) | |
tree | 5187f34326414e7dfea80e0f4efaae5cbeb05d1d /include | |
parent | cf2ad554502830804e991aca2e5b0741623119b2 (diff) | |
download | armnn-bc7ffb5e9e5f4c86280b20c65772eb12d8bb140e.tar.gz |
IVGCVSW-4520 Implement BFloat16 Optimizer
* Add ReduceFp32ToBf16 to OptimizerOptions
* Add ConvertFp32NetworkToBf16
* Add utility functions to insert conversion layers
* Add constant conversion BF16 <-> FP32
* Unit tests
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Iaff77e20c721400b052cb37eb9ef6fe16d7abaff
Diffstat (limited to 'include')
-rw-r--r-- | include/armnn/INetwork.hpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp index 84ecaebfb9..b840dd58e5 100644 --- a/include/armnn/INetwork.hpp +++ b/include/armnn/INetwork.hpp @@ -591,18 +591,28 @@ struct OptimizerOptions OptimizerOptions() : m_ReduceFp32ToFp16(false) , m_Debug(false) + , m_ReduceFp32ToBf16(false) {} - OptimizerOptions(bool reduceFp32ToFp16, bool debug) + OptimizerOptions(bool reduceFp32ToFp16, bool debug, bool reduceFp32ToBf16 = false) : m_ReduceFp32ToFp16(reduceFp32ToFp16) , m_Debug(debug) - {} + , m_ReduceFp32ToBf16(reduceFp32ToBf16) + { + if (m_ReduceFp32ToFp16 && m_ReduceFp32ToBf16) + { + throw InvalidArgumentException("BFloat16 and Float16 optimization cannot be enabled at the same time."); + } + } // Reduce Fp32 data to Fp16 for faster processing bool m_ReduceFp32ToFp16; // Add debug data for easier troubleshooting bool m_Debug; + + // Reduce Fp32 data to Bf16 for faster processing + bool m_ReduceFp32ToBf16; }; /// Create an optimized version of the network |