-
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
WIP: Fix cross dependent path #5
base: master
Are you sure you want to change the base?
Conversation
…ix_cross_dependent_path
…ix_cross_dependent_path
…ix_cross_dependent_path
Are the Furthermore, we model the pipeline latency as 1 elem/cycle (push/pop). Is this accurate in all cases? |
Extend optimization functionality.
In practice they are dynamic, but I think our current approach of just estimating them conservatively is "good enough". The true buffer space consumption comes from having to buffering large delays, which will always be orders of magnitude bigger than a conservative estimation of the operation latency. We could even just estimate any arithmetic operation on floating point numbers to be 16 cycles and be done with it :-) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What did you want me to review here? I could only find some debugging code
Well, that might be an issue, since we have several paths. Setting the arithmetic operation latency too high might be able to create interlocks since the buffer of the other path has been over-estimated (i.e. size of delay buffer too high). |
Co-authored-by: definelicht <definelicht@inf.ethz.ch>
Co-authored-by: definelicht <definelicht@inf.ethz.ch>
Sorry for that, it is still WIP, and pushed the review button by mistake, and removed it immediately, but I guess the email notificaiton has already been sent out. |
I don't think I understand why this is an issue. As long as we use FIFOs (instead of, say, fixed depth shift registers), isn't it fine if they're too big? Then they will just never use their full capacity. |
Adjust delay buffer computation.
@definelicht FYI: The dace submodule link from master is invalid i.e. 404 |
Fixed |
Furthermore, we have a |
This is okay for me, but perhaps we can make it optional so it only fails if trying to run something distributed? |
Yep, that makes sense |
To my understanding, the example below might stall in both cases, i.e. if the delay buffer is too small, but also too big, right? |
The size of the delay buffer should have no influence on when the data arrives from |
Ok yes you are right, but we are basically wasting memory. |
Yep, this is the "safe" solution. Keep in mind that the buffer sizes from this will be tiny compared to buffering a slice of the 2D domain, so I'm not concerned about this being a significant factor :-) |
It seems to be fixed, please reproduce this finding before we merge :) |
For min channel depth = 1024 |
setup_internal_buffers
compute_kernel_latency
compute_delay_buffer
horidiff