Skip to content

Commit 04f5b84

Browse files
Merge branch 'master' into feature-remove-warnings
2 parents 0de1df1 + 208197f commit 04f5b84

File tree

2,074 files changed

+538720
-55856
lines changed

Some content is hidden

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

2,074 files changed

+538720
-55856
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/install_dependencies.sh

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ sudo apt install -y \
1111
binutils-gold \
1212
build-essential \
1313
capnproto \
14-
ament-cmake \
1514
exuberant-ctags \
1615
curl \
1716
doxygen \
@@ -44,18 +43,18 @@ sudo apt install -y \
4443
qtbase5-dev \
4544
uuid-dev \
4645
default-jdk \
47-
g++-9 \
48-
gcc-9 \
49-
g++-10 \
50-
gcc-10 \
5146
g++-11 \
5247
gcc-11 \
5348
g++-12 \
5449
gcc-12 \
55-
clang-11 \
56-
clang-12 \
57-
clang-13 \
58-
clang-14 \
50+
g++-13 \
51+
gcc-13 \
52+
g++-14 \
53+
gcc-14 \
54+
clang-15 \
55+
clang-16 \
56+
clang-17 \
57+
clang-18 \
5958
clang-format-14 \
6059
libtbb-dev
6160

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/env bash
2+
3+
sudo apt update
4+
5+
sudo apt install -y \
6+
autoconf \
7+
automake \
8+
bash \
9+
bison \
10+
binutils \
11+
binutils-gold \
12+
build-essential \
13+
capnproto \
14+
exuberant-ctags \
15+
curl \
16+
doxygen \
17+
flex \
18+
fontconfig \
19+
gdb \
20+
git \
21+
gperf \
22+
libcairo2-dev \
23+
libcapnp-dev \
24+
libgtk-3-dev \
25+
libevent-dev \
26+
libfontconfig1-dev \
27+
liblist-moreutils-perl \
28+
libncurses5-dev \
29+
libx11-dev \
30+
libxft-dev \
31+
libxml2-utils \
32+
libxml++2.6-dev \
33+
libreadline-dev \
34+
tcllib \
35+
tcl8.6-dev \
36+
libffi-dev \
37+
perl \
38+
pkg-config \
39+
texinfo \
40+
time \
41+
valgrind \
42+
zip \
43+
qtbase5-dev \
44+
uuid-dev \
45+
default-jdk \
46+
g++-9 \
47+
gcc-9 \
48+
g++-10 \
49+
gcc-10 \
50+
g++-11 \
51+
gcc-11 \
52+
g++-12 \
53+
gcc-12 \
54+
clang-format-14 \
55+
libtbb-dev
56+
57+
pip install -r requirements.txt
58+
59+
git clone https://github.com/capnproto/capnproto-java.git $GITHUB_WORKSPACE/env/capnproto-java
60+
pushd $GITHUB_WORKSPACE/env/capnproto-java
61+
make
62+
sudo make install
63+
popd

.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/containers.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
name: Containers
22

33
on:
4+
# We want to run the CI when anything is pushed to master.
5+
# Since master is a protected branch this only happens when a PR is merged.
6+
# This is a double check in case the PR was stale and had some issues.
47
push:
8+
branches:
9+
- master
10+
paths-ignore: # Prevents from running if only docs are updated
11+
- 'doc/**'
12+
- '**/*README*'
13+
- '**.md'
14+
- '**.rst'
515
pull_request:
16+
paths-ignore: # Prevents from running if only docs are updated
17+
- 'doc/**'
18+
- '**/*README*'
19+
- '**.md'
20+
- '**.rst'
621
workflow_dispatch:
722
schedule:
823
- cron: '0 0 * * 0' # weekly
924

25+
# We want to cancel previous runs for a given PR or branch / ref if another CI
26+
# run is requested.
27+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
28+
concurrency:
29+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
30+
cancel-in-progress: true
31+
1032
jobs:
1133

1234
Image:
@@ -16,15 +38,15 @@ jobs:
1638
steps:
1739

1840
- name: 🧰 Repository Checkout
19-
uses: actions/checkout@v3
41+
uses: actions/checkout@v4
2042
with:
2143
submodules: 'true'
2244

2345
- name: 🔧 Generate image name
2446
id: generate
2547
run: |
2648
REPO='${{ github.repository }}'
27-
echo "::set-output name=image::ghcr.io/${REPO,,}/ubuntu/focal/build"
49+
echo "image=ghcr.io/${REPO,,}/ubuntu/focal/build" >> $GITHUB_OUTPUT
2850
2951
- name: ⛴️ Build container image
3052
run: docker build -t ${{ steps.generate.outputs.image }} -f Dockerfile .

.github/workflows/labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
triage:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v3
9+
- uses: actions/checkout@v4
1010
- uses: actions/labeler@master
1111
with:
1212
repo-token: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/nightly_test.yml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
name: NightlyTest
2+
3+
on:
4+
# We want to run the CI when anything is pushed to master.
5+
# Since master is a protected branch this only happens when a PR is merged.
6+
# This is a double check in case the PR was stale and had some issues.
7+
# NOTE: This was turned off in late October 2024 since the Nightly Tests were
8+
# no longer working on the self-hosted runners. Will turn this back on
9+
# once the issue is resolved.
10+
# push:
11+
# branches:
12+
# - master
13+
# paths-ignore: # Prevents from running if only docs are updated
14+
# - 'doc/**'
15+
# - '**/*README*'
16+
# - '**.md'
17+
# - '**.rst'
18+
# pull_request:
19+
# paths-ignore: # Prevents from running if only docs are updated
20+
# - 'doc/**'
21+
# - '**/*README*'
22+
# - '**.md'
23+
# - '**.rst'
24+
workflow_dispatch:
25+
schedule:
26+
- cron: '0 0 * * *' # daily
27+
28+
# We want to cancel previous runs for a given PR or branch / ref if another CI
29+
# run is requested.
30+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
31+
concurrency:
32+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
33+
cancel-in-progress: true
34+
35+
env:
36+
# default compiler for all non-compatibility tests
37+
MATRIX_EVAL: "CC=gcc-11 && CXX=g++-11"
38+
39+
jobs:
40+
Run-tests:
41+
# Prevents from running on forks where no custom runners are available
42+
if: ${{ github.repository_owner == 'verilog-to-routing' }}
43+
44+
timeout-minutes: 420
45+
46+
container: ubuntu:jammy
47+
48+
runs-on: [self-hosted, Linux, X64]
49+
50+
strategy:
51+
fail-fast: false
52+
matrix:
53+
include:
54+
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
55+
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
56+
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
57+
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
58+
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
59+
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
60+
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: ""}
61+
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
62+
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
63+
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
64+
- {test: "vtr_reg_nightly_test7", cores: "16", options: "", cmake: "", extra_pkgs: ""}
65+
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
66+
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
67+
- {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"}
68+
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DSYNLIG_SYSTEMVERILOG=ON", extra_pkgs: ""}
69+
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
70+
- {test: "parmys_reg_strong", cores: "16", options: "", cmake: "-DSYNLIG_SYSTEMVERILOG=ON", extra_pkgs: ""}
71+
72+
env:
73+
DEBIAN_FRONTEND: "noninteractive"
74+
75+
steps:
76+
77+
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
78+
# to v4, need to upgrade the machine to support node20.
79+
- uses: actions/checkout@v3
80+
with:
81+
submodules: 'true'
82+
83+
- name: Setup
84+
run: stdbuf -i0 -i0 -e0 ./.github/scripts/hostsetup.sh
85+
86+
- name: Install external libraries
87+
run: apt install -y ${{ matrix.extra_pkgs }}
88+
if: ${{ matrix.extra_pkgs }}
89+
90+
- name: Execute test script
91+
run: stdbuf -i0 -o0 -e0 ./.github/scripts/run-vtr.sh
92+
env:
93+
VPR_NUM_WORKERS: 4
94+
VTR_TEST: ${{ matrix.test }}
95+
VTR_TEST_OPTIONS: ${{ matrix.options }}
96+
VTR_CMAKE_PARAMS: ${{ matrix.cmake }}
97+
NUM_CORES: ${{ matrix.cores }}
98+
99+
- name: Upload test results
100+
# If the job was not cancelled, we want to save the result (this includes
101+
# when the job fails). See warning here:
102+
# https://docs.github.com/en/actions/learn-github-actions/expressions#always
103+
if: ${{ !cancelled() }}
104+
# TODO: This runnner is running on a self-hosted CPU. In order to upgrade
105+
# to v4, need to upgrade the machine to support node20.
106+
uses: actions/upload-artifact@v3
107+
with:
108+
name: ${{matrix.test}}_test_results
109+
path: |
110+
**/results*.gz
111+
**/plot_*.svg
112+
**/qor_results*.tar.gz
113+
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: NightlyTestManual
2+
3+
# This workflow can only be dispatched.
4+
on:
5+
workflow_dispatch:
6+
7+
# Automatically runs every Sunday 5 AM UTC.
8+
# Results should be ready ~15 hours later (Sunday 8 PM UTC), on time for Monday mornings.
9+
schedule:
10+
- cron: '0 5 * * 0'
11+
12+
# We want to cancel previous runs for a given PR or branch / ref if another CI
13+
# run is requested.
14+
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
17+
cancel-in-progress: true
18+
19+
env:
20+
# default compiler for all non-compatibility tests
21+
MATRIX_EVAL: "CC=gcc-13 && CXX=g++-13"
22+
23+
jobs:
24+
Run-tests:
25+
# Prevents from running on forks where no custom runners are available
26+
if: ${{ github.repository_owner == 'verilog-to-routing' }}
27+
28+
name: 'Nightly Tests Manual Run'
29+
# This workflow is expected to take around 19 hours. Giving it 24 hours
30+
# before timing out.
31+
timeout-minutes: 1440
32+
runs-on: [self-hosted, Linux, X64, SAVI]
33+
34+
steps:
35+
# Clean previous runs of this workflow.
36+
- name: 'Cleanup build folder'
37+
run: |
38+
rm -rf ./* || true
39+
rm -rf ./.??* || true
40+
41+
# Checkout the VTR repo.
42+
- uses: actions/checkout@v4
43+
with:
44+
submodules: 'true'
45+
46+
# Get the extra benchmarks
47+
- name: 'Get Extra Benchmarks'
48+
run: |
49+
make get_titan_benchmarks
50+
make get_ispd_benchmarks
51+
./dev/upgrade_vtr_archs.sh
52+
make get_symbiflow_benchmarks
53+
54+
# Build VTR using the default build options.
55+
- name: 'Build VTR'
56+
run: |
57+
make -j12
58+
make env
59+
source .venv/bin/activate
60+
pip install -r requirements.txt
61+
62+
# Run all of the nightly tests.
63+
# TODO: We could expose more parallelism if we had one task list which ran
64+
# all of these.
65+
- name: 'Run Nightly Test 1'
66+
run: |
67+
source .venv/bin/activate
68+
./run_reg_test.py -j12 vtr_reg_nightly_test1
69+
70+
- name: 'Run Nightly Test 2'
71+
run: |
72+
source .venv/bin/activate
73+
./run_reg_test.py -j12 vtr_reg_nightly_test2
74+
75+
- name: 'Run Nightly Test 3'
76+
run: |
77+
source .venv/bin/activate
78+
./run_reg_test.py -j12 vtr_reg_nightly_test3
79+
80+
81+
- name: 'Run Nightly Test 4'
82+
run: |
83+
source .venv/bin/activate
84+
./run_reg_test.py -j12 vtr_reg_nightly_test4
85+
86+
- name: 'Run Nightly Test 5'
87+
run: |
88+
source .venv/bin/activate
89+
./run_reg_test.py -j12 vtr_reg_nightly_test5
90+
91+
- name: 'Run Nightly Test 6'
92+
run: |
93+
source .venv/bin/activate
94+
./run_reg_test.py -j12 vtr_reg_nightly_test6
95+
96+
- name: 'Run Nightly Test 7'
97+
run: |
98+
source .venv/bin/activate
99+
./run_reg_test.py -j12 vtr_reg_nightly_test7

0 commit comments

Comments
 (0)