diff options
author | Matthew Bentham <Matthew.Bentham@arm.com> | 2020-02-04 10:03:55 +0000 |
---|---|---|
committer | Derek Lamberti <derek.lamberti@arm.com> | 2020-02-04 13:13:46 +0000 |
commit | 9a61fa6bdc8724cc66eba532360e0e48b6b1a60e (patch) | |
tree | 547a2e5db5af7517171a84c9395ac9c42151e6db /include/armnn/backends | |
parent | 3d8bc97ff2250b230b105b3df34d1ef3efd82d2c (diff) | |
download | armnn-9a61fa6bdc8724cc66eba532360e0e48b6b1a60e.tar.gz |
Github #273 Handle failure to initialise BackendContext in Runtime
Define CreateBackendContext to throw BackendUnavailableException
if necessary runtime components are missing.
Handle this in the constructor of Runtime by not adding those
backends to the internal DeviceSpec owned by the Runtime.
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
Change-Id: Iadffb5240e32e1f105683c4d361276b92d1e720c
Diffstat (limited to 'include/armnn/backends')
-rw-r--r-- | include/armnn/backends/IBackendInternal.hpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp index 29097b4ae7..6c919ee5d4 100644 --- a/include/armnn/backends/IBackendInternal.hpp +++ b/include/armnn/backends/IBackendInternal.hpp @@ -115,9 +115,16 @@ public: virtual IWorkloadFactoryPtr CreateWorkloadFactory( class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const; + /// Create the runtime context of the backend + /// + /// Implementations may return a default-constructed IBackendContextPtr if + /// no context is needed at runtime. + /// Implementations must throw BackendUnavailableException if the backend + /// cannot be used (for example, necessary accelerator hardware is not present). + /// The default implementation always returns a default-constructed pointer. virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const; - // Context specifically used for profiling interaction from backends. + /// Create context specifically used for profiling interaction from backends. virtual IBackendProfilingContextPtr CreateBackendProfilingContext(const IRuntime::CreationOptions& creationOptions, armnn::profiling::IBackendProfiling& backendProfiling) const; |