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 &params = {}) = 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