diff options
author | arovir01 <Aron.Virginas-Tar@arm.com> | 2018-10-01 17:08:59 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-10 16:16:57 +0100 |
commit | 616e775763280992de92287b129dc335be91a24c (patch) | |
tree | 5b7ced2fa8005f4371fe8005ee98cb88d16e0e09 /src/armnnUtils | |
parent | 29cadb3ff3066d6feb1801a921be326bf5ed8f47 (diff) | |
download | armnn-616e775763280992de92287b129dc335be91a24c.tar.gz |
IVGCVSW-1913: Fix for ValidationTest.concat_float_3_relaxed
* Added RefPermuteFloat16Workload to serve as a fallback when CL
does not support the required permute configuration for FP16
* Move Half.hpp to armnnUtils as the utils library should not be
including private header files from the armnn library
Change-Id: Ibf0f698451e8406f7ed7cce470dab60b6d16361d
Diffstat (limited to 'src/armnnUtils')
-rw-r--r-- | src/armnnUtils/FloatingPointConverter.cpp | 3 | ||||
-rw-r--r-- | src/armnnUtils/Half.hpp | 35 | ||||
-rw-r--r-- | src/armnnUtils/Permute.cpp | 3 |
3 files changed, 40 insertions, 1 deletions
diff --git a/src/armnnUtils/FloatingPointConverter.cpp b/src/armnnUtils/FloatingPointConverter.cpp index 522c44b093..92409d4eea 100644 --- a/src/armnnUtils/FloatingPointConverter.cpp +++ b/src/armnnUtils/FloatingPointConverter.cpp @@ -4,7 +4,8 @@ // #include "FloatingPointConverter.hpp" -#include "../armnn/Half.hpp" + +#include "Half.hpp" #include <boost/assert.hpp> diff --git a/src/armnnUtils/Half.hpp b/src/armnnUtils/Half.hpp new file mode 100644 index 0000000000..c4b47a3609 --- /dev/null +++ b/src/armnnUtils/Half.hpp @@ -0,0 +1,35 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <type_traits> +#include <half/half.hpp> + +namespace armnn +{ + using Half = half_float::half; //import half float implementation +} //namespace armnn + + +namespace std +{ + +template<> +struct is_floating_point<armnn::Half> + : integral_constant< bool, true > +{}; + +template<> +struct is_floating_point<const armnn::Half> + : integral_constant< bool, true > +{}; + +template<> +struct is_floating_point<volatile armnn::Half> + : integral_constant< bool, true > +{}; + +} //namespace std
\ No newline at end of file diff --git a/src/armnnUtils/Permute.cpp b/src/armnnUtils/Permute.cpp index 9fe198b3a7..61f4e0e644 100644 --- a/src/armnnUtils/Permute.cpp +++ b/src/armnnUtils/Permute.cpp @@ -5,6 +5,7 @@ #include "Permute.hpp" +#include "Half.hpp" #include <armnn/Tensor.hpp> #include <cassert> @@ -109,6 +110,8 @@ void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& // Instantiates for types. template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings, + const armnn::Half* src, armnn::Half* dst); +template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings, const float* src, float* dst); template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings, const uint8_t* src, uint8_t* dst); |