|
|
|
@@ -47,6 +47,7 @@ Status MemcpyAsyncTaskInfo::Init(const domi::TaskDef &task_def, DavinciModel *da |
|
|
|
kind_ = RT_MEMCPY_ADDR_DEVICE_TO_DEVICE; |
|
|
|
GELOGI("MemcpyAsyncTaskInfo op name %s, src_ %p, dst_ %p, args_offset %u.", |
|
|
|
op_desc->GetName().c_str(), src_, dst_, args_offset_); |
|
|
|
SetIoAddrs(op_desc); |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -77,15 +78,7 @@ Status MemcpyAsyncTaskInfo::Init(const domi::TaskDef &task_def, DavinciModel *da |
|
|
|
|
|
|
|
davinci_model_->DisableZeroCopy(src_); |
|
|
|
davinci_model_->DisableZeroCopy(dst_); |
|
|
|
|
|
|
|
io_addrs_.emplace_back(reinterpret_cast<void *>(src_)); |
|
|
|
if (op_desc->HasAttr(ATTR_DYNAMIC_SHAPE_FIXED_ADDR)) { |
|
|
|
void *fixed_addr = davinci_model_->GetCurrentFixedAddr(fixed_addr_offset_); |
|
|
|
io_addrs_.emplace_back(fixed_addr); |
|
|
|
} else { |
|
|
|
io_addrs_.emplace_back(reinterpret_cast<void *>(dst_)); |
|
|
|
} |
|
|
|
|
|
|
|
SetIoAddrs(op_desc); |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -123,6 +116,16 @@ Status MemcpyAsyncTaskInfo::CalculateArgs(const domi::TaskDef &task_def, Davinci |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
void MemcpyAsyncTaskInfo::SetIoAddrs(const OpDescPtr &op_desc) { |
|
|
|
io_addrs_.emplace_back(reinterpret_cast<void *>(src_)); |
|
|
|
if (op_desc->HasAttr(ATTR_DYNAMIC_SHAPE_FIXED_ADDR)) { |
|
|
|
void *fixed_addr = davinci_model_->GetCurrentFixedAddr(fixed_addr_offset_); |
|
|
|
io_addrs_.emplace_back(fixed_addr); |
|
|
|
} else { |
|
|
|
io_addrs_.emplace_back(reinterpret_cast<void *>(dst_)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Status MemcpyAsyncTaskInfo::UpdateArgs() { |
|
|
|
GELOGI("MemcpyAsyncTaskInfo::UpdateArgs in."); |
|
|
|
GE_CHECK_NOTNULL(davinci_model_); |
|
|
|
|