Skip to content

Commit 8d8c335

Browse files
authored
Merge branch 'master' into 3d_link_cost_in_placement
2 parents 48a1b42 + 25256de commit 8d8c335

File tree

17 files changed

+89
-38
lines changed

17 files changed

+89
-38
lines changed

.github/workflows/test.yml

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,23 @@ jobs:
2626
fail-fast: false
2727
matrix:
2828
include:
29-
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
30-
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
31-
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
32-
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "" }
33-
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
34-
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
35-
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: "" }
36-
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "" }
37-
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
38-
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
39-
- {test: "vtr_reg_parmys", cores: "16", options: "", cmake: "", extra_pkgs: "" }
40-
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
41-
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
42-
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
43-
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
44-
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
29+
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
30+
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
31+
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
32+
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" }
33+
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
34+
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
35+
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: "" }
36+
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" }
37+
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
38+
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
39+
- {test: "vtr_reg_nightly_test7", cores: "16", options: "", cmake: "", extra_pkgs: ""}
40+
- {test: "vtr_reg_parmys", cores: "16", options: "", cmake: "", extra_pkgs: "" }
41+
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
42+
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
43+
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
44+
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
45+
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
4546

4647
env:
4748
DEBIAN_FRONTEND: "noninteractive"

README.developers.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -222,31 +222,28 @@ Its primary purpose is try and achieve high functionality coverage.
222222
QoR checks in this regression test are primarily 'canary' checks to catch gross degradations in QoR.
223223
Occasionally, changes can cause QoR failures (e.g. due to CAD noise -- particularly on small benchmarks); usually such failures are not a concern if the QoR differences are small.
224224

225-
### vtr_reg_nightly_test1-3
225+
### vtr_reg_nightly_test1-N
226226

227-
**Goal:** Basic QoR and Performance evaluation
227+
**Goal:** Most QoR and Performance evaluation
228228

229229
**Feature Coverage:** Medium
230230

231231
**Architectures:** A wider variety of architectures
232232

233-
**Benchmarks:** Small-medium size, diverse. All include:
233+
**Benchmarks:** Small-large size, diverse. Includes:
234234

235235
* VTR benchmarks
236-
* Additional benchmarks for each suite.
236+
* Titan benchmarks except gaussian_blur (which has the longest run time)
237+
* Koios benchmarks
238+
* Various special benchmarks and tests for functionality
237239

238240
QoR checks in these regression suites are aimed at evaluating quality and run-time of the VTR flow.
239241
As a result any QoR failures are a concern and should be investigated and understood.
240242

241243
Note:
242244

243-
These suites comproise a single large suite, `vtr_reg_nightly` and should be run together to test nightly level regression. They are mostly similar in benchmark coverage interms of size and diversity however each suite tests some unique benchmarks in addition to the VTR benchmarks.
245+
These suites comprise a single large suite, `vtr_reg_nightly` and should be run together to test nightly level regression. They are mostly similar in benchmark coverage interms of size and diversity however each suite tests some unique benchmarks in addition to the VTR benchmarks. Each vtr_reg_nightly<N> suite runs on a different server (in parallel), so by having N such test suites we speed up CI by a factor of N. Currently the runtime of each suite is capped at 6 hours, so if the runtime exceeds six hours a new vtr_reg_nightly suite (i.e. N+1) should be created.
244246

245-
| suite | wall-clock time| Additional benchmarks|
246-
|-------|----------------|----------------------|
247-
|vtr_reg_nightly_test1|~4.5 hours with `-j8`|ISPD and MCNC20 |
248-
|vtr_reg_nightly_test2|~6 hours with `-j8`|Titan23 and Titan `other`|
249-
|vtr_reg_nightly_test3|~5.5 hours with `-j8`|none|
250247

251248
### vtr_reg_weekly
252249

@@ -259,7 +256,7 @@ Occasionally, changes can cause QoR failures (e.g. due to CAD noise -- particula
259256
**Benchmarks:** Medium-Large size, diverse. Includes:
260257

261258
* VTR benchmarks
262-
* Titan23 benchmarks
259+
* Titan23 benchmarks, including gaussian_blur
263260

264261
**Architectures:** A wide variety of architectures
265262

@@ -306,11 +303,12 @@ a Slurm-managed cluster can be found under vtr_flow/tasks/slurm/
306303
## Continuous integration (CI)
307304
For the following tests, you can use remote servers instead of running them locally. Once the changes are pushed into the
308305
remote repository, or a PR is created, the [Test Workflow](https://github.com/verilog-to-routing/vtr-verilog-to-routing/blob/master/.github/workflows/test.yml)
309-
will be triggered. The following tests are included in the workflow:
310-
* [vtr_reg_nightly_test1-3](#vtr_reg_nightly_test1-3)
306+
will be triggered. Many tests are included in the workflow, including:
307+
* [vtr_reg_nightly_test1-N](#vtr_reg_nightly_test1-N)
311308
* [vtr_reg_strong](#vtr_reg_strong)
312-
* parmys_reg_basic
309+
* [vtr_reg_basic](#vtr_reg_basic)
313310
* odin_reg_strong
311+
* parmys_reg_basic
314312

315313
instructions on how to gather QoR results of CI runs can be found [here](#example-extracting-qor-data-from-ci-runs).
316314

doc/src/vpr/command_line_usage.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,7 @@ If any of init_t, exit_t or alpha_t is specified, the user schedule, with a fixe
800800
**Default:** ``0.0``
801801

802802
.. _dusty_sa_options:
803-
Setting any of the following options selects `Dusty's annealing schedule <dusty_sa.rst>`_.
803+
Setting any of the following 5 options selects :ref:`Dusty's annealing schedule <dusty_sa>` .
804804

805805
.. option:: --alpha_min <float>
806806

@@ -954,6 +954,13 @@ The following options are only valid when the placement engine is in timing-driv
954954

955955
**Default:** ``0``
956956

957+
.. option:: --quench_recompute_divider <int>
958+
959+
Controls how many times the placer performs a timing analysis to update its criticality estimates during a quench.
960+
If unspecified, uses the value from --inner_loop_recompute_divider.
961+
962+
**Default:** ``0``
963+
957964
.. option:: --td_place_exp_first <float>
958965

959966
Controls how critical a connection is considered as a function of its slack, at the start of the anneal.

doc/src/vpr/dusty_sa.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _dusty_sa:
2+
13
Dusty's Simulated Annealing Schedule
24
====================================
35

vtr_flow/tasks/regression_tests/vtr_reg_nightly_test2/task_list.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@ regression_tests/vtr_reg_nightly_test2/vtr_reg_netlist_writer
22
regression_tests/vtr_reg_nightly_test2/vtr_func_formal
33
regression_tests/vtr_reg_nightly_test2/vtr_bidir
44
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph
5-
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_flat_router
6-
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_bidir
5+
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_bidir
76
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_complex_switch
87
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_titan
98
regression_tests/vtr_reg_nightly_test2/vpr_verify_rr_graph_error_check
10-
#regression_tests/vtr_reg_nightly_test2/vpr_verify_router_lookahead_flat_router @TODO: fix this test
11-
regression_tests/vtr_reg_nightly_test2/vtr_timing_update_diff
9+
regression_tests/vtr_reg_nightly_test2/vtr_timing_update_diff
1210
regression_tests/vtr_reg_nightly_test2/vtr_timing_update_diff_titan
1311
regression_tests/vtr_reg_nightly_test2/vtr_reg_multiclock_mcnc
1412
regression_tests/vtr_reg_nightly_test2/titan_other
15-
regression_tests/vtr_reg_nightly_test2/titan_other_flat_router
1613
regression_tests/vtr_reg_nightly_test2/titan_quick_qor
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
regression_tests/vtr_reg_nightly_test3/vtr_reg_qor_chain
22
regression_tests/vtr_reg_nightly_test3/vtr_reg_qor_chain_depop
3-
regression_tests/vtr_reg_nightly_test3/vtr_reg_qor_chain_depop_flat_router
43
regression_tests/vtr_reg_nightly_test3/vtr_reg_qor_chain_predictor_off
54
regression_tests/vtr_reg_nightly_test3/vtr_reg_qor
6-
regression_tests/vtr_reg_nightly_test3/complex_switch
5+
regression_tests/vtr_reg_nightly_test3/complex_switch
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
regression_tests/vtr_reg_nightly_test7/titan_other_run_flat
2+
#regression_tests/vtr_reg_nightly_test7/vtr_reg_qor_large_run_flat
3+
#regression_tests/vtr_reg_nightly_test7/vtr_reg_qor_large_depop_run_flat
4+
#regression_tests/vtr_reg_nightly_test7/verify_router_lookahead_run_flat
5+
regression_tests/vtr_reg_nightly_test7/verify_rr_graph_run_flat
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
############################################
3+
# Configuration file for running experiments
4+
##############################################
5+
6+
# Path to directory of circuits to use
7+
circuits_dir=benchmarks/verilog
8+
9+
# Path to directory of architectures to use
10+
archs_dir=arch/timing
11+
12+
# Add circuits to list to sweep
13+
circuit_list_add=bgm.v
14+
circuit_list_add=LU8PEEng.v
15+
circuit_list_add=LU32PEEng.v
16+
circuit_list_add=mcml.v
17+
circuit_list_add=stereovision0.v
18+
circuit_list_add=stereovision1.v
19+
circuit_list_add=stereovision2.v
20+
21+
# Add architectures to list to sweep
22+
arch_list_add=k6_frac_N10_frac_chain_mem32K_40nm.xml
23+
24+
# Parse info and how to parse
25+
parse_file=vpr_standard.txt
26+
27+
# How to parse QoR info
28+
qor_parse_file=qor_large.txt
29+
30+
# Pass requirements
31+
pass_requirements_file=pass_requirements.txt
32+
33+
#Script parameters
34+
script_params=-track_memory_usage -max_router_iterations 300 --flat_routing true

0 commit comments

Comments
 (0)