-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
50fac6c
commit ec876cd
Showing
2 changed files
with
184 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,154 @@ | ||
name: Build and Test with AIE tools with HSA backend | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
# 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/[email protected] | ||
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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#!/usr/bin/env bash | ||
|
||
##===- utils/github-clone-build-libxaie.sh ------------------*- Script -*-===## | ||
# | ||
# Copyright (C) 2022, Advanced Micro Devices, Inc. | ||
# SPDX-License-Identifier: MIT | ||
|
||
##===----------------------------------------------------------------------===## | ||
# | ||
# This script checks out and builds libxaiev2. | ||
# | ||
# This script is intended to be called from the github workflows. | ||
# | ||
##===----------------------------------------------------------------------===## | ||
|
||
LIBXAIE_DIR="aienginev2" | ||
INSTALL_DIR="install" | ||
|
||
HASH="xlnx_rel_v2021.2" | ||
|
||
git clone --branch $HASH --depth 1 https://github.com/Xilinx/embeddedsw.git $LIBXAIE_DIR | ||
|
||
mkdir -p $LIBXAIE_DIR/$INSTALL_DIR/lib | ||
|
||
pushd $LIBXAIE_DIR/XilinxProcessorIPLib/drivers/aienginev2/src/ | ||
make -f Makefile.Linux CFLAGS="-D__AIELINUX__" | ||
popd | ||
|
||
cp -v $LIBXAIE_DIR/XilinxProcessorIPLib/drivers/aienginev2/src/*.so* $LIBXAIE_DIR/$INSTALL_DIR/lib | ||
cp -vr $LIBXAIE_DIR/XilinxProcessorIPLib/drivers/aienginev2/include $LIBXAIE_DIR/$INSTALL_DIR |