|
|
@@ -147,7 +147,6 @@ DavinciModel::DavinciModel(int32_t priority, const std::shared_ptr<ModelListener |
|
|
|
runtime_model_id_(0), |
|
|
|
version_(0), |
|
|
|
ge_model_(nullptr), |
|
|
|
thread_id_(), |
|
|
|
listener_(listener), |
|
|
|
run_flg_(false), |
|
|
|
priority_(priority), |
|
|
@@ -168,6 +167,8 @@ DavinciModel::DavinciModel(int32_t priority, const std::shared_ptr<ModelListener |
|
|
|
|
|
|
|
DavinciModel::~DavinciModel() { |
|
|
|
try { |
|
|
|
GE_CHK_STATUS(ModelRunStop()); |
|
|
|
|
|
|
|
Status ret = data_dumper_.UnloadDumpInfo(); |
|
|
|
if (ret != SUCCESS) { |
|
|
|
GELOGW("UnloadDumpInfo failed, ret: %u.", ret); |
|
|
@@ -175,8 +176,6 @@ DavinciModel::~DavinciModel() { |
|
|
|
|
|
|
|
ClearTaskAddrs(); |
|
|
|
|
|
|
|
GE_CHK_STATUS(ModelRunStop()); |
|
|
|
|
|
|
|
op_list_.clear(); |
|
|
|
tensor_name_to_fixed_addr_size_.clear(); |
|
|
|
tensor_name_to_peer_output_index_.clear(); |
|
|
@@ -730,9 +729,9 @@ Status DavinciModel::Init(void *dev_ptr, size_t mem_size, void *weight_ptr, size |
|
|
|
|
|
|
|
SetProfileTime(MODEL_LOAD_END); |
|
|
|
// collect profiling for ge |
|
|
|
GE_CHK_STATUS_RET(InitModelProfile(), "Init model profile failed"); |
|
|
|
auto &profiling_manager = ProfilingManager::Instance(); |
|
|
|
if (profiling_manager.ProfilingModelLoadOn()) { |
|
|
|
GE_CHK_STATUS_RET(InitModelProfile(), "Init model profile failed"); |
|
|
|
Status p_ret = ReportProfilingData(); |
|
|
|
if (p_ret != SUCCESS) { |
|
|
|
GELOGE(p_ret, "Report profiling data failed."); |
|
|
@@ -740,7 +739,7 @@ Status DavinciModel::Init(void *dev_ptr, size_t mem_size, void *weight_ptr, size |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Shrink(); |
|
|
|
CREATE_STD_THREAD(shrink_id_, &DavinciModel::Shrink, this); |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
@@ -2764,16 +2763,20 @@ void *DavinciModel::Run(DavinciModel *model) { |
|
|
|
/// @author |
|
|
|
/// |
|
|
|
Status DavinciModel::DestroyThread() { |
|
|
|
GE_CHK_BOOL_RET_STATUS(data_inputer_ != nullptr, INTERNAL_ERROR, "data_inputer_ is nullptr."); |
|
|
|
|
|
|
|
run_flg_ = false; |
|
|
|
|
|
|
|
data_inputer_->Stop(); |
|
|
|
if (data_inputer_ != nullptr) { |
|
|
|
data_inputer_->Stop(); |
|
|
|
} |
|
|
|
|
|
|
|
if (thread_id_.joinable()) { |
|
|
|
thread_id_.join(); |
|
|
|
} |
|
|
|
|
|
|
|
if (shrink_id_.joinable()) { |
|
|
|
shrink_id_.join(); |
|
|
|
} |
|
|
|
|
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
@@ -2820,8 +2823,6 @@ Status DavinciModel::ModelRunStop() { |
|
|
|
LockRunFlg(); |
|
|
|
GE_MAKE_GUARD(tmp_lock, [&] { UnlockRunFlg(); }); |
|
|
|
|
|
|
|
GE_IF_BOOL_EXEC(!run_flg_, return SUCCESS); |
|
|
|
|
|
|
|
GE_CHK_STATUS_RET(DestroyThread(), "DestoyThead failed."); |
|
|
|
|
|
|
|
return SUCCESS; |
|
|
|