|
|
|
@ -704,7 +704,7 @@ std::vector<size_t> TbeKernelBuild::GetDescOutputIndex(const std::vector<int> &o
|
|
|
|
|
if (!find_reused) {
|
|
|
|
|
desc_output_index.emplace_back(idx);
|
|
|
|
|
} else {
|
|
|
|
|
desc_output_index.emplace_back(output_used_nums[idx - 1]);
|
|
|
|
|
desc_output_index.emplace_back(desc_output_index[idx - 1]);
|
|
|
|
|
}
|
|
|
|
|
reused_num += (output_use_num_item - 1);
|
|
|
|
|
find_reused = true;
|
|
|
|
@ -721,7 +721,8 @@ bool TbeKernelBuild::GenFusionComputeOutputJson(const mindspore::CNodePtr &cnode
|
|
|
|
|
std::vector<nlohmann::json> *output_desc_list) {
|
|
|
|
|
auto output_size = AnfAlgo::GetOutputTensorNum(cnode);
|
|
|
|
|
if (AnfAlgo::HasNodeAttr(kAttrOutputUsedNum, cnode)) {
|
|
|
|
|
auto output_used_nums = AnfAlgo::GetNodeAttr<std::vector<int>>(cnode, kAttrOutputUsedNum);
|
|
|
|
|
// wait anther pr: auto output_used_nums = AnfAlgo::GetNodeAttr<std::vector<int>>(cnode, kAttrOutputUsedNum);
|
|
|
|
|
auto output_used_nums = {SizeToInt(AnfAlgo::GetNodeAttr<std::size_t>(cnode, kAttrOutputUsedNum))};
|
|
|
|
|
MS_LOG(INFO) << "This node's output has been reused, node name: " << cnode->fullname_with_scope();
|
|
|
|
|
if (output_used_nums.size() != output_size) {
|
|
|
|
|
MS_LOG(INFO) << "Fusion error: output tenor num(" << output_size << ")"
|
|
|
|
|