You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fusion fusion;
FusionGuard fg(&fusion);
// [i0]
auto tv0 = makeSymbolicTensor(1);
fusion.addInput(tv0);
// [i1, i0]
auto tv1 = makeSymbolicTensor(2);
fusion.addInput(tv1);
// [i0]
auto tv2 = set(tv0);
// [b2, i0]
auto tv3 = broadcast(tv2, {true, false});
// [i1, i0]
auto tv4 = add(tv1, tv3);
fusion.addOutput(tv4);
// [i3]
tv4->merge(0);
// Set the loop domain of tv2 as the same as tv4 loop domain. Note that tv4 loop domain is already different from its logical domain because of its merge op
// tv2
{
// tv2 is missing the first logical ID of tv4, i.e., i1. Use a clone of i1.
auto missing_id = tv4->getLogicalDomain().at(0)->cloneWithoutRFactor();
std::vector<IterDomain*> new_loop_domain{IterDomain::merge(missing_id, tv2->getLogicalDomain().at(0))};
tv2->setLoopDomain(new_loop_domain);
}
Repro:
It's such a simple pattern but the current
compareDomain
falsely reports there's a redundant ID because of this assertion: https://github.com/NVIDIA/Fuser/blob/main/csrc/ir/utils.cpp#L931-L937.iS3
is the logical ID oftv2
, which is obviously not redundant.The text was updated successfully, but these errors were encountered: