class InferenceEngine::gpu::D3DBufferBlob¶
Overview¶
This class represents an abstraction for GPU plugin remote blob which is shared with Direct3D 11 buffer. The plugin object derived from this class can be obtained with CreateBlob() call. More…
#include <gpu_context_api_dx.hpp>
class D3DBufferBlob: public InferenceEngine::gpu::ClBufferBlob
{
public:
// typedefs
typedef std::shared_ptr<D3DBufferBlob> Ptr;
// construction
D3DBufferBlob(const TensorDesc& tensorDesc);
// methods
operator ID3D11Buffer \* ();
};
Inherited Members¶
public:
// typedefs
typedef std::shared_ptr<Blob> Ptr;
typedef std::shared_ptr<const Blob> CPtr;
typedef std::shared_ptr<MemoryBlob> Ptr;
typedef std::shared_ptr<const MemoryBlob> CPtr;
typedef std::shared_ptr<RemoteBlob> Ptr;
typedef std::shared_ptr<const RemoteBlob> CPtr;
typedef std::shared_ptr<ClBlob> Ptr;
typedef std::shared_ptr<ClBufferBlob> Ptr;
// methods
static Ptr CreateFromData(const DataPtr& data);
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<Blob, T>::value, int>::type = 0
>
bool is();
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<Blob, T>::value, int>::type = 0
>
bool is() const;
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<Blob, T>::value, int>::type = 0
>
T \* as();
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<Blob, T>::value, int>::type = 0
>
const T \* as() const;
virtual const TensorDesc& getTensorDesc() const;
virtual TensorDesc& getTensorDesc();
virtual size_t size() const;
virtual size_t byteSize() const;
virtual size_t element_size() const = 0;
virtual void allocate() = 0;
virtual bool deallocate() = 0;
void setShape(const SizeVector& dims);
virtual Blob::Ptr createROI(const ROI& roi) const;
virtual Blob::Ptr createROI(
const std::vector<std::size_t>& begin,
const std::vector<std::size_t>& end
) const;
virtual const TensorDesc& getTensorDesc() const;
virtual TensorDesc& getTensorDesc();
virtual size_t size() const;
virtual size_t byteSize() const;
virtual size_t element_size() const;
virtual void allocate() = 0;
virtual bool deallocate() = 0;
virtual LockedMemory<void> rwmap() = 0;
virtual LockedMemory<const void> rmap() const = 0;
virtual LockedMemory<void> wmap() = 0;
virtual ParamMap getParams() const = 0;
virtual std::string getDeviceName() const = 0;
virtual std::shared_ptr<RemoteContext> getContext() const = 0;
cl_mem get();
operator cl_mem ();
operator cl::Buffer ();
Detailed Documentation¶
This class represents an abstraction for GPU plugin remote blob which is shared with Direct3D 11 buffer. The plugin object derived from this class can be obtained with CreateBlob() call.
User can also obtain OpenCL buffer handle from this class.
Typedefs¶
typedef std::shared_ptr<D3DBufferBlob> Ptr
A smart pointer to the D3DBufferBlob object.
Construction¶
D3DBufferBlob(const TensorDesc& tensorDesc)
Creates a D3DBufferBlob object with the specified dimensions and layout.
Parameters:
tensorDesc |
Tensor description |
Methods¶
operator ID3D11Buffer \* ()
ID3D11Buffer conversion operator for the D3DContext object.
Returns:
Pointer to underlying ID3D11Buffer interface