diff options
author | Francis Murtagh <francis.murtagh@arm.com> | 2021-10-14 17:30:24 +0100 |
---|---|---|
committer | Teresa Charlin <teresa.charlinreyes@arm.com> | 2021-10-19 22:26:45 +0100 |
commit | e8d7ccb1a18b5c39ecf17fb063fcc50baacc74b3 (patch) | |
tree | d1a072111807145a786b4c4221707bd34c1373be /include/armnn | |
parent | fc7c2f3c1dd990620a01ecf1a6641813e6f46ef8 (diff) | |
download | armnn-e8d7ccb1a18b5c39ecf17fb063fcc50baacc74b3.tar.gz |
IVGCVSW-6310 Update ICustomAllocator and add GetDefaultAllocator function to backends
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: If2879e8a82692285e7fa3f4d09abd608ca28de12
Diffstat (limited to 'include/armnn')
-rw-r--r-- | include/armnn/backends/IBackendInternal.hpp | 20 | ||||
-rw-r--r-- | include/armnn/backends/ICustomAllocator.hpp | 26 |
2 files changed, 34 insertions, 12 deletions
diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp index f4fe678a5b..7500e35897 100644 --- a/include/armnn/backends/IBackendInternal.hpp +++ b/include/armnn/backends/IBackendInternal.hpp @@ -13,12 +13,12 @@ #include <SubgraphView.hpp> #include <optimizations/Optimization.hpp> -#include "IBackendContext.hpp" -#include "armnn/backends/profiling/IBackendProfiling.hpp" -#include "armnn/backends/profiling/IBackendProfilingContext.hpp" -#include "IMemoryManager.hpp" -#include "ITensorHandleFactory.hpp" -#include "OptimizationViews.hpp" +#include <armnn/backends/IBackendContext.hpp> +#include <armnn/backends/IMemoryManager.hpp> +#include <armnn/backends/ITensorHandleFactory.hpp> +#include <armnn/backends/OptimizationViews.hpp> +#include <armnn/backends/profiling/IBackendProfiling.hpp> +#include <armnn/backends/profiling/IBackendProfilingContext.hpp> #include <vector> #include <memory> @@ -198,6 +198,14 @@ public: } return false; } + + /// Returns the default memory allocator for the backend + /// + /// \return - Returns unique pointer to the Default Allocator of the Backend + virtual std::unique_ptr<ICustomAllocator> GetDefaultAllocator() const + { + throw armnn::Exception("GetDefaultAllocator: Function has not been implemented in backend."); + } }; using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>; diff --git a/include/armnn/backends/ICustomAllocator.hpp b/include/armnn/backends/ICustomAllocator.hpp index 2cb5f41f78..eb8dfe1459 100644 --- a/include/armnn/backends/ICustomAllocator.hpp +++ b/include/armnn/backends/ICustomAllocator.hpp @@ -8,6 +8,7 @@ #include <cstddef> #include <memory> #include <armnn/MemorySources.hpp> +#include <armnn/utility/IgnoreUnused.hpp> namespace armnn { @@ -31,13 +32,26 @@ public: /** Interface to be implemented by the child class to free the allocated bytes */ virtual void free(void* ptr) = 0; - // Used to specify what type of memory is being allocated by this allocator. - // Supported types are: - // MemorySource::Malloc - // MemorySource::DmaBuf - // Unsupported types are: - // MemorySource::DmaBufProtected + /** Used to specify what type of memory is being allocated by this allocator. + * Supported types are: + * MemorySource::Malloc + * MemorySource::DmaBuf + * Unsupported types are: + * MemorySource::DmaBufProtected + */ virtual armnn::MemorySource GetMemorySourceType() = 0; + /** Interface that may be implemented to allow retrieval of Memory Region + * from allocated buffer at a certain offset + */ + virtual void* GetMemoryRegionAtOffset(void* buffer, size_t offset, size_t alignment = 0) + { + IgnoreUnused(offset); + IgnoreUnused(alignment); + IgnoreUnused(buffer); + throw armnn::Exception( + "ICustomerAllocator::GetMemoryRegionAtOffset(): This function should be overridden in subclass."); + } + }; } // namespace armnn
\ No newline at end of file |