class ov::intel_gpu::ocl::VAContext¶
Overview¶
This class represents an abstraction for GPU plugin remote context which is shared with VA display object. The plugin object derived from this class can be obtained either with CompiledModel::get_context() or Core::create_context() calls. More…
#include <va.hpp>
class VAContext: public ov::intel_gpu::ocl::ClContext
{
public:
// construction
VAContext(Core& core, VADisplay device, int target_tile_id = -1);
// methods
static void type_check(const RemoteContext& remote_context);
operator VADisplay ();
std::pair<VASurfaceTensor, VASurfaceTensor> create_tensor_nv12(
const size_t height,
const size_t width,
const VASurfaceID nv12_surf
);
VASurfaceTensor create_tensor(
const element::Type type,
const Shape& shape,
const VASurfaceID surface,
const uint32_t plane = 0
);
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl_mem buffer
);
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Buffer& buffer
);
ClImage2DTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Image2D& image
);
USMTensor create_tensor(
const element::Type type,
const Shape& shape,
void \* usm_ptr
);
RemoteTensor create_tensor(
const element::Type& type,
const Shape& shape,
const AnyMap& params = {}
);
};
Inherited Members¶
public:
// methods
RemoteContext& operator = (const RemoteContext& other);
RemoteContext& operator = (RemoteContext&& other);
template <typename T>
bool is() const;
template <typename T>
const T as() const;
RemoteTensor create_tensor(
const element::Type& type,
const Shape& shape,
const AnyMap& params = {}
);
AnyMap get_params() const;
Tensor create_host_tensor(const element::Type type, const Shape& shape);
static void type_check(
const RemoteContext& remote_context,
const std::map<std::string, std::vector<std::string>>& type_info = {}
);
static void type_check(const RemoteContext& remote_context);
cl_context get();
operator cl_context ();
operator cl::Context ();
std::pair<ClImage2DTensor, ClImage2DTensor> create_tensor_nv12(
const cl::Image2D& nv12_image_plane_y,
const cl::Image2D& nv12_image_plane_uv
);
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl_mem buffer
);
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Buffer& buffer
);
ClImage2DTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Image2D& image
);
USMTensor create_tensor(
const element::Type type,
const Shape& shape,
void \* usm_ptr
);
USMTensor create_usm_host_tensor(const element::Type type, const Shape& shape);
USMTensor create_usm_device_tensor(const element::Type type, const Shape& shape);
RemoteTensor create_tensor(
const element::Type& type,
const Shape& shape,
const AnyMap& params = {}
);
Detailed Documentation¶
This class represents an abstraction for GPU plugin remote context which is shared with VA display object. The plugin object derived from this class can be obtained either with CompiledModel::get_context() or Core::create_context() calls.
User can also obtain OpenCL context handle from this class.
Construction¶
VAContext(Core& core, VADisplay device, int target_tile_id = -1)
Constructs remote context object from VA display handle.
Parameters:
core |
OpenVINO Runtime Core object |
device |
A |
target_tile_id |
Desired tile id within given context for multi-tile system. Default value (-1) means that root device should be used |
Methods¶
static void type_check(const RemoteContext& remote_context)
Checks that type defined runtime parameters are presented in remote object.
Parameters:
remote_context |
A remote context to check |
operator VADisplay ()
VADisplay
conversion operator for the VAContext object.
Returns:
Underlying VADisplay
object handle
std::pair<VASurfaceTensor, VASurfaceTensor> create_tensor_nv12(
const size_t height,
const size_t width,
const VASurfaceID nv12_surf
)
This function is used to obtain a NV12 tensor from NV12 VA decoder output. The resulting tensor contains two remote tensors for Y and UV planes of the surface.
Parameters:
height |
A height of Y plane |
width |
A width of Y plane |
nv12_surf |
NV12 |
Returns:
A pair of remote tensors for each plane
VASurfaceTensor create_tensor(
const element::Type type,
const Shape& shape,
const VASurfaceID surface,
const uint32_t plane = 0
)
This function is used to create remote tensor from VA surface handle.
Parameters:
type |
Tensor element type |
shape |
Tensor shape |
surface |
A |
plane |
An index of a plane inside |
Returns:
A remote tensor wrapping VASurfaceID
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl_mem buffer
)
This function is used to obtain remote tensor object from user-supplied cl_mem object.
Parameters:
type |
Tensor element type |
shape |
Tensor shape |
buffer |
A cl_mem object that should be wrapped by a remote tensor |
Returns:
A remote tensor instance
ClBufferTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Buffer& buffer
)
This function is used to obtain remote tensor object from user-supplied cl::Buffer object.
Parameters:
type |
Tensor element type |
shape |
Tensor shape |
buffer |
A cl::Buffer object that should be wrapped by a remote tensor |
Returns:
A remote tensor instance
ClImage2DTensor create_tensor(
const element::Type type,
const Shape& shape,
const cl::Image2D& image
)
This function is used to obtain remote tensor object from user-supplied cl::Image2D object.
Parameters:
type |
Tensor element type |
shape |
Tensor shape |
image |
A cl::Image2D object that should be wrapped by a remote tensor |
Returns:
A remote tensor instance
USMTensor create_tensor(
const element::Type type,
const Shape& shape,
void \* usm_ptr
)
This function is used to obtain remote tensor object from user-supplied USM pointer.
Parameters:
type |
Tensor element type |
shape |
Tensor shape |
usm_ptr |
A USM pointer that should be wrapped by a remote tensor |
Returns:
A remote tensor instance
RemoteTensor create_tensor(
const element::Type& type,
const Shape& shape,
const AnyMap& params = {}
)
Allocates memory tensor 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 that implements the RemoteTensor interface.
Parameters:
type |
Defines the element type of the tensor. |
shape |
Defines the shape of the tensor. |
params |
Map of the low-level tensor object parameters. |
Returns:
Pointer to a plugin object that implements the RemoteTensor interface.