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: Build and Test with AIE tools with HSA backend | |
on: | |
push: | |
branches: | |
- main | |
- vck5000-dynamic-dma-config | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
AIE_COMMIT: | |
description: 'which aie commit to build' | |
type: string | |
required: false | |
default: '' | |
LIT_FILTER: | |
description: 'LIT_FILTER for tests (regex of paths in test/)' | |
type: string | |
required: false | |
default: '' | |
defaults: | |
run: | |
shell: bash | |
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-aie-tools-linux-${{ github.event.number || github.sha }} | |
cancel-in-progress: true | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
jobs: | |
build-repo: | |
name: Build and Test HSA | |
runs-on: ubuntu-latest | |
steps: | |
- name: Free disk space | |
uses: descriptinc/free-disk-space@main | |
with: | |
tool-cache: true | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
swap-storage: false | |
- name: Docker prune | |
shell: bash | |
run: | | |
docker system prune -a -f | |
- name: Install necessary build tools for the ROCm runtime | |
run: | | |
sudo apt install libelf-dev elfutils libdwarf-dev | |
sudo mkdir --parents --mode=0755 /etc/apt/keyrings | |
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \ | |
gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null | |
for ver in 5.3.3 5.4.3 5.5.1 5.6; do | |
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$ver focal main" \ | |
| sudo tee --append /etc/apt/sources.list.d/rocm.list | |
done | |
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \ | |
| sudo tee /etc/apt/preferences.d/rocm-pin-600 | |
sudo apt update | |
sudo apt install rocm-hip-runtime-dev5.6.0 && sudo apt-get clean | |
- name: Get ROCm-air-platforms | |
id: clone-rocm-air-platforms | |
run: utils/clone-rocm-air-platforms.sh | |
shell: bash | |
- name: Build and Install libxaie | |
run: utils/github-clone-build-libxaie.sh | |
- uses: uraimo/run-on-arch-action@v2.5.0 | |
name: Run commands | |
id: runcmd | |
with: | |
distro: none | |
base_image: ghcr.io/xilinx/mlir-aie/xilinx:latest | |
githubToken: ${{ github.token }} | |
dockerRunArgs: | | |
--mac-address ${{ secrets.XILINX_MAC }} | |
run: | | |
ls -l /opt/Xilinx/Vitis/2023.2/ | |
# this is the inverse of `base64 -w 1000000 Xilinx.lic` | |
# the -w ("wrap after 1000000 cols") is so that there are no spaces in the XILINX_LIC env var | |
echo -n "${{ secrets.XILINX_LIC }}" | base64 --decode > ~/.Xilinx/Xilinx.lic | |
cd / | |
git clone https://github.com/Xilinx/mlir-aie.git | |
cd /mlir-aie | |
git checkout ${{ github.head_ref }} | |
if [ x"${{ inputs.AIE_COMMIT }}" != x"" ]; then | |
git reset --hard ${{ inputs.AIE_COMMIT }} | |
fi | |
git submodule update --init --recursive | |
apt install python3.10-venv | |
python -m venv aie-venv | |
source aie-venv/bin/activate | |
pip install -r python/requirements.txt | |
VERSION=$(utils/clone-llvm.sh --get-wheel-version) | |
pip -q download mlir==$VERSION \ | |
-f https://github.com/Xilinx/mlir-aie/releases/expanded_assets/mlir-distro | |
unzip -q mlir-*.whl | |
find mlir -exec touch -a -m -t 201108231405.14 {} \; | |
# don't delete the space in the sed | |
pushd cmake/modulesXilinx && sed -i.bak 's/ VITIS_VPP//g' FindVitis.cmake && popd | |
mkdir build && cd build | |
export PATH=/opt/Xilinx/Vitis/2023.2/bin:/opt/Xilinx/Vitis/2023.2/aietools/bin:$PATH | |
cmake .. -G Ninja \ | |
-DLibXAIE_ROOT=`pwd`/../aienginev2/install \ | |
-Dhsakmt_DIR=`pwd`/../rocm/lib/cmake/hsakmt/ \ | |
-DAIE_RUNTIME_TARGETS=x86_64-hsa \ | |
-DAIE_RUNTIME_TEST_TARGET=x86_64-hsa \ | |
-Dhsa-runtime64_DIR=`pwd`/../rocm/lib/cmake/hsa-runtime64/ \ | |
-DMLIR_DIR=$PWD/../mlir/lib/cmake/mlir \ | |
-DVITIS_ROOT=/opt/Xilinx/Vitis/2023.2/ \ | |
-DVitis_VERSION_MAJOR=2023 \ | |
-DVitis_VERSION_MINOR=2 \ | |
-DCMAKE_MODULE_PATH=$PWD/../cmake/modulesXilinx \ | |
-DLLVM_EXTERNAL_LIT=$(which lit) \ | |
-DAIE_INCLUDE_INTEGRATION_TESTS=OFF \ | |
-DAIE_ENABLE_PYTHON_PASSES=OFF \ | |
-DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ | |
-DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ | |
-DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \ | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DCMAKE_INSTALL_PREFIX=install | |
ninja | |
if [ x"${{ inputs.LIT_FILTER }}" == x"" ]; then | |
export LIT_FILTER="${{ inputs.LIT_FILTER }}" | |
fi | |
# filter out CODirect until I put bootgen into the image | |
export LIT_OPTS="-sv --timeout 600 -j1 --filter-out Targets/AIEGenerateCDODirect" | |
ninja check-aie | |
ninja check-reference-designs |