From 1a976d07a157201efc38c8870bc586704ac5a4d2 Mon Sep 17 00:00:00 2001 From: chuxing Date: Wed, 18 Nov 2020 12:40:11 +0800 Subject: [PATCH 1/3] trim file name if too long --- ge/offline/single_op_parser.cc | 42 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/ge/offline/single_op_parser.cc b/ge/offline/single_op_parser.cc index d30e2e8f..6cd3e447 100644 --- a/ge/offline/single_op_parser.cc +++ b/ge/offline/single_op_parser.cc @@ -129,7 +129,34 @@ map kFormatDict = { {"fractal_zn_lstm", FORMAT_FRACTAL_ZN_LSTM}, {"fractal_z_g", FORMAT_FRACTAL_Z_G} }; + +std::string GenerateFileName(const SingleOpDesc &single_op_desc, int index) { + std::stringstream file_name_ss; + file_name_ss << index; + file_name_ss << "_" << single_op_desc.op; + for (auto &desc : single_op_desc.input_desc) { + file_name_ss << "_" << desc.type << "_" << desc.format; + for (auto dim : desc.dims) { + file_name_ss << "_" << dim; + } + } + + for (auto &desc : single_op_desc.output_desc) { + file_name_ss << "_" << desc.type << "_" << desc.format; + for (auto dim : desc.dims) { + file_name_ss << "_" << dim; + } + } + + std:string file_name = file_name_ss.str(); + if (file_name.length() > kMaxFileNameLen) { + GELOGI("Trim file name for it is too long, origin file name = %s", file_name.c_str()); + file_name = file_name.substr(0, kMaxFileNameLen); + } + file_name += kFileSuffix; + return file_name; } +} // namespace template void SetAttrValue(const Json &j, SingleOpAttr &attr) { @@ -349,14 +376,7 @@ Status SingleOpParser::ConvertToBuildParam(int index, auto op_desc = CreateOpDesc(single_op_desc.op); GE_CHECK_NOTNULL(op_desc); - std::stringstream file_name; - file_name << index; - file_name << "_" << single_op_desc.op; for (auto &desc : single_op_desc.input_desc) { - file_name << "_" << desc.type << "_" << desc.format; - for (auto dim : desc.dims) { - file_name << "_" << dim; - } GeTensorDesc ge_tensor_desc(GeShape(desc.dims), desc.format, desc.type); @@ -377,11 +397,6 @@ Status SingleOpParser::ConvertToBuildParam(int index, } for (auto &desc : single_op_desc.output_desc) { - file_name << "_" << desc.type << "_" << desc.format; - for (auto dim : desc.dims) { - file_name << "_" << dim; - } - GeTensorDesc ge_tensor_desc(GeShape(desc.dims), desc.format, desc.type); @@ -410,8 +425,7 @@ Status SingleOpParser::ConvertToBuildParam(int index, return PARAM_INVALID; } - file_name << kFileSuffix; - build_param.file_name = file_name.str(); + build_param.file_name = GenerateFileName(single_op_desc, index); build_param.op_desc.reset(op_desc.release()); return SUCCESS; } From 5880da76e4327f7bccc82bd097d801187fef5a09 Mon Sep 17 00:00:00 2001 From: chuxing Date: Wed, 18 Nov 2020 13:00:48 +0800 Subject: [PATCH 2/3] fix --- ge/offline/single_op_parser.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/offline/single_op_parser.cc b/ge/offline/single_op_parser.cc index 6cd3e447..01252d46 100644 --- a/ge/offline/single_op_parser.cc +++ b/ge/offline/single_op_parser.cc @@ -56,6 +56,7 @@ constexpr int kDumpJsonIndent = 2; constexpr int kShapeRangePairSize = 2; constexpr int kShapeRangeLow = 0; constexpr int kShapeRangeHigh = 1; +constexpr int kMaxFileNameLen = 128; map kAttrTypeDict = { {"bool", GeAttrValue::VT_BOOL}, From f38e4ae42508f988c5e583146aff91282a4c153d Mon Sep 17 00:00:00 2001 From: chuxing Date: Wed, 18 Nov 2020 13:56:54 +0800 Subject: [PATCH 3/3] fix --- ge/offline/single_op_parser.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/offline/single_op_parser.cc b/ge/offline/single_op_parser.cc index 01252d46..d4b9c1c9 100644 --- a/ge/offline/single_op_parser.cc +++ b/ge/offline/single_op_parser.cc @@ -149,7 +149,7 @@ std::string GenerateFileName(const SingleOpDesc &single_op_desc, int index) { } } - std:string file_name = file_name_ss.str(); + std::string file_name = file_name_ss.str(); if (file_name.length() > kMaxFileNameLen) { GELOGI("Trim file name for it is too long, origin file name = %s", file_name.c_str()); file_name = file_name.substr(0, kMaxFileNameLen);