|
|
|
@@ -49,14 +49,7 @@ void MemAddressRecorder::SaveMemInfo(const std::string &op_name, const GPUMemInf |
|
|
|
mem_info_stream << MemInfo2String("kernel_outputs", *outputs); |
|
|
|
mem_info_stream << std::endl; |
|
|
|
std::string mem_info_str = mem_info_stream.str(); |
|
|
|
size_t length = mem_info_append_str_.size() + mem_info_str.size(); |
|
|
|
// set maximum length of one memory info recorder is 10 percent of string::max_size |
|
|
|
if (length < 0.1 * mem_info_str.max_size()) { |
|
|
|
mem_info_append_str_ += mem_info_str; |
|
|
|
} else { |
|
|
|
mem_infos_.push_back(mem_info_append_str_); |
|
|
|
mem_info_append_str_ = mem_info_str; |
|
|
|
} |
|
|
|
mem_info_container_[op_name] = mem_info_str; |
|
|
|
} |
|
|
|
|
|
|
|
void MemAddressRecorder::Export() { |
|
|
|
@@ -72,10 +65,9 @@ void MemAddressRecorder::Export() { |
|
|
|
MS_LOG(WARNING) << "Open file for saving gpu memory information failed. File path: '" << file_path << "'."; |
|
|
|
return; |
|
|
|
} |
|
|
|
for (auto &info : mem_infos_) { |
|
|
|
fout << info; |
|
|
|
for (auto &info : mem_info_container_) { |
|
|
|
fout << info.second; |
|
|
|
} |
|
|
|
fout << mem_info_append_str_; |
|
|
|
fout.close(); |
|
|
|
ChangeFileMode(file_path, S_IRUSR); |
|
|
|
} |
|
|
|
|