diff --git a/.github/workflows/ci-linux-cleanroom.yml b/.github/workflows/ci-linux-cleanroom.yml deleted file mode 100644 index f7a46a95d..000000000 --- a/.github/workflows/ci-linux-cleanroom.yml +++ /dev/null @@ -1,216 +0,0 @@ -name: CI Ubuntu - -on: - workflow_call: - workflow_dispatch: - inputs: - force_debug_with_tmate: - type: boolean - description: 'Run the build with tmate session' - required: false - default: false - debug_with_tmate: - type: boolean - description: 'Run the build with a tmate session ONLY in case of failure' - required: false - default: false - pull_request: - merge_group: - push: - branches: - - main - -concurrency: - group: ci-build-test-cpp-ubuntu-${{ github.event.number || github.sha }} - cancel-in-progress: true - -jobs: - build_and_ctest: - name: Build and Test (ubuntu, ASSERTIONS) - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - env: - CACHE_DIR: ${{ github.workspace }}/.container-cache - CACHE_KEY: ubuntu-build-test-cpp-asserts-v2-${{ format('{0}-{1}', github.ref_name, github.run_number) }} - steps: - - name: Set unified TZ - uses: szenius/set-timezone@v2.0 - with: - timezoneLinux: "Asia/Singapore" - timezoneMacos: "Asia/Singapore" - timezoneWindows: "Singapore Standard Time" - - - name: Checking out repository - env: - BRANCH_NAME: ${{ github.ref }} - REPO_ADDRESS: ${{ github.server_url }}/${{ github.repository }} - run: | - git init - git remote add origin $REPO_ADDRESS - git -c protocol.version=2 fetch --depth 1 origin $BRANCH_NAME - git reset --hard FETCH_HEAD - git -c submodule."third_party/torch-mlir".update=none \ - -c submodule."third_party/stablehlo".update=none \ - -c submodule."third_party/XRT".update=none \ - submodule update --init --recursive --depth 1 --single-branch -j 10 - - - name: System deps - run: | - sudo apt install ccache ninja-build - - - uses: actions/setup-python@v4 - with: - python-version: '3.11' - - - name: Python deps - run: | - pip install "numpy<2" pyyaml "pybind11[global]==2.10.3" nanobind - - - name: Enable cache - uses: actions/cache/restore@v3 - with: - path: ${{ env.CACHE_DIR }} - key: ${{ env.CACHE_KEY }} - restore-keys: ubuntu-build-test-cpp-asserts- - - - name: Peano dep - run: | - bash build_tools/download_peano.sh - echo "PEANO_INSTALL_DIR=$PWD/llvm-aie" >> $GITHUB_ENV - - - name: Build packages - run: | - export cache_dir="${{ env.CACHE_DIR }}" - export CCACHE_COMPILERCHECK="string:$(clang --version)" - bash build_tools/build_llvm.sh - rm -rf llvm-build - export llvm_install_dir=$PWD/llvm-install - bash build_tools/build_test_cpp.sh - - - name: Create artifacts - if: ${{ !cancelled() }} - run: | - pushd third_party/iree/third_party/llvm-project && llvm_sha_short=$(git rev-parse --short HEAD) && popd - tar cf llvm-dist-ubuntu-$llvm_sha_short.tar llvm-install - tar cf iree-dist-ubuntu.tar iree-install - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} - with: - name: ubuntu_x86_64_llvm_packages - path: llvm-dist-*.tar - if-no-files-found: warn - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} - with: - name: ubuntu_x86_64_iree_packages - path: iree-dist-ubuntu.tar - if-no-files-found: warn - - - name: Save cache - uses: actions/cache/save@v3 - if: ${{ !cancelled() && github.event_name == 'push' && github.ref_name == 'main' }} - with: - path: ${{ env.CACHE_DIR }} - key: ${{ env.CACHE_KEY }} - - - name: Start tmate session - if: ${{ (failure() && inputs.debug_with_tmate) || inputs.force_debug_with_tmate }} - uses: mxschmitt/action-tmate@v3.18 - with: - limit-access-to-actor: true - - test_linux: - name: E2E Test linux - needs: build_and_ctest - strategy: - fail-fast: false - matrix: - runs-on: [linux-phoenix] - runs-on: ${{ matrix.runs-on }} - env: - XILINXD_LICENSE_FILE: /opt/xilinx/Xilinx.lic - steps: - - name: "Checking out repository" # for test scripts - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 - with: - submodules: false # not required for testbench - - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: ubuntu_x86_64_iree_packages - - - name: Extract artifact - run: | - tar -xvf iree-dist-ubuntu.tar - echo "IREE_INSTALL_DIR=$PWD/iree-install" >> $GITHUB_ENV - echo "PYTHONPATH=$PWD/iree-install/python_packages/iree_compiler:$PWD/iree-install/python_packages/iree_runtime" >> $GITHUB_ENV - bash build_tools/download_peano.sh - echo "PEANO_INSTALL_DIR=$PWD/llvm-aie" >> $GITHUB_ENV - - - uses: actions/setup-python@v4 - with: - python-version: '3.11' - - - name: Create venv and install dependencies - run: | - python -m venv .venv - source .venv/bin/activate - pip install -r tests/requirements.txt - - - name: Query device info - run: | - source .venv/bin/activate - echo "aie-metadata" - python build_tools/ci/amdxdna_driver_utils/amdxdna_ioctl.py --aie-metadata - echo "aie-version" - python build_tools/ci/amdxdna_driver_utils/amdxdna_ioctl.py --aie-version - echo "XRT_LITE_N_CORE_ROWS=$(python build_tools/ci/amdxdna_driver_utils/amdxdna_ioctl.py --num-rows)" >> $GITHUB_ENV - echo "XRT_LITE_N_CORE_COLS=$(python build_tools/ci/amdxdna_driver_utils/amdxdna_ioctl.py --num-cols)" >> $GITHUB_ENV - - - name : E2E comparison of AIE to llvm-cpu - run: | - source .venv/bin/activate - python build_tools/ci/cpu_comparison/run.py \ - test_aie_vs_cpu \ - $PWD/iree-install \ - $PWD/llvm-aie \ - --vitis-dir /opt/Xilinx/Vitis/2024.2 \ - --reset-npu-between-runs -v \ - --xrt_lite_n_core_rows=$XRT_LITE_N_CORE_ROWS \ - --xrt_lite_n_core_cols=$XRT_LITE_N_CORE_COLS - - - name: E2E correctness matmul test - run: | - # https://stackoverflow.com/a/17567422 - # shim_xdna::bo::map_drm_bo does an mmap with MAP_LOCKED - # which can fail if limit is to low - sudo prlimit -lunlimited --pid $$ - source .venv/bin/activate - bash build_tools/ci/run_matmul_test.sh \ - test_matmuls \ - iree-install \ - $PWD/llvm-aie \ - /opt/Xilinx/Vitis/2024.2 - - - name: Python tests - run: | - source .venv/bin/activate - pytest -v tests \ - --capture=tee-sys \ - --iree-install-dir=$PWD/iree-install \ - --peano-install-dir=$PWD/llvm-aie \ - --xrt_lite_n_core_rows=$XRT_LITE_N_CORE_ROWS \ - --xrt_lite_n_core_cols=$XRT_LITE_N_CORE_COLS - - - name: XRT-LITE tests - run: | - DEVICE_TEST_DIR="$PWD/iree-install/device_tests" - for t in $(ls $DEVICE_TEST_DIR); do - $DEVICE_TEST_DIR/$t --xrt_lite_n_core_rows=$XRT_LITE_N_CORE_ROWS --xrt_lite_n_core_cols=$XRT_LITE_N_CORE_COLS - done