Skip to content

Commit 7758044

Browse files
authored
Merge branch 'master' into joshua-xan
2 parents f4f63be + b3b3084 commit 7758044

File tree

138 files changed

+54308
-4459
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

138 files changed

+54308
-4459
lines changed

.github/scripts/build.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ source $(dirname "$0")/common.sh
66

77
$SPACER
88

9+
if [[ -z "${NUM_PROC}" ]]; then
10+
NUM_PROC=1
11+
fi
12+
913
start_section "vtr.build" "${GREEN}Building..${NC}"
1014
export FAILURE=0
11-
make -k BUILD_TYPE=${BUILD_TYPE} CMAKE_PARAMS="-Werror=dev ${CMAKE_PARAMS} ${CMAKE_INSTALL_PREFIX_PARAMS}" -j2 || export FAILURE=1
15+
make -k BUILD_TYPE=${BUILD_TYPE} CMAKE_PARAMS="-Werror=dev ${CMAKE_PARAMS} ${CMAKE_INSTALL_PREFIX_PARAMS}" -j${NUM_PROC} || export FAILURE=1
1216
end_section "vtr.build"
1317

1418
# When the build fails, produce the failure output in a clear way

.github/scripts/unittest.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ $(dirname "$0")/build.sh
99
$SPACER
1010

1111
start_section "vtr.test.0" "${GREEN}Testing..${NC} ${CYAN}C++ unit tests${NC}"
12-
make test
12+
make test -j${NUM_PROC}
1313
end_section "vtr.test.0"
1414

1515
$SPACER

.github/workflows/test.yml

Lines changed: 113 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,20 @@ jobs:
5252
- uses: actions/checkout@v4
5353
with:
5454
submodules: 'true'
55-
- run: ./.github/scripts/install_dependencies.sh
55+
56+
- name: Get number of CPU cores
57+
uses: SimenB/github-actions-cpu-cores@v2
58+
id: cpu-cores
59+
60+
- name: Install dependencies
61+
run: ./.github/scripts/install_dependencies.sh
5662

5763
- uses: hendrikmuhs/[email protected]
5864

5965
- name: Test
6066
env:
6167
BUILD_TYPE: ${{ matrix.build_type }}
68+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
6269
run: |
6370
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
6471
./.github/scripts/build.sh VERBOSE=${{ matrix.verbose }}
@@ -80,7 +87,9 @@ jobs:
8087
with:
8188
python-version: 3.10.10
8289
- uses: actions/checkout@v4
83-
- run: ./.github/scripts/install_dependencies.sh
90+
91+
- name: Install dependencies
92+
run: ./.github/scripts/install_dependencies.sh
8493

8594
- name: Test
8695
run: ./dev/${{ matrix.script }}
@@ -97,11 +106,18 @@ jobs:
97106
- uses: actions/checkout@v4
98107
with:
99108
submodules: 'true'
100-
- run: ./.github/scripts/install_dependencies.sh
109+
110+
- name: Get number of CPU cores
111+
uses: SimenB/github-actions-cpu-cores@v2
112+
id: cpu-cores
113+
114+
- name: Install dependencies
115+
run: ./.github/scripts/install_dependencies.sh
101116

102117
- name: Test
103118
env:
104119
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on"
120+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
105121
run: ./.github/scripts/unittest.sh
106122

107123

@@ -116,7 +132,13 @@ jobs:
116132
- uses: actions/checkout@v4
117133
with:
118134
submodules: 'true'
119-
- run: ./.github/scripts/install_dependencies.sh
135+
136+
- name: Get number of CPU cores
137+
uses: SimenB/github-actions-cpu-cores@v2
138+
id: cpu-cores
139+
140+
- name: Install dependencies
141+
run: ./.github/scripts/install_dependencies.sh
120142

121143
- uses: hendrikmuhs/[email protected]
122144

@@ -125,6 +147,7 @@ jobs:
125147
#In order to get compilation warnings produced per source file, we must do a non-IPO build
126148
#We also turn warnings into errors for this target by doing a strict compile
127149
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_STRICT_COMPILE=on -DVTR_IPO_BUILD=off"
150+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
128151
run: |
129152
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
130153
./.github/scripts/build.sh
@@ -139,57 +162,68 @@ jobs:
139162
{
140163
name: 'Basic',
141164
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
142-
suite: 'vtr_reg_basic'
165+
suite: 'vtr_reg_basic',
166+
extra_pkgs: ""
143167
},
144168
{
145169
name: 'Basic with highest assertion level',
146170
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=4 -DWITH_BLIFEXPLORER=on',
147-
suite: 'vtr_reg_basic'
171+
suite: 'vtr_reg_basic',
172+
extra_pkgs: ""
148173
},
149174
{
150175
name: 'Basic_odin',
151176
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
152-
suite: 'vtr_reg_basic_odin'
177+
suite: 'vtr_reg_basic_odin',
178+
extra_pkgs: ""
153179
},
154180
{
155181
name: 'Basic with NO_GRAPHICS',
156182
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
157-
suite: 'vtr_reg_basic'
183+
suite: 'vtr_reg_basic',
184+
extra_pkgs: ""
158185
},
159186
{
160187
name: 'Basic with NO_SERVER',
161188
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
162-
suite: 'vtr_reg_basic'
189+
suite: 'vtr_reg_basic',
190+
extra_pkgs: ""
163191
},
164192
{
165193
name: 'Basic with CAPNPROTO disabled',
166194
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
167-
suite: 'vtr_reg_basic'
195+
suite: 'vtr_reg_basic',
196+
extra_pkgs: ""
168197
},
169198
{
170199
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
171200
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
172-
suite: 'vtr_reg_basic'
201+
suite: 'vtr_reg_basic',
202+
extra_pkgs: ""
173203
},
174204
{
175205
name: 'Basic_odin with VTR_ENABLE_DEBUG_LOGGING',
176206
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
177-
suite: 'vtr_reg_basic_odin'
207+
suite: 'vtr_reg_basic_odin',
208+
extra_pkgs: ""
178209
},
179210
{
180211
name: 'Strong',
181212
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
182-
suite: 'vtr_reg_strong'
213+
suite: 'vtr_reg_strong',
214+
extra_pkgs: "libeigen3-dev"
183215
},
184216
{
185217
name: 'Strong_odin',
186218
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
187-
suite: 'vtr_reg_strong_odin'
219+
suite: 'vtr_reg_strong_odin',
220+
extra_pkgs: ""
188221
},
189222
{
190223
name: 'Valgrind Memory',
191224
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on',
192-
suite: 'vtr_reg_valgrind_small'
225+
suite: 'vtr_reg_valgrind_small',
226+
extra_pkgs: ""
193227
}
194228
]
195229
name: 'R: ${{ matrix.name }}'
@@ -198,20 +232,32 @@ jobs:
198232
- uses: actions/setup-python@v5
199233
with:
200234
python-version: 3.10.10
235+
201236
- uses: actions/checkout@v4
202237
with:
203238
submodules: 'true'
204-
- run: ./.github/scripts/install_dependencies.sh
239+
240+
- name: Get number of CPU cores
241+
uses: SimenB/github-actions-cpu-cores@v2
242+
id: cpu-cores
243+
244+
- name: Install dependencies
245+
run: ./.github/scripts/install_dependencies.sh
246+
247+
- name: Install external libraries
248+
run: sudo apt install -y ${{ matrix.extra_pkgs }}
249+
if: ${{ matrix.extra_pkgs }}
205250

206251
- uses: hendrikmuhs/[email protected]
207252

208253
- name: Test
209254
env:
210255
CMAKE_PARAMS: ${{ matrix.params }}
256+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
211257
run: |
212258
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
213259
./.github/scripts/build.sh
214-
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2
260+
./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count}}
215261
216262
- name: Upload regression run files
217263
if: ${{ !cancelled() }}
@@ -259,7 +305,12 @@ jobs:
259305
with:
260306
submodules: 'true'
261307

262-
- run: ./.github/scripts/install_dependencies.sh
308+
- name: Get number of CPU cores
309+
uses: SimenB/github-actions-cpu-cores@v2
310+
id: cpu-cores
311+
312+
- name: Install dependencies
313+
run: ./.github/scripts/install_dependencies.sh
263314

264315
- uses: hendrikmuhs/[email protected]
265316

@@ -273,12 +324,13 @@ jobs:
273324
# depends on LLVM and all CI tests where VTR_ENABLE_SANITIZE is enabled fail. For a temporary
274325
# fix, we manually reduce the entropy. This quick fix should be removed in the future
275326
# when github deploys a more stable Ubuntu image.
327+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
276328
run: |
277329
sudo sysctl -w vm.mmap_rnd_bits=28
278330
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
279331
./.github/scripts/build.sh
280332
# We skip QoR since we are only checking for errors in sanitizer runs
281-
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2 -skip_qor
333+
./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count }} -skip_qor
282334
283335
284336
Parmys:
@@ -292,18 +344,25 @@ jobs:
292344
- uses: actions/checkout@v4
293345
with:
294346
submodules: 'true'
295-
- run: ./.github/scripts/install_dependencies.sh
347+
348+
- name: Get number of CPU cores
349+
uses: SimenB/github-actions-cpu-cores@v2
350+
id: cpu-cores
351+
352+
- name: Install dependencies
353+
run: ./.github/scripts/install_dependencies.sh
296354

297355
- uses: hendrikmuhs/[email protected]
298356

299357
- name: Test
300358
env:
301359
CMAKE_PARAMS: '-DVTR_IPO_BUILD=off'
302360
BUILD_TYPE: debug
361+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
303362
run: |
304363
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
305364
./.github/scripts/build.sh
306-
./run_reg_test.py parmys_reg_basic -show_failures -j2
365+
./run_reg_test.py parmys_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count }}
307366
308367
309368
ODINII:
@@ -317,19 +376,26 @@ jobs:
317376
- uses: actions/checkout@v4
318377
with:
319378
submodules: 'true'
320-
- run: ./.github/scripts/install_dependencies.sh
379+
380+
- name: Get number of CPU cores
381+
uses: SimenB/github-actions-cpu-cores@v2
382+
id: cpu-cores
383+
384+
- name: Install dependencies
385+
run: ./.github/scripts/install_dependencies.sh
321386

322387
- uses: hendrikmuhs/[email protected]
323388

324389
- name: Test
325390
env:
326391
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on'
327392
BUILD_TYPE: debug
393+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
328394
run: |
329395
sudo sysctl -w vm.mmap_rnd_bits=28
330396
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
331397
./.github/scripts/build.sh
332-
./run_reg_test.py odin_reg_basic -show_failures -j2
398+
./run_reg_test.py odin_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count }}
333399
334400
335401
VQM2BLIF:
@@ -343,13 +409,20 @@ jobs:
343409
- uses: actions/checkout@v4
344410
with:
345411
submodules: 'true'
346-
- run: ./.github/scripts/install_dependencies.sh
412+
413+
- name: Get number of CPU cores
414+
uses: SimenB/github-actions-cpu-cores@v2
415+
id: cpu-cores
416+
417+
- name: Install dependencies
418+
run: ./.github/scripts/install_dependencies.sh
347419

348420
- uses: hendrikmuhs/[email protected]
349421

350422
- name: Test
351423
env:
352424
BUILD_TYPE: release
425+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
353426
run: |
354427
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
355428
./.github/scripts/build.sh
@@ -378,7 +451,13 @@ jobs:
378451
- uses: actions/checkout@v4
379452
with:
380453
submodules: 'true'
381-
- run: ./.github/scripts/install_dependencies.sh
454+
455+
- name: Get number of CPU cores
456+
uses: SimenB/github-actions-cpu-cores@v2
457+
id: cpu-cores
458+
459+
- name: Install dependencies
460+
run: ./.github/scripts/install_dependencies.sh
382461

383462
- uses: hendrikmuhs/[email protected]
384463

@@ -387,6 +466,7 @@ jobs:
387466
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on"
388467
MATRIX_EVAL: ${{ matrix.eval }}
389468
BUILD_TYPE: release
469+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
390470
run: |
391471
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
392472
./.github/scripts/build.sh
@@ -413,13 +493,20 @@ jobs:
413493
- uses: actions/checkout@v4
414494
with:
415495
submodules: 'true'
416-
- run: ./.github/scripts/install_dependencies.sh
496+
497+
- name: Get number of CPU cores
498+
uses: SimenB/github-actions-cpu-cores@v2
499+
id: cpu-cores
500+
501+
- name: Install dependencies
502+
run: ./.github/scripts/install_dependencies.sh
417503

418504
- uses: hendrikmuhs/[email protected]
419505

420506
- name: Test
421507
env:
422508
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on'
509+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
423510
_COVERITY_URL: 'https://scan.coverity.com/download/linux64'
424511
_COVERITY_MD5: 'd0d7d7df9d6609e578f85096a755fb8f'
425512
run: |

doc/src/vpr/command_line_usage.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,8 @@ The following options are used to enable server mode in VPR.
18791879

18801880
**Default:** ``60555``
18811881

1882+
.. seealso:: :ref:`interactive_path_analysis_client`
1883+
18821884
Command-line Auto Completion
18831885
----------------------------
18841886

doc/src/vtr/server_mode/index.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,19 @@ Draw selected critical path elements example
202202
203203
.. note:: If status is not 1, the field ***DATA*** contains error string.
204204

205+
`The interactive path analysis (IPA) client <https://github.com/w0lek/IPAClient>`_ is useful for viewing timing paths, and to test VPR's server mode functionality.
205206

207+
.. _interactive_path_analysis_client:
208+
209+
Interactive Path Analysis Client (IPA)
210+
====================================================
211+
212+
The interactive path analysis (IPA) client connects to VPR's server mode and allows interactive visualization of timing paths and their placement and routing. This client application is called **IPAClient** and can also be used to test VPR's server mode functionality. It is available in a public Git repository:
213+
`https://github.com/w0lek/IPAClient <https://github.com/w0lek/IPAClient>`_.
214+
215+
This UI application is designed to generate requests for VPR in server mode and display the responses in a readable format, acting as a result viewer.
216+
217+
More details on how to build and use **IPAClient** can be found in the `README <https://github.com/w0lek/IPAClient/blob/main/README.md>`_.
206218

207219

208220

libs/EXTERNAL/libcatch2

Submodule libcatch2 updated 86 files

0 commit comments

Comments
 (0)