GitOrigin-RevId: a1d7021892
release-1.10
@@ -658,4 +658,36 @@ void CompNode::ImplBase::add_callback(megdnn::thin_function<void()>&&) { | |||||
locator().to_string().c_str()); | locator().to_string().c_str()); | ||||
} | } | ||||
void CompNode::map_to_cpu(void* ptr, size_t size, bool blocking) { | |||||
m_impl->map_to_cpu(ptr, size, blocking); | |||||
} | |||||
void CompNode::unmap_to_gpu(void* ptr, size_t size) { | |||||
m_impl->unmap_to_gpu(ptr, size); | |||||
} | |||||
void* CompNode::get_logical_addr_by_host_ptr(void* ptr, size_t size) { | |||||
return m_impl->get_logical_addr_by_host_ptr(ptr, size); | |||||
} | |||||
void CompNode::ImplBase::map_to_cpu(void* ptr, size_t size, bool blocking) { | |||||
MGB_MARK_USED_VAR(ptr); | |||||
MGB_MARK_USED_VAR(size); | |||||
MGB_MARK_USED_VAR(blocking); | |||||
mgb_assert(false, "No map_to_cpu Impl"); | |||||
} | |||||
void CompNode::ImplBase::unmap_to_gpu(void* ptr, size_t size) { | |||||
MGB_MARK_USED_VAR(ptr); | |||||
MGB_MARK_USED_VAR(size); | |||||
mgb_assert(false, "No unmap_to_gpu Impl"); | |||||
} | |||||
void* CompNode::ImplBase::get_logical_addr_by_host_ptr(void* ptr, size_t size) { | |||||
MGB_MARK_USED_VAR(ptr); | |||||
MGB_MARK_USED_VAR(size); | |||||
mgb_assert(false, "No get_logical_addr_by_host_ptr Impl"); | |||||
return nullptr; | |||||
} | |||||
// vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}} | // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}} |
@@ -322,6 +322,21 @@ public: | |||||
MGE_WIN_DECLSPEC_FUC static DeviceProperties get_device_prop( | MGE_WIN_DECLSPEC_FUC static DeviceProperties get_device_prop( | ||||
int dev, DeviceType device_type); | int dev, DeviceType device_type); | ||||
/*! | |||||
* \brief get control of host ptr to user | |||||
*/ | |||||
MGE_WIN_DECLSPEC_FUC void map_to_cpu(void* ptr, size_t size, bool blocking = false); | |||||
/*! | |||||
* \brief release control of host ptr to system | |||||
*/ | |||||
MGE_WIN_DECLSPEC_FUC void unmap_to_gpu(void* ptr, size_t size); | |||||
/*! | |||||
* \brief get logical address by host ptr | |||||
*/ | |||||
MGE_WIN_DECLSPEC_FUC void* get_logical_addr_by_host_ptr(void* ptr, size_t size); | |||||
/* =================== synchronization ======================== */ | /* =================== synchronization ======================== */ | ||||
class Event; | class Event; | ||||
@@ -573,6 +588,12 @@ protected: | |||||
peer_copy_to(dest_impl, dest.get_ptr(), src.get_ptr(), size); | peer_copy_to(dest_impl, dest.get_ptr(), src.get_ptr(), size); | ||||
} | } | ||||
virtual void map_to_cpu(void* ptr, size_t size, bool blocking = false); | |||||
virtual void unmap_to_gpu(void* ptr, size_t size); | |||||
virtual void* get_logical_addr_by_host_ptr(void* ptr, size_t size); | |||||
virtual size_t get_mem_addr_alignment() = 0; | virtual size_t get_mem_addr_alignment() = 0; | ||||
virtual size_t get_mem_padding(); | virtual size_t get_mem_padding(); | ||||