diff options
author | Keith Davis <keith.davis@arm.com> | 2020-10-23 17:20:05 +0100 |
---|---|---|
committer | Keith Davis <keith.davis@arm.com> | 2020-11-09 10:54:30 +0000 |
commit | df04d23a6608fa3d5d1c1ffae4abc43582034d22 (patch) | |
tree | 3bb1caa7cb73937f31b77156824872ad78255363 /src/armnn/Layer.hpp | |
parent | 90231b8c9f680d323e4b93dcd0820a47925e6d24 (diff) | |
download | armnn-df04d23a6608fa3d5d1c1ffae4abc43582034d22.tar.gz |
IVGCVSW-5327 Add to Layer a binary blob to host the activation layer info
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I0a07dea96a86849701ba387dbea148909a6d729b
Diffstat (limited to 'src/armnn/Layer.hpp')
-rw-r--r-- | src/armnn/Layer.hpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/armnn/Layer.hpp b/src/armnn/Layer.hpp index fff57732aa..6cb3b8f5bd 100644 --- a/src/armnn/Layer.hpp +++ b/src/armnn/Layer.hpp @@ -28,6 +28,7 @@ #include <memory> #include <string> #include <vector> +#include <backendsCommon/WorkloadData.hpp> namespace armnn { @@ -204,6 +205,7 @@ class ScopedCpuTensorHandle; // Base layer class using LayerPriority = unsigned int; +using AdditionalInfoObjectPtr = std::shared_ptr<void>; class Layer : public IConnectableLayer { @@ -333,6 +335,17 @@ public: m_ShapeInferenceMethod = shapeInferenceMethod; } + template<typename T> + std::shared_ptr<T> GetAdditionalInformation() + { + return std::static_pointer_cast<T>(m_AdditionalInfoObject); + } + + void SetAdditionalInfoForObject(const AdditionalInfoObjectPtr& additionalInfo) + { + m_AdditionalInfoObject = additionalInfo; + } + protected: // Graph needs access to the virtual destructor. friend class Graph; @@ -377,6 +390,12 @@ protected: using ConstantTensors = std::vector<std::reference_wrapper<std::unique_ptr<ScopedCpuTensorHandle>>>; virtual ConstantTensors GetConstantTensorsByRef() {return ConstantTensors(); }; + // "Blob" + AdditionalInfoObjectPtr m_AdditionalInfoObject; + + // Utility method to set a pointer in the queueDescriptor to the "blob" location in the layer + void SetAdditionalInfo(QueueDescriptor& descriptor) const; + private: void CollectWorkloadInputs(WorkloadDataCollector& dataCollector) const; void CollectWorkloadOutputs(WorkloadDataCollector& dataCollector) const; |