From 701d9a0b7316d9b31e05f9238fd8b389d89066ee Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Wed, 4 Sep 2019 15:16:18 +0100 Subject: IVGCVSW-3660 Add SQRT to the android-nn-driver * Implemented Convert() function for SQRT operator * Fixed some typos in HAL 1.2 Policy Change-Id: I1e0bc7a43622c52f053927248ee1a71cb797145e Signed-off-by: Sadik Armagan --- 1.2/HalPolicy.cpp | 17 ++++++++++++++--- 1.2/HalPolicy.hpp | 2 ++ NnapiSupport.txt | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp index e08ae84f..7bad22db 100644 --- a/1.2/HalPolicy.cpp +++ b/1.2/HalPolicy.cpp @@ -83,6 +83,8 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model, return ConvertResize(operation, model, data, armnn::ResizeMethod::Bilinear); case V1_2::OperationType::RESIZE_NEAREST_NEIGHBOR: return ConvertResize(operation, model, data, armnn::ResizeMethod::NearestNeighbor); + case V1_2::OperationType::SQRT: + return ConvertSqrt(operation, model, data); case V1_2::OperationType::SQUEEZE: return ConvertSqueeze(operation, model, data); case V1_2::OperationType::STRIDED_SLICE: @@ -1739,21 +1741,30 @@ bool HalPolicy::ConvertLstm(const Operation& operation, const Model& model, Conv SetupAndTrackLayerOutputSlot(operation, 3, *layer, 3, model, data)); } +bool HalPolicy::ConvertSqrt(const Operation& operation, const Model& model, ConversionData& data) +{ + ALOGV("hal_1_2::HalPolicy::ConvertSqrt()"); + armnn::ActivationDescriptor desc; + desc.m_Function = armnn::ActivationFunction::Sqrt; + + return ::ConvertToActivation(operation, __func__, desc, model, data); +} + bool HalPolicy::ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data) { - ALOGV("hal_1_1::HalPolicy::ConvertSqueeze()"); + ALOGV("hal_1_2::HalPolicy::ConvertSqueeze()"); return ::ConvertSqueeze(operation, model, data); } bool HalPolicy::ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data) { - ALOGV("hal_1_1::HalPolicy::ConvertStridedSlice()"); + ALOGV("hal_1_2::HalPolicy::ConvertStridedSlice()"); return ::ConvertStridedSlice(operation, model, data); } bool HalPolicy::ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data) { - ALOGV("hal_1_1::HalPolicy::ConvertTranspose()"); + ALOGV("hal_1_2::HalPolicy::ConvertTranspose()"); return ::ConvertTranspose(operation, model, data); } diff --git a/1.2/HalPolicy.hpp b/1.2/HalPolicy.hpp index 4a785d9e..5c8a61ec 100644 --- a/1.2/HalPolicy.hpp +++ b/1.2/HalPolicy.hpp @@ -102,6 +102,8 @@ private: static bool ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertSqrt(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data); static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data); diff --git a/NnapiSupport.txt b/NnapiSupport.txt index f1987962..50d99b13 100644 --- a/NnapiSupport.txt +++ b/NnapiSupport.txt @@ -47,6 +47,7 @@ RESIZE_NEAREST_NEIGHBOR (FLOAT32,QUANT8_ASYMM) SOFTMAX (FLOAT32,QUANT8_ASYMM) SPACE_TO_BATCH_ND (FLOAT32,QUANT8_ASYMM) SPACE_TO_DEPTH_ND (FLOAT32,QUANT8_ASYMM) +SQRT (FLOAT32) SQUEEZE (FLOAT32,QUANT8_ASYMM) STRIDED_SLICE (FLOAT32,QUANT8_ASYMM) SUB (FLOAT32,QUANT8_ASYMM) -- cgit v1.2.1