Class InferenceEngine::RemoteContext¶
-
class RemoteContext : public std::enable_shared_from_this<RemoteContext>¶
This class represents an Inference Engine abstraction for remote (non-CPU) accelerator device-specific execution context. Such context represents a scope on the device within which executable networks and remote memory blobs can exist, function and exchange data.
Subclassed by InferenceEngine::gpu::ClContext
Public Types
-
using Ptr = std::shared_ptr<RemoteContext>¶
A smart pointer to the RemoteContext object.
-
using CPtr = std::shared_ptr<const RemoteContext>¶
A smart pointer to the const RemoteContext object.
Public Functions
-
virtual ~RemoteContext() = default¶
RemoteContext virtual destructor.
-
template<typename T, typename std::enable_if<!std::is_pointer<T>::value && !std::is_reference<T>::value, int>::type = 0, typename std::enable_if<std::is_base_of<RemoteContext, T>::value, int>::type = 0>
inline bool is() noexcept¶ Checks if the RemoteContext object can be cast to the type T*.
- Template Parameters
T – Type to be checked. Must represent a class derived from the RemoteContext
- Returns
true if this object can be dynamically cast to the type T*. Otherwise, false
-
template<typename T, typename std::enable_if<!std::is_pointer<T>::value && !std::is_reference<T>::value, int>::type = 0, typename std::enable_if<std::is_base_of<RemoteContext, T>::value, int>::type = 0>
inline bool is() const noexcept¶ Checks if the RemoteContext object can be cast to the type const T*.
- Template Parameters
T – Type to be checked. Must represent a class derived from the RemoteContext
- Returns
true if this object can be dynamically cast to the type const T*. Otherwise, false
-
template<typename T, typename std::enable_if<!std::is_pointer<T>::value && !std::is_reference<T>::value, int>::type = 0, typename std::enable_if<std::is_base_of<RemoteContext, T>::value, int>::type = 0>
inline T *as() noexcept¶ Casts this RemoteContext object to the type T*.
- Template Parameters
T – Type to cast to. Must represent a class derived from the RemoteContext
- Returns
Raw pointer to the object of the type T or nullptr on error
-
template<typename T, typename std::enable_if<!std::is_pointer<T>::value && !std::is_reference<T>::value, int>::type = 0, typename std::enable_if<std::is_base_of<RemoteContext, T>::value, int>::type = 0>
inline const T *as() const noexcept¶ Casts this RemoteContext object to the type const T*.
- Template Parameters
T – Type to cast to. Must represent a class derived from the RemoteContext
- Returns
Raw pointer to the object of the type const T or nullptr on error
-
virtual std::string getDeviceName() const noexcept = 0¶
Returns name of the device on which underlying object is allocated. Abstract method.
- Returns
A device name string in the same format as that in plugin metric.
-
virtual RemoteBlob::Ptr CreateBlob(const TensorDesc &tensorDesc, const ParamMap ¶ms = {}) = 0¶
Allocates memory blob in device memory or wraps user-supplied memory handle using the specified tensor description and low-level device-specific parameters. Returns a pointer to the object which implements RemoteBlob interface.
- Parameters
tensorDesc – Defines the layout and dims of the blob
params – Map of the low-level blob object parameters. Abstract method.
- Returns
A pointer to plugin object that implements RemoteBlob interface.
-
virtual MemoryBlob::Ptr CreateHostBlob(const TensorDesc &tensorDesc)¶
Allocates host accessible memory blob friendly for the device in current context Returns a pointer to the object which implements MemoryBlob interface.
- Parameters
tensorDesc – Defines the layout and dims of the blob
- Returns
A pointer to host accessible MemoryBlob object
-
virtual ParamMap getParams() const = 0¶
Returns a map of device-specific parameters required for low-level operations with underlying object. Parameters include device/context handles, access flags, etc. Contents of the map returned depend on remote execution context that is currently set on the device (working scenario). Abstract method.
- Returns
A map of name/parameter elements.
-
const std::shared_ptr<InferenceEngine::RemoteContext> GetHardwareContext()¶
Unwrap hardware remote context.
- Returns
shared pointer to plugin specific remote context
-
const std::shared_ptr<const InferenceEngine::RemoteContext> GetHardwareContext() const¶
Unwrap hardware remote context.
- Returns
shared pointer to plugin specific remote context
-
using Ptr = std::shared_ptr<RemoteContext>¶