#include <detail/sycl_mem_obj_t.hpp>
Public Member Functions | |
SYCLMemObjT (const size_t SizeInBytes, const property_list &Props, std::unique_ptr< SYCLMemObjAllocator > Allocator) | |
SYCLMemObjT (const property_list &Props, std::unique_ptr< SYCLMemObjAllocator > Allocator) | |
SYCLMemObjT (ur_native_handle_t MemObject, const context &SyclContext, const size_t SizeInBytes, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator) | |
SYCLMemObjT (cl_mem MemObject, const context &SyclContext, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator) | |
SYCLMemObjT (ur_native_handle_t MemObject, const context &SyclContext, bool OwnNativeHandle, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator) | |
SYCLMemObjT (ur_native_handle_t MemObject, const context &SyclContext, bool OwnNativeHandle, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator, ur_image_format_t Format, range< 3 > Range3WithOnes, unsigned Dimensions, size_t ElementSize) | |
virtual | ~SYCLMemObjT ()=default |
const PluginPtr & | getPlugin () const |
size_t | getSizeInBytes () const noexcept override |
__SYCL2020_DEPRECATED ("get_count() is deprecated, please use size() instead") size_t get_count() const | |
size_t | size () const noexcept |
template<typename propertyT > | |
bool | has_property () const noexcept |
template<typename propertyT > | |
propertyT | get_property () const |
void | addOrReplaceAccessorProperties (const property_list &PropertyList) |
void | deleteAccessorProperty (const PropWithDataKind &Kind) |
const std::unique_ptr< SYCLMemObjAllocator > & | get_allocator_internal () const |
void * | allocateHostMem () override |
void | releaseHostMem (void *Ptr) override |
void | releaseMem (ContextImplPtr Context, void *MemAllocation) override |
void * | getUserPtr () const |
void | set_write_back (bool NeedWriteBack) |
void | set_final_data (std::nullptr_t) |
void | set_final_data_from_storage () |
void | set_final_data (const std::function< void(const std::function< void(void *const Ptr)> &)> &FinalDataFunc) |
bool | useHostPtr () |
bool | canReadHostPtr (void *HostPtr, const size_t RequiredAlign) |
bool | canReuseHostPtr (void *HostPtr, const size_t RequiredAlign) |
void | handleHostData (void *HostPtr, const size_t RequiredAlign) |
void | handleHostData (const void *HostPtr, const size_t RequiredAlign) |
void | handleHostData (const std::shared_ptr< void > &HostPtr, const size_t RequiredAlign, bool IsConstPtr) |
void | handleHostData (const std::function< void(void *)> &CopyFromInput, const size_t RequiredAlign, bool IsConstPtr) |
void | setAlign (size_t RequiredAlign) |
void | handleWriteAccessorCreation () |
void * | allocateMem (ContextImplPtr Context, bool InitFromUserData, void *HostPtr, ur_event_handle_t &InteropEvent) override |
MemObjType | getType () const override |
ContextImplPtr | getInteropContext () const override |
bool | isInterop () const override |
bool | hasUserDataPtr () const override |
bool | isHostPointerReadOnly () const override |
bool | usesPinnedHostMemory () const override |
void | detachMemoryObject (const std::shared_ptr< SYCLMemObjT > &Self) const |
void | markAsInternal () |
bool | needsWriteBack () const |
Returns true if this memory object requires a write_back on destruction. More... | |
void | markBeingUsedInGraph () |
Increment an internal counter for how many graphs are currently using this memory object. More... | |
void | markNoLongerBeingUsedInGraph () |
Decrement an internal counter for how many graphs are currently using this memory object. More... | |
bool | isUsedInGraph () const |
Returns true if any graphs are currently using this memory object. More... | |
const property_list & | getPropList () const |
Public Member Functions inherited from sycl::_V1::detail::SYCLMemObjI | |
virtual | ~SYCLMemObjI ()=default |
Static Public Member Functions | |
static size_t | getBufSizeForContext (const ContextImplPtr &Context, ur_native_handle_t MemObject) |
Protected Member Functions | |
void | updateHostMemory (void *const Ptr) |
void | updateHostMemory () |
void | determineHostPtr (bool InitFromUserData, void *&HostPtr, bool &HostPtrReadOnly) |
Protected Attributes | |
std::unique_ptr< SYCLMemObjAllocator > | MAllocator |
property_list | MProps |
EventImplPtr | MInteropEvent |
ContextImplPtr | MInteropContext |
ur_mem_handle_t | MInteropMemObject |
bool | MOpenCLInterop |
bool | MHostPtrReadOnly |
bool | MNeedWriteBack |
size_t | MSizeInBytes |
void * | MUserPtr |
void * | MShadowCopy |
std::function< void(void)> | MUploadDataFunctor |
std::shared_ptr< const void > | MSharedPtrStorage |
bool | MHostPtrProvided |
bool | MIsInternal = false |
std::atomic< size_t > | MGraphUseCount = 0 |
std::function< void(void)> | MCreateShadowCopy = []() -> void {} |
bool | MOwnNativeHandle = true |
Protected Attributes inherited from sycl::_V1::detail::SYCLMemObjI | |
std::shared_ptr< MemObjRecord > | MRecord |
Additional Inherited Members | |
Public Types inherited from sycl::_V1::detail::SYCLMemObjI | |
enum | MemObjType { Buffer = 0 , Image = 1 , Undefined = 2 } |
Definition at line 41 of file sycl_mem_obj_t.hpp.
|
inline |
Definition at line 56 of file sycl_mem_obj_t.hpp.
|
inline |
Definition at line 65 of file sycl_mem_obj_t.hpp.
sycl::_V1::detail::SYCLMemObjT::SYCLMemObjT | ( | ur_native_handle_t | MemObject, |
const context & | SyclContext, | ||
const size_t | SizeInBytes, | ||
event | AvailableEvent, | ||
std::unique_ptr< SYCLMemObjAllocator > | Allocator | ||
) |
Definition at line 20 of file sycl_mem_obj_t.cpp.
|
inline |
Definition at line 73 of file sycl_mem_obj_t.hpp.
sycl::_V1::detail::SYCLMemObjT::SYCLMemObjT | ( | ur_native_handle_t | MemObject, |
const context & | SyclContext, | ||
bool | OwnNativeHandle, | ||
event | AvailableEvent, | ||
std::unique_ptr< SYCLMemObjAllocator > | Allocator | ||
) |
Definition at line 27 of file sycl_mem_obj_t.cpp.
References getPlugin(), sycl::_V1::invalid, sycl::_V1::make_error_code(), MInteropContext, MInteropMemObject, MSizeInBytes, and sycl::_V1::opencl.
sycl::_V1::detail::SYCLMemObjT::SYCLMemObjT | ( | ur_native_handle_t | MemObject, |
const context & | SyclContext, | ||
bool | OwnNativeHandle, | ||
event | AvailableEvent, | ||
std::unique_ptr< SYCLMemObjAllocator > | Allocator, | ||
ur_image_format_t | Format, | ||
range< 3 > | Range3WithOnes, | ||
unsigned | Dimensions, | ||
size_t | ElementSize | ||
) |
Definition at line 71 of file sycl_mem_obj_t.cpp.
References sycl::_V1::Dimensions, sycl::_V1::detail::getImageType(), getPlugin(), sycl::_V1::invalid, sycl::_V1::make_error_code(), MInteropContext, MInteropMemObject, and sycl::_V1::opencl.
|
virtualdefault |
|
inline |
Definition at line 95 of file sycl_mem_obj_t.hpp.
References size().
|
inline |
Definition at line 110 of file sycl_mem_obj_t.hpp.
References sycl::_V1::property_list::add_or_replace_accessor_properties(), and MProps.
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 122 of file sycl_mem_obj_t.hpp.
References MAllocator, and size().
Referenced by handleHostData().
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 272 of file sycl_mem_obj_t.hpp.
References sycl::_V1::make_error_code(), and sycl::_V1::runtime.
|
inline |
Definition at line 176 of file sycl_mem_obj_t.hpp.
References useHostPtr().
Referenced by canReuseHostPtr(), and handleHostData().
|
inline |
Definition at line 182 of file sycl_mem_obj_t.hpp.
References canReadHostPtr(), and MHostPtrReadOnly.
Referenced by handleHostData().
|
inline |
Definition at line 114 of file sycl_mem_obj_t.hpp.
References sycl::_V1::property_list::delete_accessor_property(), and MProps.
void sycl::_V1::detail::SYCLMemObjT::detachMemoryObject | ( | const std::shared_ptr< SYCLMemObjT > & | Self | ) | const |
Definition at line 199 of file sycl_mem_obj_t.cpp.
References sycl::_V1::detail::Scheduler::deferMemObjRelease(), sycl::_V1::detail::Scheduler::getInstance(), sycl::_V1::detail::GlobalHandler::instance(), sycl::_V1::detail::GlobalHandler::isOkToDefer(), MHostPtrProvided, MInteropContext, MIsInternal, MOwnNativeHandle, and sycl::_V1::detail::SYCLMemObjI::MRecord.
|
protected |
Definition at line 178 of file sycl_mem_obj_t.cpp.
References getUserPtr(), and MHostPtrReadOnly.
Referenced by sycl::_V1::detail::buffer_impl::allocateMem(), and sycl::_V1::detail::image_impl::allocateMem().
|
inline |
Definition at line 118 of file sycl_mem_obj_t.hpp.
References MAllocator.
|
inline |
Definition at line 106 of file sycl_mem_obj_t.hpp.
References sycl::_V1::property_list::get_property(), and MProps.
|
static |
Definition at line 166 of file sycl_mem_obj_t.cpp.
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 283 of file sycl_mem_obj_t.hpp.
References MInteropContext.
const PluginPtr & sycl::_V1::detail::SYCLMemObjT::getPlugin | ( | ) | const |
Definition at line 160 of file sycl_mem_obj_t.cpp.
References MInteropContext.
Referenced by sycl::_V1::detail::buffer_impl::addInteropObject(), SYCLMemObjT(), and updateHostMemory().
|
inline |
Definition at line 326 of file sycl_mem_obj_t.hpp.
References MProps.
|
inlineoverridevirtualnoexcept |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 94 of file sycl_mem_obj_t.hpp.
References MSizeInBytes.
Referenced by sycl::_V1::detail::buffer_impl::allocateMem(), sycl::_V1::detail::image_impl::allocateMem(), and size().
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 281 of file sycl_mem_obj_t.hpp.
|
inline |
Definition at line 131 of file sycl_mem_obj_t.hpp.
References MInteropMemObject, MOpenCLInterop, and MUserPtr.
Referenced by determineHostPtr(), and releaseMem().
|
inline |
Definition at line 247 of file sycl_mem_obj_t.hpp.
References allocateHostMem(), sycl::_V1::invalid, sycl::_V1::make_error_code(), MHostPtrReadOnly, MShadowCopy, MUserPtr, setAlign(), and useHostPtr().
|
inline |
Definition at line 219 of file sycl_mem_obj_t.hpp.
References allocateHostMem(), canReadHostPtr(), canReuseHostPtr(), MCreateShadowCopy, MHostPtrProvided, MHostPtrReadOnly, MShadowCopy, MSharedPtrStorage, MSizeInBytes, MUserPtr, set_final_data_from_storage(), and setAlign().
|
inline |
Definition at line 214 of file sycl_mem_obj_t.hpp.
References handleHostData(), and MHostPtrReadOnly.
|
inline |
Definition at line 186 of file sycl_mem_obj_t.hpp.
References allocateHostMem(), canReadHostPtr(), canReuseHostPtr(), MCreateShadowCopy, MHostPtrProvided, MHostPtrReadOnly, MShadowCopy, MSizeInBytes, MUserPtr, set_final_data(), and setAlign().
Referenced by sycl::_V1::detail::buffer_impl::buffer_impl(), and handleHostData().
void sycl::_V1::detail::SYCLMemObjT::handleWriteAccessorCreation | ( | ) |
Definition at line 225 of file sycl_mem_obj_t.cpp.
References MCreateShadowCopy, sycl::_V1::detail::SYCLMemObjI::MRecord, and MUserPtr.
Referenced by sycl::_V1::detail::Scheduler::GraphBuilder::addHostAccessor().
|
inlinenoexcept |
Definition at line 102 of file sycl_mem_obj_t.hpp.
References sycl::_V1::property_list::has_property(), and MProps.
Referenced by usesPinnedHostMemory().
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 287 of file sycl_mem_obj_t.hpp.
References MUserPtr.
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 289 of file sycl_mem_obj_t.hpp.
References MHostPtrReadOnly.
|
overridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 176 of file sycl_mem_obj_t.cpp.
References MOpenCLInterop.
|
inline |
Returns true if any graphs are currently using this memory object.
Definition at line 324 of file sycl_mem_obj_t.hpp.
References MGraphUseCount.
|
inline |
Definition at line 298 of file sycl_mem_obj_t.hpp.
References MIsInternal.
|
inline |
Increment an internal counter for how many graphs are currently using this memory object.
Definition at line 305 of file sycl_mem_obj_t.hpp.
References MGraphUseCount.
|
inline |
Decrement an internal counter for how many graphs are currently using this memory object.
Definition at line 309 of file sycl_mem_obj_t.hpp.
References MGraphUseCount.
|
inline |
Returns true if this memory object requires a write_back on destruction.
Definition at line 301 of file sycl_mem_obj_t.hpp.
References MNeedWriteBack, and MUploadDataFunctor.
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 124 of file sycl_mem_obj_t.hpp.
References MAllocator, and size().
Referenced by updateHostMemory().
|
overridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 117 of file sycl_mem_obj_t.cpp.
References getUserPtr(), and sycl::_V1::detail::MemoryManager::releaseMemObj().
|
inline |
Definition at line 149 of file sycl_mem_obj_t.hpp.
References MHostPtrProvided, MUploadDataFunctor, and updateHostMemory().
|
inline |
Definition at line 137 of file sycl_mem_obj_t.hpp.
References MUploadDataFunctor.
Referenced by handleHostData().
|
inline |
Definition at line 139 of file sycl_mem_obj_t.hpp.
References MHostPtrProvided, MSharedPtrStorage, MUploadDataFunctor, and updateHostMemory().
Referenced by handleHostData().
|
inline |
Definition at line 135 of file sycl_mem_obj_t.hpp.
References MNeedWriteBack.
|
inline |
Definition at line 263 of file sycl_mem_obj_t.hpp.
References MAllocator.
Referenced by handleHostData().
|
inlinenoexcept |
Definition at line 97 of file sycl_mem_obj_t.hpp.
References getSizeInBytes(), and MAllocator.
Referenced by __SYCL2020_DEPRECATED(), allocateHostMem(), releaseHostMem(), and sycl::_V1::detail::buffer_impl::resize().
|
protected |
Definition at line 140 of file sycl_mem_obj_t.cpp.
References sycl::_V1::detail::Scheduler::getInstance(), getPlugin(), MInteropMemObject, MNeedWriteBack, MOpenCLInterop, sycl::_V1::detail::SYCLMemObjI::MRecord, MShadowCopy, MUploadDataFunctor, releaseHostMem(), and sycl::_V1::detail::Scheduler::removeMemoryObject().
Referenced by set_final_data(), set_final_data_from_storage(), and sycl::_V1::detail::buffer_impl::~buffer_impl().
|
protected |
Definition at line 122 of file sycl_mem_obj_t.cpp.
References sycl::_V1::AccessMode, sycl::_V1::detail::Scheduler::addCopyBack(), sycl::_V1::detail::Scheduler::getInstance(), sycl::_V1::detail::AccessorImplHost::MData, MSizeInBytes, and sycl::_V1::access::read.
|
inline |
Definition at line 171 of file sycl_mem_obj_t.hpp.
Referenced by sycl::_V1::detail::buffer_impl::allocateMem(), canReadHostPtr(), and handleHostData().
|
inlineoverridevirtual |
Implements sycl::_V1::detail::SYCLMemObjI.
Definition at line 291 of file sycl_mem_obj_t.hpp.
References has_property().
|
protected |
Definition at line 334 of file sycl_mem_obj_t.hpp.
Referenced by allocateHostMem(), get_allocator_internal(), releaseHostMem(), setAlign(), and size().
|
protected |
Definition at line 377 of file sycl_mem_obj_t.hpp.
Referenced by handleHostData(), and handleWriteAccessorCreation().
|
protected |
Definition at line 373 of file sycl_mem_obj_t.hpp.
Referenced by isUsedInGraph(), markBeingUsedInGraph(), and markNoLongerBeingUsedInGraph().
|
protected |
Definition at line 367 of file sycl_mem_obj_t.hpp.
Referenced by detachMemoryObject(), handleHostData(), set_final_data(), and set_final_data_from_storage().
|
protected |
Definition at line 349 of file sycl_mem_obj_t.hpp.
Referenced by canReuseHostPtr(), determineHostPtr(), handleHostData(), and isHostPointerReadOnly().
|
protected |
Definition at line 341 of file sycl_mem_obj_t.hpp.
Referenced by sycl::_V1::detail::buffer_impl::allocateMem(), sycl::_V1::detail::image_impl::allocateMem(), detachMemoryObject(), getInteropContext(), getPlugin(), and SYCLMemObjT().
|
protected |
Definition at line 339 of file sycl_mem_obj_t.hpp.
Referenced by sycl::_V1::detail::buffer_impl::allocateMem(), and sycl::_V1::detail::image_impl::allocateMem().
|
protected |
Definition at line 344 of file sycl_mem_obj_t.hpp.
Referenced by sycl::_V1::detail::buffer_impl::addInteropObject(), getUserPtr(), SYCLMemObjT(), and updateHostMemory().
|
protected |
Definition at line 371 of file sycl_mem_obj_t.hpp.
Referenced by detachMemoryObject(), and markAsInternal().
|
protected |
Definition at line 351 of file sycl_mem_obj_t.hpp.
Referenced by needsWriteBack(), set_write_back(), and updateHostMemory().
|
protected |
Definition at line 347 of file sycl_mem_obj_t.hpp.
Referenced by sycl::_V1::detail::buffer_impl::addInteropObject(), getUserPtr(), isInterop(), and updateHostMemory().
|
protected |
Definition at line 378 of file sycl_mem_obj_t.hpp.
Referenced by detachMemoryObject().
|
protected |
Definition at line 336 of file sycl_mem_obj_t.hpp.
Referenced by addOrReplaceAccessorProperties(), sycl::_V1::detail::buffer_impl::allocateMem(), sycl::_V1::detail::image_impl::allocateMem(), deleteAccessorProperty(), get_property(), getPropList(), and has_property().
|
protected |
Definition at line 357 of file sycl_mem_obj_t.hpp.
Referenced by handleHostData(), and updateHostMemory().
|
protected |
Definition at line 362 of file sycl_mem_obj_t.hpp.
Referenced by handleHostData(), and set_final_data_from_storage().
|
protected |
Definition at line 353 of file sycl_mem_obj_t.hpp.
Referenced by getSizeInBytes(), handleHostData(), sycl::_V1::detail::buffer_impl::resize(), SYCLMemObjT(), and updateHostMemory().
|
protected |
Definition at line 359 of file sycl_mem_obj_t.hpp.
Referenced by needsWriteBack(), set_final_data(), set_final_data_from_storage(), and updateHostMemory().
|
protected |
Definition at line 355 of file sycl_mem_obj_t.hpp.
Referenced by getUserPtr(), handleHostData(), handleWriteAccessorCreation(), and hasUserDataPtr().