Unverified Commit 151d9e6b authored by Lei Wang's avatar Lei Wang Committed by GitHub
Browse files

[Refactor] Optimize debug message for parallel inference (#1096)

parent 514bdeaa
......@@ -93,7 +93,9 @@ Array<IterSplitExpr> get_unused_iters(const IterMark &mark,
if (j == splits.size()) {
ICHECK(lowest != splits.size());
ICHECK(CanProveDivisible(splits[lowest]->lower_factor,
expected_lower_factor));
expected_lower_factor))
<< " Cannot prove divisible for " << splits[lowest]->lower_factor
<< " and " << expected_lower_factor;
results.emplace_back(
mark, expected_lower_factor,
FloorDiv(splits[lowest]->lower_factor, expected_lower_factor), 1);
......
......@@ -373,8 +373,21 @@ LayoutMap ParallelOpNode::InferLayout(const LayoutInferArgs &T,
throw LayoutConflictException(oss.str());
}
});
result = Fragment(loop_vars_, {}, loop_var_to_thread, rep_iter)
->BindThreadRange(T.thread_bounds);
try {
result = Fragment(loop_vars_, {}, loop_var_to_thread, rep_iter)
->BindThreadRange(T.thread_bounds);
} catch (const tvm::runtime::Error &err) {
std::ostringstream msg;
msg << "Layout inference for buffer `" << buffer->name
<< "` failed inside `T.parallel` loop.";
msg << "\nUnderlying TVM error: " << err.what();
msg << "\nProblematic loop AST:\n " << root_;
msg << "\nHint: ensure the loop extent divides the thread binding or "
"adjust the fragment mapping.";
LOG(FATAL) << msg.str();
}
}
DLOG(INFO) << "[compute_loop_layout_from_buffer] ... and get "
<< result->DebugOutput() << '\n';
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment