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
because there is an extra cycle between g1 and g2, which is when rr.done is 1; rr.done is 0 for the rest of the execution. But in static, there is no such extra cycle because g2 starts on the next cycle after g1.
The text was updated successfully, but these errors were encountered:
ayakayorihiro
changed the title
Static promotion doesn't preserve semantics on certain programs
Static promotion doesn't preserve semantics for shared resource dones
Nov 12, 2024
ayakayorihiro
changed the title
Static promotion doesn't preserve semantics for shared resource dones
Static promotion doesn't preserve semantics for shared resource dones on consecutive groups
Nov 12, 2024
Just documenting some conclusions from our discussion today (please correct me if anything I say here is wrong):
Low/medium level: We should fix the situation in static by establishing a rule about when to not promote a group to static, and implementing it.
Higher level: We should figure out what we want our calling convention to look like in light of this situation, where things may occur/be used outside of the original group you used the resource in. Specifically, what should a successor group assume/expect?
We found that static promotion doesn't preserve semantics when
done
signals of shared resources between two sequentially enabled groups are observed.The below Calyx program has different outputs based on whether static promotion was enabled or not:
When running with static-promotion.futil.data while enabling static promotion, we get the result
while when we disable static promotion, we get the result
because there is an extra cycle between
g1
andg2
, which is whenrr.done
is 1;rr.done
is 0 for the rest of the execution. But in static, there is no such extra cycle becauseg2
starts on the next cycle afterg1
.The text was updated successfully, but these errors were encountered: