aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/graph/backends/NEON
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-05-03 20:47:16 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:51:50 +0000
commit3d1489de593574e65ef1e64a7ae64e4e56c2978b (patch)
treef87f3df521cb5ed8bd383dad89cbeb92c49670ac /arm_compute/graph/backends/NEON
parent54d6fae4dbb4f556cc5ec484c51681ad84c015a7 (diff)
downloadComputeLibrary-3d1489de593574e65ef1e64a7ae64e4e56c2978b.tar.gz
COMPMID-605: Transition buffer memory manager
Change-Id: Ide7c6124eb19f13f15f517e62d705646a0cd1ecd Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/130184 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute/graph/backends/NEON')
-rw-r--r--arm_compute/graph/backends/NEON/NEDeviceBackend.h1
-rw-r--r--arm_compute/graph/backends/NEON/NESubTensorHandle.h21
-rw-r--r--arm_compute/graph/backends/NEON/NETensorHandle.h14
3 files changed, 25 insertions, 11 deletions
diff --git a/arm_compute/graph/backends/NEON/NEDeviceBackend.h b/arm_compute/graph/backends/NEON/NEDeviceBackend.h
index b23c83adea..c1e2e0c078 100644
--- a/arm_compute/graph/backends/NEON/NEDeviceBackend.h
+++ b/arm_compute/graph/backends/NEON/NEDeviceBackend.h
@@ -44,6 +44,7 @@ public:
void initialize_backend() override;
void setup_backend_context(GraphContext &ctx) override;
bool is_backend_supported() override;
+ IAllocator *backend_allocator() override;
std::unique_ptr<ITensorHandle> create_tensor(const Tensor &tensor) override;
std::unique_ptr<ITensorHandle> create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) override;
std::unique_ptr<arm_compute::IFunction> configure_node(INode &node, GraphContext &ctx) override;
diff --git a/arm_compute/graph/backends/NEON/NESubTensorHandle.h b/arm_compute/graph/backends/NEON/NESubTensorHandle.h
index 11dcec60f3..101d3e6644 100644
--- a/arm_compute/graph/backends/NEON/NESubTensorHandle.h
+++ b/arm_compute/graph/backends/NEON/NESubTensorHandle.h
@@ -52,18 +52,27 @@ public:
NESubTensorHandle(NESubTensorHandle &&) = default;
/** Allow instances of this class to be moved */
NESubTensorHandle &operator=(NESubTensorHandle &&) = default;
+ /** Prevent instances of this class from being copied (As this class contains pointers) */
+ NESubTensorHandle(const NESubTensorHandle &) = delete;
+ /** Prevent instances of this class from being copied (As this class contains pointers) */
+ NESubTensorHandle &operator=(const NESubTensorHandle &) = delete;
// Inherited overridden methods
- void allocate() override;
+ void allocate() override;
+ void free() override;
+ void manage(IMemoryGroup *mg) override;
+ void map(bool blocking) override;
+ void unmap() override;
+ void release_if_unused() override;
arm_compute::ITensor &tensor() override;
const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
+ ITensorHandle *parent_handle() override;
+ bool is_subtensor() const override;
+ Target target() const override;
private:
- arm_compute::SubTensor _sub_tensor; /**< Backend Sub-Tensor */
+ arm_compute::SubTensor _sub_tensor; /**< Backend Sub-Tensor */
+ ITensorHandle *_parent_handle; /**< Parent handle */
};
} // namespace backends
} // namespace graph
diff --git a/arm_compute/graph/backends/NEON/NETensorHandle.h b/arm_compute/graph/backends/NEON/NETensorHandle.h
index 06ccdd83cc..150e0c97c8 100644
--- a/arm_compute/graph/backends/NEON/NETensorHandle.h
+++ b/arm_compute/graph/backends/NEON/NETensorHandle.h
@@ -51,13 +51,17 @@ public:
NETensorHandle &operator=(NETensorHandle &&) = default;
// Inherited overridden methods
- void allocate() override;
+ void allocate() override;
+ void free() override;
+ void manage(IMemoryGroup *mg) override;
+ void map(bool blocking) override;
+ void unmap() override;
+ void release_if_unused() override;
arm_compute::ITensor &tensor() override;
const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
+ ITensorHandle *parent_handle() override;
+ bool is_subtensor() const override;
+ Target target() const override;
private:
arm_compute::Tensor _tensor; /**< Backend Tensor */