This repository has been archived by the owner on Dec 24, 2024. It is now read-only.
AIE CI tests #42
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Linux | |
on: | |
workflow_call: | |
workflow_dispatch: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- main | |
concurrency: | |
# A PR number if a pull request and otherwise the commit hash. This cancels | |
# queued and in-progress runs for the same PR (presubmit) or commit | |
# (postsubmit). | |
group: ci-build-test-cpp-linux-${{ github.event.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build (linux) | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: | |
- ubuntu-22.04 | |
# - nod-ai-shared-cpubuilder-manylinux-x86_64 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Install tmate | |
if: ${{ matrix.runs-on == 'nod-ai-shared-cpubuilder-manylinux-x86_64' }} | |
run: dnf install -y epel-release && dnf install -y tmate | |
- name: Set unified TZ | |
uses: szenius/[email protected] | |
with: | |
# this is an arbitrary choice | |
timezoneLinux: "Asia/Singapore" | |
timezoneMacos: "Asia/Singapore" | |
timezoneWindows: "Singapore Standard Time" | |
- name: Configure local git mirrors | |
if: ${{ matrix.runs-on == 'nod-ai-shared-cpubuilder-manylinux-x86_64' }} | |
run: | | |
/gitmirror/scripts/trigger_update_mirrors.sh | |
/gitmirror/scripts/git_config.sh | |
- name: Install deps | |
if: ${{ matrix.runs-on == 'nod-ai-shared-cpubuilder-manylinux-x86_64' }} | |
run: | | |
dnf install -y almalinux-release-devel | |
yum install -y elfutils-libelf-devel p7zip p7zip-plugins | |
- name: Install deps | |
if: ${{ matrix.runs-on == 'ubuntu-22.04' }} | |
run: | | |
sudo apt install -y libelf-dev libnuma-dev libdrm-dev | |
- name: Setup Cpp | |
if: ${{ matrix.runs-on == 'ubuntu-22.04' }} | |
uses: aminya/setup-cpp@v1 | |
with: | |
compiler: llvm-18 | |
cmake: true | |
ninja: true | |
ccache: true | |
- name: "Checking out repository" | |
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 | |
with: | |
submodules: recursive | |
- name: Build and install libnuma | |
if: ${{ matrix.runs-on == 'nod-ai-shared-cpubuilder-manylinux-x86_64' }} | |
run: | | |
curl --silent -L \ | |
https://github.com/numactl/numactl/releases/download/v2.0.18/numactl-2.0.18.tar.gz \ | |
-o numactl-2.0.18.tar.gz | |
tar -xf numactl-2.0.18.tar.gz | |
pushd numactl-2.0.18 | |
./configure | |
make install | |
popd | |
- name: Hack ROCR | |
run: | | |
sed -i 's/amdgcn-amd-amdhsa/amdgcn-amd-amdhsa -nogpulib/g' runtime/hsa-runtime/core/runtime/blit_shaders/CMakeLists.txt | |
sed -i 's/amdgcn-amd-amdhsa/amdgcn-amd-amdhsa -nogpulib/g' runtime/hsa-runtime/core/runtime/trap_handler/CMakeLists.txt | |
sed -i 's/amdgcn-amd-amdhsa/amdgcn-amd-amdhsa -nogpulib/g' runtime/hsa-runtime/image/blit_src/CMakeLists.txt | |
- name: Build ROCR distro | |
run: | | |
rocr_dir="$(cd ${{ github.workspace }} && pwd)" | |
build_rocr_dir="${{ github.workspace }}/rocr-build" | |
mkdir -p "$build_rocr_dir" | |
build_rocr_dir="$(cd $build_rocr_dir && pwd)" | |
rocr_install_dir="${{ github.workspace }}/rocr-install" | |
cmake -GNinja \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX="$rocr_install_dir" \ | |
-DClang_DIR=/usr/lib/llvm-18/lib/cmake/clang \ | |
-DLLVM_DIR=/usr/lib/llvm-18/lib/cmake/llvm \ | |
-DIMAGE_SUPPORT=OFF \ | |
-S "$rocr_dir" -B "$build_rocr_dir" | |
cmake --build "$build_rocr_dir" --target install | |
tar -cf rocr-$(git rev-parse --short HEAD).tar rocr-install | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: linux_x86_64_distro | |
path: rocr-*.tar | |
if-no-files-found: warn | |
- name: Setup tmate session | |
if: ${{ failure() }} | |
uses: mxschmitt/[email protected] | |
with: | |
limit-access-to-actor: true | |
install-dependencies: ${{ matrix.runs-on == 'ubuntu-22.04' }} | |
test_aie: | |
name: AIE tests | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [linux-phoenix] | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: "Checking out repository" | |
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: linux_x86_64_distro | |
- name: Extract artifact | |
run: | | |
tar -xf rocr-*.tar | |
export hsa_runtime64_ROOT="$PWD/rocr-install" >> $GITHUB_ENV | |
- name: Build AIE test suite | |
run: | | |
set -x | |
pushd rocrtst/suites/aie | |
build_dir="$PWD/build" | |
mkdir -p $build_dir | |
cmake -GNinja \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
"-Dhsa-runtime64_DIR=$hsa_runtime64_ROOT/lib/cmake/hsa-runtime64" \ | |
-S "$PWD" -B "$build_dir" | |
cmake --build "$build_dir" --target \ | |
aie_hsa_bare_add_one \ | |
aie_hsa_dispatch_test | |
popd | |
- name: Run AIE test suite | |
run: | | |
pushd rocrtst/suites/aie | |
build_dir="$PWD/build" | |
"$build_dir"/aie_hsa_bare_add_one $PWD | |
"$build_dir"/aie_hsa_dispatch_test $PWD |