Split SinkModelProfile

pull/675/head
zhangxiaokun 4 years ago
parent a7a16c4053
commit 841393e5c7

@ -2090,7 +2090,7 @@ Status DavinciModel::SyncVarData() {
Status DavinciModel::InitModelProfile() {
for (const auto &task : task_list_) {
GE_CHECK_NOTNULL(task);
const auto &fusion_op_info = task->GetFusionOpInfo();
const FusionOpInfo *fusion_op_info = task->GetFusionOpInfo();
// when type is RT_MODEL_TASK_KERNEL, ctx is not null
if ((fusion_op_info == nullptr) || fusion_op_info->original_op_names.empty()) {
continue;
@ -2105,20 +2105,17 @@ Status DavinciModel::InitModelProfile() {
using Range = std::pair<CIT, CIT>;
for (const auto &task : task_list_) {
GE_CHECK_NOTNULL(task);
const auto &fusion_op_info = task->GetFusionOpInfo();
const FusionOpInfo *fusion_op_info = task->GetFusionOpInfo();
if ((fusion_op_info == nullptr) || fusion_op_info->original_op_names.empty()) {
continue;
}
uint32_t task_id = task->GetTaskID();
uint32_t op_num = fusion_op_info->original_op_names.size();
uint32_t task_count = 0;
if (task_id_set.count(task->GetTaskID()) != 0) {
if (task_id_set.count(task->GetTaskID()) > 0) {
continue;
}
const auto &op_desc = GetOpByIndex(fusion_op_info->op_index);
GE_CHK_BOOL_EXEC(op_desc != nullptr, return FAILED, "index is out of range, index: %u", fusion_op_info->op_index);
GE_CHK_BOOL_EXEC(op_desc != nullptr, return FAILED, "index: %u out of range", fusion_op_info->op_index);
ProfileInfo profile;
profile.fusion_info = *fusion_op_info;
@ -2142,6 +2139,8 @@ Status DavinciModel::InitModelProfile() {
profile_list_.emplace_back(profile);
}
GELOGI("fusion task size: %zu, profile info size: %zu", op_id_map_.size(), profile_list_.size());
return SUCCESS;
}
@ -2206,7 +2205,7 @@ Status DavinciModel::SinkModelProfile() {
// original op name before fusion
uint32_t op_num = profile.fusion_info.original_op_names.size();
reporter_data.data = (unsigned char *)&op_num;
reporter_data.dataLen = sizeof(uint32_t);
reporter_data.dataLen = sizeof(int32_t);
GE_CHK_BOOL_EXEC(prof_mgr.CallMsprofReport(reporter_data) == 0, return FAILED,
"Reporter data fail, model id:%u.", this->Id());
@ -2230,6 +2229,7 @@ Status DavinciModel::SinkModelProfile() {
GE_CHK_BOOL_EXEC(prof_mgr.CallMsprofReport(reporter_data) == 0, return FAILED,
"Reporter data fail, model id:%u.", this->Id());
// memory info
reporter_data.data = (unsigned char *)&profile.memory_info;
reporter_data.dataLen = sizeof(profile.memory_info);
GE_CHK_BOOL_EXEC(prof_mgr.CallMsprofReport(reporter_data) == 0, return FAILED,
@ -2250,6 +2250,7 @@ Status DavinciModel::SinkModelProfile() {
"Reporter data fail, model id:%u.", this->Id());
}
}
return SUCCESS;
}

@ -997,7 +997,7 @@ class DavinciModel {
std::vector<std::vector<int64_t>> all_gears_info_;
std::multimap<uint32_t, uint32_t> op_id_map_;
std::vecotr<ProfileInfo> profile_list_;
std::vector<ProfileInfo> profile_list_;
};
} // namespace ge
#endif // GE_GRAPH_LOAD_NEW_MODEL_MANAGER_DAVINCI_MODEL_H_

Loading…
Cancel
Save