Skip to content

[Debug PR] Debugging strong_multiclock Regression Test Failures #10995

[Debug PR] Debugging strong_multiclock Regression Test Failures

[Debug PR] Debugging strong_multiclock Regression Test Failures #10995

Workflow file for this run

name: Test
on:
# We want to run the CI when anything is pushed to master.
# Since master is a protected branch this only happens when a PR is merged.
# This is a double check in case the PR was stale and had some issues.
push:
branches:
- master
paths-ignore: # Prevents from running if only docs are updated
- 'doc/**'
- '**/*README*'
- '**.md'
- '**.rst'
pull_request:
paths-ignore: # Prevents from running if only docs are updated
- 'doc/**'
- '**/*README*'
- '**.md'
- '**.rst'
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # daily
# We want to cancel previous runs for a given PR or branch / ref if another CI
# run is requested.
# See: https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
# default compiler for all non-compatibility tests
MATRIX_EVAL: "CC=gcc-13 && CXX=g++-13"
jobs:
# Build:
# name: 'B: Building VtR'
# runs-on: ubuntu-24.04
# strategy:
# fail-fast: false
# matrix:
# include:
# - { build_type: 'release', verbose: '0' }
# - { build_type: 'debug', verbose: '0' }
# - { build_type: 'debug', verbose: '1' }
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# BUILD_TYPE: ${{ matrix.build_type }}
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh VERBOSE=${{ matrix.verbose }}
# Format:
# runs-on: ubuntu-24.04
# strategy:
# fail-fast: false
# matrix:
# include:
# - { name: 'C/C++', script: 'check-format.sh' }
# - { name: 'Python', script: 'check-format-py.sh' }
# - { name: 'Python Lint', script: 'pylint_check.py' }
# name: 'F: ${{ matrix.name }}'
# steps:
# # TODO: This should be on the same version of Python as would be found on
# # Ubuntu 24.04 (3.12.3); however that version has some linting errors.
# - uses: actions/setup-python@v5
# with:
# python-version: 3.10.10
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - name: Test
# run: ./dev/${{ matrix.script }}
# UniTests:
# name: 'U: C++ Unit Tests'
# runs-on: ubuntu-24.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - name: Test
# env:
# CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on"
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: ./.github/scripts/unittest.sh
Regression:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include: [
# {
# name: 'Basic',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic with highest assertion level',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=4 -DWITH_BLIFEXPLORER=on',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic_odin',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
# suite: 'vtr_reg_basic_odin',
# extra_pkgs: ""
# },
# {
# name: 'Basic with NO_GRAPHICS',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic with NO_SERVER',
# params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic with CAPNPROTO disabled',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic with serial VPR_EXECUTION_ENGINE',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_EXECUTION_ENGINE=serial -DTATUM_EXECUTION_ENGINE=serial',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
# suite: 'vtr_reg_basic',
# extra_pkgs: ""
# },
# {
# name: 'Basic_odin with VTR_ENABLE_DEBUG_LOGGING',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
# suite: 'vtr_reg_basic_odin',
# extra_pkgs: ""
# },
{
name: 'Strong',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
suite: 'vtr_reg_strong',
extra_pkgs: "libeigen3-dev"
}
# {
# name: 'Strong_odin',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
# suite: 'vtr_reg_strong_odin',
# extra_pkgs: ""
# },
# {
# name: 'Valgrind Memory',
# params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on',
# suite: 'vtr_reg_valgrind_small',
# extra_pkgs: ""
# }
]
name: 'R: ${{ matrix.name }}'
steps:
- uses: actions/setup-python@v5
with:
python-version: 3.12.3
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v2
id: cpu-cores
- name: Install dependencies
run: ./.github/scripts/install_dependencies.sh
- name: Install external libraries
run: sudo apt install -y ${{ matrix.extra_pkgs }}
if: ${{ matrix.extra_pkgs }}
- uses: hendrikmuhs/[email protected]
- name: Test
env:
CMAKE_PARAMS: ${{ matrix.params }}
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
./.github/scripts/build.sh
./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count}}
- name: Upload regression run files
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ${{matrix.name}}_run_files
path: |
vtr_flow/**/*.out
# vtr_flow/**/*.blif # Removed since it was taking too much space and was hardly used.
vtr_flow/**/*.p
vtr_flow/**/*.net
vtr_flow/**/*.r
- name: Upload regression results
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ${{matrix.name}}_results
path: |
vtr_flow/**/*.log
vtr_flow/**/parse_results*.txt
# Sanitized:
# runs-on: ubuntu-24.04
# strategy:
# fail-fast: false
# matrix:
# include: [
# {
# name: 'Basic',
# params: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
# suite: 'vtr_reg_basic_odin'
# }
# #- { name: 'Strong', suite: 'vtr_reg_strong' } # SKIP Too long to run on GitHub Actions (max 6h)
# ]
# name: 'S: ${{ matrix.name }}'
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: ${{ matrix.params }}
# BUILD_TYPE: debug
# LSAN_OPTIONS: 'exitcode=42' #Use a non-standard exit code to ensure LSAN errors are detected
# # In Ubuntu 20240310.1.0, the entropy of ASLR has increased (28 -> 32). LLVM 14 in this
# # image is not compatible with this increased ASLR entropy. Apparently, memory sanitizer
# # depends on LLVM and all CI tests where VTR_ENABLE_SANITIZE is enabled fail. For a temporary
# # fix, we manually reduce the entropy. This quick fix should be removed in the future
# # when github deploys a more stable Ubuntu image.
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# sudo sysctl -w vm.mmap_rnd_bits=28
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# # We skip QoR since we are only checking for errors in sanitizer runs
# ./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count }} -skip_qor
# Parmys:
# name: 'Parmys Basic Test'
# runs-on: ubuntu-24.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: '-DVTR_IPO_BUILD=off'
# BUILD_TYPE: debug
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# ./run_reg_test.py parmys_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count }}
# ODINII:
# name: 'ODIN-II Basic Test'
# runs-on: ubuntu-24.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on'
# BUILD_TYPE: debug
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# sudo sysctl -w vm.mmap_rnd_bits=28
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# ./run_reg_test.py odin_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count }}
# VQM2BLIF:
# name: 'VQM2BLIF Basic Tests'
# runs-on: ubuntu-24.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# BUILD_TYPE: release
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# ./utils/vqm2blif/test/scripts/test_vqm2blif.sh
# Compatibility:
# runs-on: ubuntu-24.04
# strategy:
# fail-fast: false
# matrix:
# include:
# - { name: 'GCC 11 (Ubuntu Noble - 24.04)', eval: 'CC=gcc-11 && CXX=g++-11', }
# - { name: 'GCC 12 (Ubuntu Noble - 24.04)', eval: 'CC=gcc-12 && CXX=g++-12', }
# - { name: 'GCC 14 (Ubuntu Noble - 24.04)', eval: 'CC=gcc-14 && CXX=g++-14', }
# - { name: 'Clang 16 (Ubuntu Noble - 24.04)', eval: 'CC=clang-16 && CXX=clang++-16', }
# - { name: 'Clang 17 (Ubuntu Noble - 24.04)', eval: 'CC=clang-17 && CXX=clang++-17', }
# - { name: 'Clang 18 (Ubuntu Noble - 24.04)', eval: 'CC=clang-18 && CXX=clang++-18', }
# # Note: We do not include GCC-13 since it is the default and is already tested.
# name: 'B: ${{ matrix.name }}'
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on"
# MATRIX_EVAL: ${{ matrix.eval }}
# BUILD_TYPE: release
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# JammyCompatibility:
# name: 'Ubuntu Jammy - 22.04 Compatibility Test'
# runs-on: ubuntu-22.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.10.10
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install Dependencies
# run: ./.github/scripts/install_jammy_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off"
# MATRIX_EVAL: 'CC=gcc-11 && CXX=g++-11'
# BUILD_TYPE: release
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh
# Coverity:
# name: 'Coverity Scan'
# needs:
# - Build
# - Format
# - UniTests
# - Regression
# - Sanitized
# - Parmys
# - ODINII
# - VQM2BLIF
# - Compatibility
# runs-on: ubuntu-24.04
# steps:
# - uses: actions/setup-python@v5
# with:
# python-version: 3.12.3
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Get number of CPU cores
# uses: SimenB/github-actions-cpu-cores@v2
# id: cpu-cores
# - name: Install dependencies
# run: ./.github/scripts/install_dependencies.sh
# - uses: hendrikmuhs/[email protected]
# - name: Test
# env:
# CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on'
# NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
# _COVERITY_URL: 'https://scan.coverity.com/download/linux64'
# _COVERITY_MD5: 'd0d7d7df9d6609e578f85096a755fb8f'
# run: |
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
# ./.github/scripts/build.sh