|
|
@@ -31,7 +31,7 @@ const char *const kFpPoint = "fp_point"; |
|
|
|
const char *const kBpPoint = "bp_point"; |
|
|
|
|
|
|
|
#ifdef DAVINCI_SUPPORT_PROFILING |
|
|
|
const size_t kReportMaxLen = 2048; |
|
|
|
const size_t kReportMaxLen = 1024; |
|
|
|
const int32_t kMaxDeviceNum = 256; |
|
|
|
const uint32_t kInteval = 2; |
|
|
|
const std::string kConfigNumsdev = "devNums"; |
|
|
@@ -293,21 +293,25 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY void ProfilingManager::ReportDa |
|
|
|
ReporterData reporter_data{}; |
|
|
|
int ret = -1; |
|
|
|
int32_t cb_ret = -1; |
|
|
|
size_t index = data.size() / kReportMaxLen; |
|
|
|
size_t report_max_len = kReportMaxLen; |
|
|
|
#ifdef ONLY_COMPILE_OPEN_SRC |
|
|
|
report_max_len = reporter_max_len_; |
|
|
|
#endif |
|
|
|
size_t index = data.size() / report_max_len; |
|
|
|
if (index >= 1) { |
|
|
|
reporter_data.deviceId = device_id; |
|
|
|
ret = memcpy_s(reporter_data.tag, MSPROF_ENGINE_MAX_TAG_LEN + 1, tag_name.c_str(), tag_name.size()); |
|
|
|
GE_IF_BOOL_EXEC(ret != EOK, GELOGE(ret, "Report data tag [%s] memcpy error!", tag_name.c_str()); return;); |
|
|
|
for (size_t i = 0; i < index; ++i) { |
|
|
|
reporter_data.data = (unsigned char *)data.c_str() + kReportMaxLen * i; |
|
|
|
reporter_data.dataLen = kReportMaxLen; |
|
|
|
reporter_data.data = (unsigned char *)data.c_str() + report_max_len * i; |
|
|
|
reporter_data.dataLen = report_max_len; |
|
|
|
cb_ret = CallMsprofReport(reporter_data); |
|
|
|
GE_IF_BOOL_EXEC(cb_ret != 0, GELOGE(cb_ret, "Reporter data [%s] failed, ret:%d", tag_name.c_str(), cb_ret); |
|
|
|
return;); |
|
|
|
} |
|
|
|
reporter_data.dataLen = data.size() - kReportMaxLen * index; |
|
|
|
reporter_data.dataLen = data.size() - report_max_len * index; |
|
|
|
if (reporter_data.dataLen != 0) { |
|
|
|
reporter_data.data = (unsigned char *)data.c_str() + kReportMaxLen * index; |
|
|
|
reporter_data.data = (unsigned char *)data.c_str() + report_max_len * index; |
|
|
|
cb_ret = CallMsprofReport(reporter_data); |
|
|
|
GE_IF_BOOL_EXEC(cb_ret != 0, GELOGE(cb_ret, "Reporter data [%s] failed, ret:%d", tag_name.c_str(), cb_ret); |
|
|
|
return;); |
|
|
@@ -745,15 +749,33 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY bool ProfilingManager::Profilin |
|
|
|
return execute_model_prof_on; |
|
|
|
} |
|
|
|
|
|
|
|
FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ProfilingManager::PluginInit() const { |
|
|
|
FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ProfilingManager::PluginInit() { |
|
|
|
if (prof_cb_.msprofReporterCallback == nullptr) { |
|
|
|
GELOGE(ge::PARAM_INVALID, "MsprofReporterCallback callback is nullptr."); |
|
|
|
return ge::PARAM_INVALID; |
|
|
|
} |
|
|
|
return prof_cb_.msprofReporterCallback( |
|
|
|
int32_t cb_ret = prof_cb_.msprofReporterCallback( |
|
|
|
static_cast<uint32_t>(MsprofReporterModuleId::MSPROF_MODULE_FRAMEWORK), |
|
|
|
static_cast<uint32_t>(MsprofReporterCallbackType::MSPROF_REPORTER_INIT), |
|
|
|
nullptr, 0); |
|
|
|
if (cb_ret != MSPROF_ERROR_NONE) { |
|
|
|
REPORT_CALL_ERROR("E19999", "Profiling reporter init failed, ret = %d.", cb_ret); |
|
|
|
GELOGE(INTERNAL_ERROR, "[Init][ProfilingReporter] profiling init failed, ret = %d.", cb_ret); |
|
|
|
return INTERNAL_ERROR; |
|
|
|
} |
|
|
|
#ifdef ONLY_COMPILE_OPEN_SRC |
|
|
|
cb_ret = prof_cb_.msprofReporterCallback( |
|
|
|
static_cast<uint32_t>(MsprofReporterModuleId::MSPROF_MODULE_FRAMEWORK), |
|
|
|
static_cast<uint32_t>(MsprofReporterCallbackType::MSPROF_REPORTER_DATA_MAX_LEN), |
|
|
|
&reporter_max_len_, sizeof(uint32_t)); |
|
|
|
if (cb_ret != MSPROF_ERROR_NONE) { |
|
|
|
REPORT_CALL_ERROR("E19999", "Get profiling reporter data max len failed, ret = %d.", cb_ret); |
|
|
|
GELOGE(INTERNAL_ERROR, "[Init][ProfilingReporter] Get profiling reporter data max len failed, ret = %d.", cb_ret); |
|
|
|
return INTERNAL_ERROR; |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY void ProfilingManager::PluginUnInit() const { |
|
|
|