diff options
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 |