-
Notifications
You must be signed in to change notification settings - Fork 3
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
Kernels fails with contract violation (support scalar outputs) #83
Comments
We currently fail on this kernel because the output is a scalar, so a workaround is to have the output be a 1-element array. I can implement scalar outputs, but it doesn't seem particularly useful right now because we don't have any rewrite rules for horizontal vector operations (so the example kernels won't see any improvement). Is there a use case here where some more complicated, per-elements computations feed into a final horizontal accumulation? |
The particular function I have is inlined so it's possible that it may get called inside a loop. Though in general I don't know if this is a valid assumption. Do the multiple function subroutines get inlined into the dataflow graph before the dios compiler gets to processing it? If so then maybe we're ok and I'll just wrap it with a loop. |
Diospyros essentially inlines everything into the outermost function of what is passed in. So yes, if the calling context is a loop here, it would be more useful to pass the surrounding loop context, something like:
In that case, the inner function |
Better error message for now in 0ac745b |
Minimal repro:
Error message:
The text was updated successfully, but these errors were encountered: