diff options
author | Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> | 2019-03-19 12:26:36 +0000 |
---|---|---|
committer | Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> | 2019-03-19 12:26:36 +0000 |
commit | cd5ac23039dc3acd750c44442960280cc33307ef (patch) | |
tree | 37de0bae199345355535448b6c1ce2c624a298b8 /src | |
parent | 2a326b5bbff91ffaedd9017f388aa45862047743 (diff) | |
download | armnn-cd5ac23039dc3acd750c44442960280cc33307ef.tar.gz |
IVGCVSW-2839 Add QuantisedSymm16 support to the ArmNN frontend
Change-Id: I76f4e7db55b0efbb1a5f7d1a32bf451e66add0c7
Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/armnn/CompatibleTypes.hpp | 6 | ||||
-rw-r--r-- | src/armnn/TypeUtils.hpp | 6 | ||||
-rw-r--r-- | src/armnnDeserializer/Deserializer.cpp | 3 | ||||
-rw-r--r-- | src/armnnSerializer/ArmnnSchema.fbs | 3 | ||||
-rw-r--r-- | src/armnnSerializer/Serializer.cpp | 9 |
5 files changed, 26 insertions, 1 deletions
diff --git a/src/armnn/CompatibleTypes.hpp b/src/armnn/CompatibleTypes.hpp index 2449876544..4e31aed2aa 100644 --- a/src/armnn/CompatibleTypes.hpp +++ b/src/armnn/CompatibleTypes.hpp @@ -36,6 +36,12 @@ inline bool CompatibleTypes<uint8_t>(DataType dataType) } template<> +inline bool CompatibleTypes<int16_t>(DataType dataType) +{ + return dataType == DataType::QuantisedSymm16; +} + +template<> inline bool CompatibleTypes<int32_t>(DataType dataType) { return dataType == DataType::Signed32; diff --git a/src/armnn/TypeUtils.hpp b/src/armnn/TypeUtils.hpp index f7d0e077c8..55269f4620 100644 --- a/src/armnn/TypeUtils.hpp +++ b/src/armnn/TypeUtils.hpp @@ -33,6 +33,12 @@ struct ResolveTypeImpl<DataType::QuantisedAsymm8> }; template<> +struct ResolveTypeImpl<DataType::QuantisedSymm16> +{ + using Type = int16_t; +}; + +template<> struct ResolveTypeImpl<DataType::Signed32> { using Type = int32_t; diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp index fc84462abc..152a5b4c93 100644 --- a/src/armnnDeserializer/Deserializer.cpp +++ b/src/armnnDeserializer/Deserializer.cpp @@ -373,6 +373,9 @@ armnn::TensorInfo ToTensorInfo(Deserializer::TensorRawPtr tensorPtr) case DataType_QuantisedAsymm8: type = armnn::DataType::QuantisedAsymm8; break; + case DataType_QuantisedSymm16: + type = armnn::DataType::QuantisedSymm16; + break; case DataType_Signed32: type = armnn::DataType::Signed32; break; diff --git a/src/armnnSerializer/ArmnnSchema.fbs b/src/armnnSerializer/ArmnnSchema.fbs index 00c1a4502b..a11eeadf12 100644 --- a/src/armnnSerializer/ArmnnSchema.fbs +++ b/src/armnnSerializer/ArmnnSchema.fbs @@ -27,7 +27,8 @@ enum DataType : byte { Float32 = 1, QuantisedAsymm8 = 2, Signed32 = 3, - Boolean = 4 + Boolean = 4, + QuantisedSymm16 = 5 } enum DataLayout : byte { diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index 0340f56d17..cf67022267 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -855,6 +855,15 @@ flatbuffers::Offset<serializer::ConstTensor> fbPayload = flatBuffersData.o; break; } + case armnn::DataType::QuantisedSymm16: + { + auto fbVector = CreateDataVector<int16_t>(constTensor.GetMemoryArea(), constTensor.GetNumBytes()); + flatbuffers::Offset<serializer::ShortData> flatBuffersData = serializer::CreateShortData( + m_flatBufferBuilder, + fbVector); + fbPayload = flatBuffersData.o; + break; + } case armnn::DataType::QuantisedAsymm8: case armnn::DataType::Boolean: default: |