Browse Source

fix saving too much gpu memory info and not skip saving kernel graph in protobuff type

tags/v1.2.0-rc1
louei5 4 years ago
parent
commit
46d78efb0c
3 changed files with 8 additions and 14 deletions
  1. +3
    -1
      mindspore/ccsrc/backend/session/ascend_session.cc
  2. +3
    -11
      mindspore/ccsrc/debug/rdr/mem_address_recorder.cc
  3. +2
    -2
      mindspore/ccsrc/debug/rdr/mem_address_recorder.h

+ 3
- 1
mindspore/ccsrc/backend/session/ascend_session.cc View File

@@ -65,6 +65,7 @@
#include "toolchain/adx_datadump_server.h"
#ifdef ENABLE_DUMP_IR
#include "debug/rdr/running_data_recorder.h"
#include "debug/rdr/recorder_manager.h"
#include "runtime/device/ascend/ascend_bucket.h"
#endif
#if ENABLE_CPU && ENABLE_D
@@ -1000,7 +1001,8 @@ void AscendSession::DumpAllGraphs(const std::vector<KernelGraphPtr> &all_graphs)
bool save_graphs = context_ptr->get_param<bool>(MS_CTX_SAVE_GRAPHS_FLAG);
auto &json_parser = DumpJsonParser::GetInstance();
json_parser.Parse();
if (!save_graphs && !json_parser.e2e_dump_enabled() && !json_parser.async_dump_enabled()) {
if (!save_graphs && !json_parser.e2e_dump_enabled() && !json_parser.async_dump_enabled() &&
!mindspore::RecorderManager::Instance().RdrEnable()) {
return;
}
auto kernel_runtime = device::KernelRuntimeManager::Instance().GetKernelRuntime(kAscendDevice, device_id_);


+ 3
- 11
mindspore/ccsrc/debug/rdr/mem_address_recorder.cc View File

@@ -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);
}


+ 2
- 2
mindspore/ccsrc/debug/rdr/mem_address_recorder.h View File

@@ -17,6 +17,7 @@
#define MINDSPORE_CCSRC_DEBUG_RDR_MEM_ADDRESS_RECORDER_H_
#include <vector>
#include <string>
#include <map>
#include <memory>
#include <mutex>

@@ -48,8 +49,7 @@ class MemAddressRecorder : public BaseRecorder {

mutable std::mutex mtx_;

std::string mem_info_append_str_;
std::vector<std::string> mem_infos_;
std::map<std::string, std::string> mem_info_container_;
};
using MemAddressRecorderPtr = std::shared_ptr<MemAddressRecorder>;
} // namespace mindspore


Loading…
Cancel
Save