-
Notifications
You must be signed in to change notification settings - Fork 405
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
Add symbiflow tests #1564
Add symbiflow tests #1564
Conversation
59090c7
to
c031151
Compare
@mithro @litghost @vaughnbetz FYI. This is still a WIP and requires some more adjustments, but it is a starting point to begin the introduction of SymbiFlow architectures and benchmarks. In this PR, the nightly tests have been reduced to only run the symbiflow counter example, to check whether everything is working fine. |
# Pass requirements | ||
pass_requirements_file=pass_requirements.txt | ||
|
||
#The Titan benchmarks are run at a fixed channel width of 300 to simulate a Stratix IV-like routing architecture |
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.
This comment is out of date
@litghost @vaughnbetz According to what discussed, I am trying to get the RR indexed data factored out to be used only for the classic router lookahead.
In this case, the base cost is taken through the vtr-verilog-to-routing/vpr/src/route/route_timing.cpp Lines 1550 to 1556 in 469ab56
3. and other locations I am unsure how to proceed, as, for instance, the base cost calculation depends on the T_linear and T_quadratic values as well when building the RR indexed data structure. |
As stated before, the base cost should be per cost index, and the base cost compuation doesn't depend on any of the other variables: vtr-verilog-to-routing/vpr/src/route/rr_graph_indexed_data.cpp Lines 192 to 232 in 469ab56
The idea is everything except for the base cost can likely be split. This case is a little hairy: vtr-verilog-to-routing/vpr/src/route/route_timing.cpp Lines 1550 to 1556 in 469ab56
@vaughnbetz Can you explain why |
Actually, as the base cost computation depends on the normalization which, in turn, depends on T_quadratic, T_del and so on (this only if vtr-verilog-to-routing/vpr/src/route/rr_graph_indexed_data.cpp Lines 267 to 307 in 469ab56
|
Ugh |
Given that the error returned should be affecting only specific run cases (classic lookahead, or any lookahead with base_cost_types that make use of the T_quadratic/linear values, etc.), does it make sense to have the VTR_ERROR changed to VPR_THROW and disable that with the |
So based on the examples you showed, the inconsistent buffering will affect the router in the following ways, even when not running in the classic lookahead:
It is unclear how important the code in @vaughnbetz , thoughts? |
@litghost @vaughnbetz I have done some digging and found out that the problem resides in the fact that in SymbiFlow we add The problem might be that, when calculating the average T_del, T_quadratic and C for a node, we end up adding up in the sum of the number of switches also the "fake" switches:
In the example above, for the LH node, we have the last two switches which are short, and the warning is displayed, but, even though those have zero delay, I am unsure whether the number of switches to perform the avarage calculation should be taken into account. Moreover, the error we are getting about the buffering inconsistencies is due to the fact that, for the same cost index, we have only short swithces:
Here there is also a portion of code that checks as well the presence of inconsistencies when calculating the average of a node's switches buffering type: vtr-verilog-to-routing/vpr/src/route/rr_graph_indexed_data.cpp Lines 484 to 507 in 469ab56
In there, instead of a hard failure there is a warning, in case the switches have inconsistent buffering types |
e0b000c
to
8b48235
Compare
I believe this might be due to the fact that the VTR flow copies the circuit under test in the build directory, instead of generating a symlink? This could result in the various For reference, the whole I don't have data on the Titan benchmarks, but, if they are in total sth like ~10GB and if they get replicated in the build directory, the sum of all the circuits size and VPR outputs might generate that amount of data. |
@acomodi To separate whether the large output directory is new or not, can you open a new PR with just the changes to the working directory (e.g. cleanup and report size)? Assuming that the output directory was large before, I don't believe it blocks this PR, just something to fix in the future. |
Agreed, if this was an existing issue then it's not blocking. |
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Also updates the counter blif test Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
6f009ed
to
cf68a3a
Compare
PR opened here: #1610. I have also rebased this on top of master |
@litghost @vaughnbetz CI went green and the "big" data usage happens also in master: #1610 (comment) |
Description
This is an initial PR to have the SymbiFlow XC7 architecture integrated within the
vtr_flow
.There is an initial download step of the latest SymbiFlow package, with the extraction of the Artix 50T data to have it working within VPR:
A very simple initial circuit file has been added, which represent a synthesized counter.
This PR is still marked as WIP for two main reasons:
arch
directory.Motivation and Context
With the Symbiflow/VTR fork being almost equal to the upstream version, it is possible now to insert SymbiFlow tests within the vtr_flow. This helps to track possible regressions against SymbiFlow architectures, as well as increasing the robustness of the test suite.
How Has This Been Tested?
New symbiflow counter test added.
Types of changes
Checklist: