|
|
@@ -420,6 +420,18 @@ AiCpuBaseTask::~AiCpuBaseTask() { |
|
|
if (ext_info_addr_dev_ != nullptr) { |
|
|
if (ext_info_addr_dev_ != nullptr) { |
|
|
(void)rtFree(ext_info_addr_dev_); |
|
|
(void)rtFree(ext_info_addr_dev_); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
FreeHbm(copy_ioaddr_dev_); |
|
|
|
|
|
FreeHbm(copy_input_release_flag_dev_); |
|
|
|
|
|
FreeHbm(copy_input_data_size_dev_); |
|
|
|
|
|
FreeHbm(copy_input_src_dev_); |
|
|
|
|
|
FreeHbm(copy_input_dst_dev_); |
|
|
|
|
|
for (auto summary : output_summary_) { |
|
|
|
|
|
FreeHbm(summary); |
|
|
|
|
|
} |
|
|
|
|
|
for (auto out_shape : out_shape_hbm_) { |
|
|
|
|
|
FreeHbm(out_shape); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Status AiCpuBaseTask::SetExtInfoAndType(const std::string &kernel_ext_info, uint64_t kernel_id) { |
|
|
Status AiCpuBaseTask::SetExtInfoAndType(const std::string &kernel_ext_info, uint64_t kernel_id) { |
|
|
@@ -623,18 +635,7 @@ AiCpuTask::~AiCpuTask() { |
|
|
FreeHbm(io_addr_); |
|
|
FreeHbm(io_addr_); |
|
|
FreeHbm(workspace_addr_); |
|
|
FreeHbm(workspace_addr_); |
|
|
FreeHbm(copy_workspace_buf_); |
|
|
FreeHbm(copy_workspace_buf_); |
|
|
FreeHbm(copy_ioaddr_dev_); |
|
|
|
|
|
FreeHbm(copy_input_release_flag_dev_); |
|
|
|
|
|
FreeHbm(copy_input_data_size_dev_); |
|
|
|
|
|
FreeHbm(copy_input_src_dev_); |
|
|
|
|
|
FreeHbm(copy_input_dst_dev_); |
|
|
|
|
|
FreeHbm(copy_task_args_buf_); |
|
|
FreeHbm(copy_task_args_buf_); |
|
|
for (auto summary : output_summary_) { |
|
|
|
|
|
FreeHbm(summary); |
|
|
|
|
|
} |
|
|
|
|
|
for (auto out_shape : out_shape_hbm_) { |
|
|
|
|
|
FreeHbm(out_shape); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Status AiCpuTask::LaunchKernel(rtStream_t stream) { |
|
|
Status AiCpuTask::LaunchKernel(rtStream_t stream) { |
|
|
@@ -664,7 +665,7 @@ Status AiCpuTask::LaunchKernel(rtStream_t stream) { |
|
|
return SUCCESS; |
|
|
return SUCCESS; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Status AiCpuTask::PrepareCopyInputs(vector<DataBuffer> &outputs) { |
|
|
|
|
|
|
|
|
Status AiCpuBaseTask::PrepareCopyInputs(vector<DataBuffer> &outputs) { |
|
|
std::vector<uint64_t> copy_input_release_flag; |
|
|
std::vector<uint64_t> copy_input_release_flag; |
|
|
std::vector<uint64_t> copy_input_data_size; |
|
|
std::vector<uint64_t> copy_input_data_size; |
|
|
std::vector<uint64_t> copy_input_src; |
|
|
std::vector<uint64_t> copy_input_src; |
|
|
@@ -705,7 +706,7 @@ Status AiCpuTask::PrepareCopyInputs(vector<DataBuffer> &outputs) { |
|
|
return SUCCESS; |
|
|
return SUCCESS; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Status AiCpuTask::ReadResultSummaryAndPrepareMemory() { |
|
|
|
|
|
|
|
|
Status AiCpuBaseTask::ReadResultSummaryAndPrepareMemory() { |
|
|
for (size_t i = 0; i < num_outputs_; ++i) { |
|
|
for (size_t i = 0; i < num_outputs_; ++i) { |
|
|
auto &result_summary = output_summary_host_[i]; |
|
|
auto &result_summary = output_summary_host_[i]; |
|
|
|
|
|
|
|
|
@@ -732,7 +733,20 @@ Status AiCpuTask::CopyDataToHbm(vector<DataBuffer> &outputs, |
|
|
return SUCCESS; |
|
|
return SUCCESS; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Status AiCpuTask::UpdateShapeByHbmBuffer(vector<GeTensorDesc> &output_desc) { |
|
|
|
|
|
|
|
|
Status AiCpuCCTask::CopyDataToHbm(vector<DataBuffer> &outputs, |
|
|
|
|
|
rtStream_t stream) { |
|
|
|
|
|
GE_CHK_STATUS_RET_NOLOG(PrepareCopyInputs(outputs)); |
|
|
|
|
|
|
|
|
|
|
|
auto ret = rtCpuKernelLaunchWithFlag(static_cast<const void *>(memcpy_so_name_.data()), |
|
|
|
|
|
static_cast<const void *>(memcpy_kernel_name_.data()), |
|
|
|
|
|
block_dim_, memcpy_args_.get(), static_cast<uint32_t>(memcpy_arg_size_), |
|
|
|
|
|
nullptr, stream, dump_flag_); |
|
|
|
|
|
GE_CHK_RT_RET(ret); |
|
|
|
|
|
GE_CHK_RT_RET(rtStreamSynchronize(stream)); |
|
|
|
|
|
return SUCCESS; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Status AiCpuBaseTask::UpdateShapeByHbmBuffer(vector<GeTensorDesc> &output_desc) { |
|
|
for (size_t i = 0; i < num_outputs_; ++i) { |
|
|
for (size_t i = 0; i < num_outputs_; ++i) { |
|
|
const auto &result_summary = output_summary_host_[i]; |
|
|
const auto &result_summary = output_summary_host_[i]; |
|
|
std::vector<int64_t> shape_dims; |
|
|
std::vector<int64_t> shape_dims; |
|
|
|