diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-05-03 20:47:16 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:51:50 +0000 |
commit | 3d1489de593574e65ef1e64a7ae64e4e56c2978b (patch) | |
tree | f87f3df521cb5ed8bd383dad89cbeb92c49670ac /arm_compute/graph/backends/CL | |
parent | 54d6fae4dbb4f556cc5ec484c51681ad84c015a7 (diff) | |
download | ComputeLibrary-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/CL')
-rw-r--r-- | arm_compute/graph/backends/CL/CLDeviceBackend.h | 1 | ||||
-rw-r--r-- | arm_compute/graph/backends/CL/CLSubTensorHandle.h | 21 | ||||
-rw-r--r-- | arm_compute/graph/backends/CL/CLTensorHandle.h | 14 |
3 files changed, 25 insertions, 11 deletions
diff --git a/arm_compute/graph/backends/CL/CLDeviceBackend.h b/arm_compute/graph/backends/CL/CLDeviceBackend.h index 5adbe0e1a8..ab39d0fb1b 100644 --- a/arm_compute/graph/backends/CL/CLDeviceBackend.h +++ b/arm_compute/graph/backends/CL/CLDeviceBackend.h @@ -55,6 +55,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/CL/CLSubTensorHandle.h b/arm_compute/graph/backends/CL/CLSubTensorHandle.h index 4be5842c70..0c515a1c53 100644 --- a/arm_compute/graph/backends/CL/CLSubTensorHandle.h +++ b/arm_compute/graph/backends/CL/CLSubTensorHandle.h @@ -52,18 +52,27 @@ public: CLSubTensorHandle(CLSubTensorHandle &&) = default; /** Allow instances of this class to be moved */ CLSubTensorHandle &operator=(CLSubTensorHandle &&) = default; + /** Prevent instances of this class from being copied (As this class contains pointers) */ + CLSubTensorHandle(const CLSubTensorHandle &) = delete; + /** Prevent instances of this class from being copied (As this class contains pointers) */ + CLSubTensorHandle &operator=(const CLSubTensorHandle &) = 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::CLSubTensor _sub_tensor; /**< Backend Sub-Tensor */ + arm_compute::CLSubTensor _sub_tensor; /**< Backend Sub-Tensor */ + ITensorHandle *_parent_handle; /**< Parent handle */ }; } // namespace backends } // namespace graph diff --git a/arm_compute/graph/backends/CL/CLTensorHandle.h b/arm_compute/graph/backends/CL/CLTensorHandle.h index 8f5a70cbbb..23997325d8 100644 --- a/arm_compute/graph/backends/CL/CLTensorHandle.h +++ b/arm_compute/graph/backends/CL/CLTensorHandle.h @@ -51,13 +51,17 @@ public: CLTensorHandle &operator=(CLTensorHandle &&) = 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::CLTensor _tensor; /**< Backend Tensor */ |