Docs cleanup using Ubuntu HWE #5587
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 wheels for Ryzen AI | |
on: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
ENABLE_RTTI: | |
description: 'Run the build with rtti enabled' | |
type: boolean | |
required: false | |
default: true | |
AIE_COMMIT: | |
description: 'AIE commit to build' | |
type: string | |
required: false | |
default: '' | |
merge_group: | |
schedule: | |
# At 04:00. (see https://crontab.guru) | |
- cron: '0 4 * * *' | |
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-ryzenai-experimental-${{ github.event.number || github.sha }} | |
cancel-in-progress: true | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
VITIS: /opt/ryzen_ai-1.3.0/vitis_aie_essentials | |
XILINXD_LICENSE_FILE: /opt/xilinx/Xilinx.lic | |
jobs: | |
build-repo: | |
name: Build and upload mlir_aie wheels | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
contents: write | |
packages: read | |
strategy: | |
fail-fast: false | |
matrix: | |
python_version: [ | |
"3.10", "3.12", "3.13", | |
] | |
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 | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "true" | |
- uses: uraimo/run-on-arch-action@v2.7.0 | |
name: Build mlir-aie | |
id: runcmd | |
with: | |
distro: none | |
arch: none | |
base_image: ghcr.io/xilinx/mlir-aie/ubuntu22-ryzenai-1.3.0ea:1.1 | |
githubToken: ${{ github.token }} | |
dockerRunArgs: | | |
--mac-address 02:42:ac:11:00:02 | |
env: | | |
VITIS: ${{ env.VITIS }} | |
XILINXD_LICENSE_FILE: ${{ env.XILINXD_LICENSE_FILE }} | |
run: | | |
git config --global --add safe.directory $PWD | |
MLIR_VERSION=$(git rev-parse --short HEAD) | |
echo "Building mlir-aie version $MLIR_VERSION" | |
python${{ matrix.python_version }} -m venv ${{ github.workspace }}/aie-venv | |
source ${{ github.workspace }}/aie-venv/bin/activate | |
echo "Installing vitis_aie_essentials ..." | |
pushd /opt | |
tar xfz /workspace/vaie.tgz | |
popd | |
pip install -r python/requirements.txt | |
pip install -r python/requirements_ml.txt | |
HOST_MLIR_PYTHON_PACKAGE_PREFIX=aie pip install -r python/requirements_extras.txt | |
export ENABLE_RTTI=${{ inputs.ENABLE_RTTI }} | |
NO_RTTI="" # Set a default value | |
NO_RTTI_UNDERSCORE="" # Set a default value | |
if [ x"$ENABLE_RTTI" == x"false" ]; then | |
NO_RTTI="-no-rtti" | |
NO_RTTI_UNDERSCORE="_no_rtti" | |
fi | |
VERSION=$(utils/clone-llvm.sh --get-wheel-version) | |
pip -q download mlir$NO_RTTI==$VERSION \ | |
-f https://github.com/Xilinx/mlir-aie/releases/expanded_assets/mlir-distro | |
unzip -q mlir*.whl | |
# I have no clue why but the system clock on GHA containers is like 12 hours ahead. | |
# That means wheels have file with time stamps in the future which makes ninja loop | |
# forever when configuring. Set the time to some arbitrary stamp in the past just to be safe. | |
find mlir$NO_RTTI_UNDERSCORE -exec touch -a -m -t 201108231405.14 {} \; | |
export PATH=$VITIS/bin:$VITIS/aietools/bin:$PATH | |
export MLIR_INSTALL_ABS_PATH=$PWD/mlir$NO_RTTI_UNDERSCORE | |
export MLIR_AIE_SOURCE_DIR=$PWD | |
export WHEELHOUSE_DIR=$PWD/wheelhouse | |
export CMAKE_MODULE_PATH=$PWD/cmake/modulesXilinx | |
export XRT_ROOT=/opt/xilinx/xrt | |
if [ x"${{ inputs.AIE_COMMIT }}" == x"" ]; then | |
export AIE_PROJECT_COMMIT=$MLIR_VERSION | |
else | |
export AIE_PROJECT_COMMIT="${{ inputs.AIE_COMMIT }}" | |
fi | |
export AIE_VITIS_COMPONENTS='AIE2;AIE2P' | |
export DATETIME=$(date +"%Y%m%d%H") | |
pushd utils/mlir_aie_wheels | |
pip install wheel auditwheel patchelf importlib_metadata | |
CIBW_ARCHS=x86_64 pip wheel . -v -w $WHEELHOUSE_DIR --no-build-isolation | |
popd | |
auditwheel repair -w $WHEELHOUSE_DIR/repaired_wheel $WHEELHOUSE_DIR/mlir_aie*.whl --plat manylinux_2_35_x86_64 --exclude libcdo_driver.so --exclude libmlir_float16_utils.so | |
# WHL_FN=$(ls $WHEELHOUSE_DIR/repaired_wheel/mlir_aie*whl) | |
# mv "$WHL_FN" "`echo $WHL_FN | sed "s/cp310-cp310/py3-none/"`" | |
- name: Upload mlir_aie | |
uses: actions/upload-artifact@v4 | |
with: | |
path: wheelhouse/repaired_wheel/mlir_aie*whl | |
name: mlir_aie-${{ matrix.python_version }} | |
- name: Release current commit | |
if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' | |
uses: ncipollo/release-action@v1.12.0 | |
with: | |
artifacts: wheelhouse/repaired_wheel/mlir_aie*whl | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
tag: 'latest-wheels' | |
name: 'latest-wheels' | |
removeArtifacts: false | |
allowUpdates: true | |
replacesArtifacts: true | |
makeLatest: true |