diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-11-25 16:10:00 +0000 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-12-08 12:57:47 +0000 |
commit | c5fe6e71cd39096af7c2523ec2afe96008c51b0c (patch) | |
tree | 1486349bc36e17c1577465aab81d9eb3ca64e861 /src/backends/tosaCommon/TosaLayerSupportRules.hpp | |
parent | 3106c7f1714aea556d06d9f1e8c7faaeaeca996d (diff) | |
download | armnn-c5fe6e71cd39096af7c2523ec2afe96008c51b0c.tar.gz |
IVGCVSW-7168 Add Conv2d and Constant support to TOSA Reference Backend
* Added TOSA Conv2d and Constant mappings.
* Added unique naming to mappings based on previous and following
layers, so they are connected correctly.
* Updated existing mappings with new naming convention.
* Added all mappings to one main block in OptimizeSubgraphView.
* Removed isMain from mapping functions.
* Added Conv2d EndToEnd test.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I27c3e238407c32379ce25a1f01dad11523ef5d2b
Diffstat (limited to 'src/backends/tosaCommon/TosaLayerSupportRules.hpp')
-rw-r--r-- | src/backends/tosaCommon/TosaLayerSupportRules.hpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/backends/tosaCommon/TosaLayerSupportRules.hpp b/src/backends/tosaCommon/TosaLayerSupportRules.hpp index 792908c619..8855dd612d 100644 --- a/src/backends/tosaCommon/TosaLayerSupportRules.hpp +++ b/src/backends/tosaCommon/TosaLayerSupportRules.hpp @@ -48,14 +48,34 @@ struct TosaAssertSize : public Rule } }; -struct TosaContainerContains : public Rule +struct TosaContainerContainsTwoTypes : public Rule { - explicit TosaContainerContains(std::tuple<DType, DType>& check, const std::vector<std::tuple<DType, DType>>& c) + explicit TosaContainerContainsTwoTypes(std::tuple<DType, DType>& check, + const std::vector<std::tuple<DType, DType>>& c) { for (auto item: c) { - if (std::get<0>(check) == std::get<0>(item) - && std::get<1>(check) == std::get<1>(item)) + if (std::get<0>(check) == std::get<0>(item) && + std::get<1>(check) == std::get<1>(item)) + { + m_Res = true; + return; + } + } + m_Res = false; + } +}; + +struct TosaContainerContainsThreeTypes : public Rule +{ + explicit TosaContainerContainsThreeTypes(std::tuple<DType, DType, DType>& check, + const std::vector<std::tuple<DType, DType, DType>>& c) + { + for (auto item: c) + { + if (std::get<0>(check) == std::get<0>(item) && + std::get<1>(check) == std::get<1>(item) && + std::get<2>(check) == std::get<2>(item)) { m_Res = true; return; |