aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/Decoders.hpp
diff options
context:
space:
mode:
authorMatthew Jackson <matthew.jackson@arm.com>2019-09-09 14:31:21 +0100
committerMatthew Jackson <matthew.jackson@arm.com>2019-09-10 09:46:49 +0000
commite69c399dcee1e75ebf9b2b12f72f3ad628c4e104 (patch)
treecaa3c3739723483b5db8c19872b6af13cac74db5 /src/backends/reference/workloads/Decoders.hpp
parent914e4db5a9083e922d89f133672fd44e92016e96 (diff)
downloadarmnn-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.hpp15
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)