aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-03-20 15:01:01 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-03-20 19:09:07 +0000
commitbc7ffb5e9e5f4c86280b20c65772eb12d8bb140e (patch)
tree5187f34326414e7dfea80e0f4efaae5cbeb05d1d /include
parentcf2ad554502830804e991aca2e5b0741623119b2 (diff)
downloadarmnn-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.hpp14
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