diff --git a/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py b/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py index e7fa1c6cd1..f61f8a25df 100755 --- a/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py +++ b/mindspore/_extends/parallel_compile/tbe_compiler/compiler.py @@ -156,5 +156,5 @@ if __name__ == "__main__": in_args = sys.stdin.readline() result = compile_with_json(in_args) if isinstance(result, dict): - sys.stdout.write(json.dumps(result)) - sys.stdout.flush() + sys.stderr.write(json.dumps(result)) + sys.stderr.flush() diff --git a/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py b/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py index 736f0078ab..592ebc4a6a 100644 --- a/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py +++ b/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py @@ -89,14 +89,12 @@ def run_compiler(op_json): tbe_compiler = os.path.join(os.path.split(os.path.realpath(__file__))[0], "compiler.py") completed_object = subprocess.run([sys.executable, tbe_compiler], input=op_json, timeout=300, text=True, capture_output=True, check=True) - if completed_object: - out = completed_object.stdout - return "Success", out + return "Success", completed_object.stderr except subprocess.TimeoutExpired: tb = traceback.format_exc() - return "TBEException", "PreCompileTimeOut: " + tb + "\ninput_args: " + op_json + return "TBEException", "ERROR: " + tb + "\ninput_args: " + op_json except subprocess.CalledProcessError as e: - return "TBEException", "PreCompileProcessFailed:\n" + e.stdout + "\n" + e.stderr + "\ninput_args: " + op_json + return "TBEException", "ERROR:\n" + e.stdout + "\n" + e.stderr + "\ninput_args: " + op_json class TbeProcess: """tbe process""" diff --git a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc index 91f1b6c233..48f3505be7 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc @@ -148,9 +148,6 @@ bool TbeKernelJsonCreator::GenTbeSingleKernelJson(const std::shared_ptrfullname_with_scope(); - if (creater_type_ == SINGLE_BUILD) { - TbeUtils::SaveJsonInfo(json_name_, json_info_); - } MS_LOG(INFO) << "Operate type:" << creater_type_ << ", full scope name is :" << anf_node->fullname_with_scope() << ", json info name is : " << json_name_ << ", kernel json:" << kernel_json->dump(); diff --git a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_parallel_build.cc b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_parallel_build.cc index 162fb30984..51f43ac37b 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_parallel_build.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_parallel_build.cc @@ -47,6 +47,7 @@ bool TbeOpParallelBuild(const std::vector &anf_nodes) { TbeKernelJsonCreator creator(SINGLE_BUILD); if (!creator.GenTbeSingleKernelJson(anf_node, &kernel_json)) { MS_LOG(ERROR) << "GenTbeSingleKernelJson failed"; + TbeUtils::SaveJsonInfo(kernel_json["op_info"]["kernel_name"], kernel_json["op_info"].dump()); return false; } // get size @@ -69,6 +70,7 @@ bool TbeOpParallelBuild(const std::vector &anf_nodes) { } (void)processed_kernel.insert(json_name); // op build + TbeUtils::SaveJsonInfo(kernel_json["op_info"]["kernel_name"], kernel_json["op_info"].dump()); auto task_id = build_manger->StartCompileOp(kernel_json); build_manger->SaveTaskInfo(task_id, anf_node, json_name, input_size_list, output_size_list); } diff --git a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_select/tbe_kernel_select.cc b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_select/tbe_kernel_select.cc index bd4d8334d5..52085be9d0 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_select/tbe_kernel_select.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_select/tbe_kernel_select.cc @@ -492,10 +492,10 @@ std::string TbeKernelSelect::OpSelectFormat() { } res_json_str = AscendKernelBuildClient::Instance().SelectFormat(kernel_json.dump()); if (res_json_str.empty()) { - MS_LOG(EXCEPTION) << "Op select format error."; + MS_LOG(EXCEPTION) << "Op select format error, input args: " << kernel_json.dump(); } if (res_json_str.find("TBEException") != std::string::npos) { - MS_LOG(EXCEPTION) << "Dynamic op select failed: " << res_json_str; + MS_LOG(EXCEPTION) << "Dynamic op select failed: " << res_json_str << ", input args: " << kernel_json.dump(); } MS_LOG(INFO) << "Dynamic select foramt response result:" << res_json_str; return res_json_str; diff --git a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_utils.cc b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_utils.cc index 3d01a1b3fd..0266d40202 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_utils.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_utils.cc @@ -44,23 +44,24 @@ void TbeUtils::SaveJsonInfo(const std::string &json_name, const std::string &inf char real_path[PATH_MAX] = {0}; std::string path = kCceKernelMeta + json_name + kInfoSuffix; if (path.size() > PATH_MAX) { - MS_LOG(ERROR) << "file path: " << path << "is too long."; + MS_LOG(ERROR) << "File path: " << path << "is too long."; return; } std::ifstream fin(path); if (fin) { - MS_LOG(INFO) << "json file exist, no need to create."; + MS_LOG(INFO) << "Json file exist(" << path << "), no need to create."; return; } std::ofstream file_write; file_write.open(path); if (!file_write.is_open()) { + MS_LOG(WARNING) << "Create info file failed(" << path << ")."; return; } file_write << info << std::endl; file_write.close(); if (realpath(path.c_str(), real_path) == nullptr) { - MS_LOG(INFO) << "dir: " << path << "does not exit."; + MS_LOG(WARNING) << "Get realpath failed(" << path << ")."; return; } MS_LOG(INFO) << "real path is: " << real_path;