-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anderson2021 autoscheduler triggers "producer_store_instances > 0" #93
Comments
Note to self: the Anderson2021-specific assertion failure In other words, the following code triggers assertion failure: std::tie(v_list[i], z_list[i], u_list[i])
= algorithm::linearized_admm::iterate(
v, z_prev, u_prev, K, omega_fn, psi_fns, lmb, mu, input); This too: const auto [_v_new, z_new, u_new]
= algorithm::linearized_admm::iterate(
v, z_prev, u_prev, K, omega_fn, psi_fns, lmb, mu, input);
v_list[i] = _v_new;
z_list[i] = z_new;
u_list[i] = u_new; And this works: const auto [_v_new, z_new, u_new]
= algorithm::linearized_admm::iterate(
v, z_prev, u_prev, K, omega_fn, psi_fns, lmb, mu, input);
using Halide::_;
v_list[i](x, y, c, _) = _v_new(x, y, c, _);
std::copy(u_new.begin(), u_new.end(), u_list[i].begin());
std::transform(z_new.begin(), z_new.end(), z_list[i].begin(), [](const auto& _z) -> Func{
Func _z_new;
_z_new(x, y, c, _) = _z(x, y, c, _);
return _z_new;
}); |
Hi @aekul, Just curious, what does Comparing the code between |
I haven't had a chance to look too closely and don't recall all the details but For debugging, it would be useful to know whether |
Thanks @aekul for the guidance. I will start by printing the current stage and the input stage names -- just to identify the halide |
Note to self: ProxImaL/proximal/halide/src/algorithm/linearized-admm.h Lines 100 to 109 in 4ba0459
|
Working draft for debugging purpose: https://github.com/antonysigma/proximal/tree/debug-producer-error
Observations: when we define the Halide
Func
and then return them asstd::tuple
, the generator can capture the algorithm pipeline and schedule it withMullapudi2016
autoscheduler. But notAnderson2021
. The autoscheduler reports:The same assertion failure happens with C++ structured bindings, as well as passing return values as function reference.
The offending line is shown below:
See also: #67 .
The text was updated successfully, but these errors were encountered: