diff options
author | Matthew Jackson <matthew.jackson@arm.com> | 2019-09-09 14:31:21 +0100 |
---|---|---|
committer | Matthew Jackson <matthew.jackson@arm.com> | 2019-09-10 09:46:49 +0000 |
commit | e69c399dcee1e75ebf9b2b12f72f3ad628c4e104 (patch) | |
tree | caa3c3739723483b5db8c19872b6af13cac74db5 /src/backends/reference/workloads/Decoders.hpp | |
parent | 914e4db5a9083e922d89f133672fd44e92016e96 (diff) | |
download | armnn-e69c399dcee1e75ebf9b2b12f72f3ad628c4e104.tar.gz |
IVGCVSW-3824 Implement Float 16 Encoder and Decoder
* Implement Float 16 Encoder and Decoder
* Add Stack Float 16 layer and create workload tests
Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: Ice4678226f4d22c06ebcc6db3052d42ce0c1bd67
Diffstat (limited to 'src/backends/reference/workloads/Decoders.hpp')
-rw-r--r-- | src/backends/reference/workloads/Decoders.hpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/backends/reference/workloads/Decoders.hpp b/src/backends/reference/workloads/Decoders.hpp index 0101789bec..328a5eb0f7 100644 --- a/src/backends/reference/workloads/Decoders.hpp +++ b/src/backends/reference/workloads/Decoders.hpp @@ -6,6 +6,7 @@ #pragma once #include "BaseIterator.hpp" +#include "FloatingPointConverter.hpp" #include <boost/assert.hpp> @@ -20,25 +21,29 @@ inline std::unique_ptr<Decoder<float>> MakeDecoder(const TensorInfo& info, const { switch(info.GetDataType()) { - case armnn::DataType::QuantisedAsymm8: + case DataType::QuantisedAsymm8: { return std::make_unique<QASymm8Decoder>( static_cast<const uint8_t*>(data), info.GetQuantizationScale(), info.GetQuantizationOffset()); } - case armnn::DataType::QuantisedSymm16: + case DataType::QuantisedSymm16: { return std::make_unique<QSymm16Decoder>( static_cast<const int16_t*>(data), info.GetQuantizationScale(), info.GetQuantizationOffset()); } - case armnn::DataType::Float32: + case DataType::Float16: { - return std::make_unique<FloatDecoder>(static_cast<const float*>(data)); + return std::make_unique<Float16Decoder>(static_cast<const Half*>(data)); } - case armnn::DataType::Signed32: + case DataType::Float32: + { + return std::make_unique<Float32Decoder>(static_cast<const float*>(data)); + } + case DataType::Signed32: { const float scale = info.GetQuantizationScale(); if (scale == 0.f) |