aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Layer.hpp
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2020-10-23 17:20:05 +0100
committerKeith Davis <keith.davis@arm.com>2020-11-09 10:54:30 +0000
commitdf04d23a6608fa3d5d1c1ffae4abc43582034d22 (patch)
tree3bb1caa7cb73937f31b77156824872ad78255363 /src/armnn/Layer.hpp
parent90231b8c9f680d323e4b93dcd0820a47925e6d24 (diff)
downloadarmnn-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.hpp19
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;