Skip to content

Commit 6069e93

Browse files
committed
Add multi-platform build for linux aarch64
1 parent 2891a55 commit 6069e93

26 files changed

+300
-146
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# GH actions.
2+
name: Wheel-Manylinux-Aarch64-Nightly
3+
4+
on:
5+
workflow_dispatch:
6+
7+
jobs:
8+
Build:
9+
continue-on-error: true
10+
strategy:
11+
matrix:
12+
pkg_kind: ["nightly", "stable"]
13+
# matrix of build configs
14+
config:
15+
- gpu: "none"
16+
image: "package-cpu:aarch64"
17+
platform: "cpu"
18+
platform:
19+
- linux/arm64
20+
exclude:
21+
- pkg_kind: ${{ github.event_name == 'schedule' && 'stable' || '' }}
22+
23+
runs-on: ubuntu-24.04-arm
24+
25+
steps:
26+
- name: Reclaim disk space
27+
run: |
28+
df -h
29+
sudo rm -rf /usr/local/lib/android
30+
sudo rm -rf /opt/hostedtoolcache/CodeQL
31+
sudo rm -rf /usr/local/.ghcup
32+
df -h
33+
- uses: actions/checkout@v3
34+
with:
35+
submodules: "recursive"
36+
- name: Build Docker image
37+
run: |
38+
set -eux
39+
cd docker
40+
docker build --build-arg ARCH=aarch64 -t package-${{ matrix.config.platform }}:aarch64 -f Dockerfile.package-${{ matrix.config.platform }} .
41+
- name: Setup script env
42+
run: |
43+
rm -rf conda
44+
ln -s 3rdparty/tlcpack/conda conda
45+
- name: Checkout source
46+
run: |
47+
git clone https://github.com/mlc-ai/relax tvm --recursive
48+
git clone https://github.com/mlc-ai/mlc-llm mlc-llm --recursive
49+
- name: Sync MLC AI Package
50+
run: |
51+
python3 scripts/sync_package.py --gpu ${{ matrix.config.gpu }} --package tvm --package-name ${{ matrix.pkg_kind == 'nightly' && 'mlc-ai-nightly' || 'mlc-ai' }} --revision origin/mlc ${{ matrix.pkg_kind == 'nightly' && '--skip-checkout' || '' }} --skip-conda
52+
- name: Sync MLC LLM Package
53+
run: |
54+
python3 scripts/sync_package.py --gpu ${{ matrix.config.gpu }} --package mlc-llm --package-name ${{ matrix.pkg_kind == 'nightly' && 'mlc-llm-nightly' || 'mlc-llm' }} --revision origin/main ${{ matrix.pkg_kind == 'nightly' && '--skip-checkout' || '' }} --skip-conda
55+
- name: Build TVM Unity
56+
uses: gacts/run-and-post-run@v1
57+
env:
58+
IMAGE: ${{ matrix.config.image }}
59+
GPU: ${{ matrix.config.gpu }}
60+
PLATFORM: ${{ matrix.platform }}
61+
with:
62+
run: |
63+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/build_mlc_ai_wheel_manylinux.sh --gpu $GPU
64+
post: |
65+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/cleanup_workspace.sh
66+
- name: Build MLC-LLM
67+
uses: gacts/run-and-post-run@v1
68+
env:
69+
IMAGE: ${{ matrix.config.image }}
70+
GPU: ${{ matrix.config.gpu }}
71+
PLATFORM: ${{ matrix.platform }}
72+
with:
73+
run: |
74+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/build_mlc_llm_wheel_manylinux.sh --gpu $GPU
75+
post: |
76+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/cleanup_workspace.sh
77+
- name: Wheel-Deploy
78+
if: github.ref == 'refs/heads/main'
79+
uses: softprops/action-gh-release@v1
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.MLC_GITHUB_TOKEN }}
82+
with:
83+
files: |
84+
tvm/python/repaired_wheels/*.whl
85+
mlc-llm/python/repaired_wheels/*.whl
86+
tag_name: v0.9.dev0
87+
prerelease: true

.github/workflows/wheel_manylinux_nightly.yaml

Lines changed: 0 additions & 89 deletions
This file was deleted.
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# GH actions.
2+
name: Wheel-Manylinux-X86-64-Nightly
3+
4+
on:
5+
workflow_dispatch:
6+
# push:
7+
# branches:
8+
# - main
9+
# pull_request:
10+
# branches:
11+
# - main
12+
# schedule:
13+
# - cron: "0 6 * * *" # 6 AM UTC
14+
15+
jobs:
16+
Build:
17+
strategy:
18+
matrix:
19+
pkg_kind: ["nightly", "stable"]
20+
# matrix of build configs
21+
config:
22+
- gpu: "none"
23+
image: "mlcaidev/package-cpu:519d0b3"
24+
- gpu: "cuda-12.2"
25+
image: "mlcaidev/package-cu122:519d0b3"
26+
- gpu: "cuda-12.3"
27+
image: "mlcaidev/package-cu123:519d0b3"
28+
- gpu: "cuda-12.4"
29+
image: "mlcaidev/package-cu124:519d0b3"
30+
- gpu: "cuda-12.8"
31+
image: "mlcaidev/package-cu128:519d0b3"
32+
- gpu: "rocm-6.1"
33+
image: "mlcaidev/package-rocm61:519d0b3"
34+
- gpu: "rocm-6.2"
35+
image: "mlcaidev/package-rocm62:519d0b3"
36+
platform:
37+
- linux/amd64
38+
exclude:
39+
- pkg_kind: ${{ github.event_name == 'schedule' && 'stable' || '' }}
40+
41+
runs-on: [self-hosted, Linux, X64]
42+
43+
steps:
44+
- uses: actions/checkout@v3
45+
with:
46+
submodules: "recursive"
47+
- name: Setup script env
48+
run: |
49+
rm -rf conda
50+
ln -s 3rdparty/tlcpack/conda conda
51+
- name: Checkout source
52+
run: |
53+
git clone https://github.com/mlc-ai/relax tvm --recursive
54+
git clone https://github.com/mlc-ai/mlc-llm mlc-llm --recursive
55+
- name: Sync MLC AI Package
56+
run: |
57+
python3 scripts/sync_package.py --gpu ${{ matrix.config.gpu }} --package tvm --package-name ${{ matrix.pkg_kind == 'nightly' && 'mlc-ai-nightly' || 'mlc-ai' }} --revision origin/mlc ${{ matrix.pkg_kind == 'nightly' && '--skip-checkout' || '' }} --skip-conda
58+
- name: Sync MLC LLM Package
59+
run: |
60+
python3 scripts/sync_package.py --gpu ${{ matrix.config.gpu }} --package mlc-llm --package-name ${{ matrix.pkg_kind == 'nightly' && 'mlc-llm-nightly' || 'mlc-llm' }} --revision origin/main ${{ matrix.pkg_kind == 'nightly' && '--skip-checkout' || '' }} --skip-conda
61+
- name: Build TVM Unity
62+
uses: gacts/run-and-post-run@v1
63+
env:
64+
IMAGE: ${{ matrix.config.image }}
65+
GPU: ${{ matrix.config.gpu }}
66+
PLATFORM: ${{ matrix.platform }}
67+
with:
68+
run: |
69+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/build_mlc_ai_wheel_manylinux.sh --gpu $GPU
70+
post: |
71+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/cleanup_workspace.sh
72+
- name: Build MLC-LLM
73+
uses: gacts/run-and-post-run@v1
74+
env:
75+
IMAGE: ${{ matrix.config.image }}
76+
GPU: ${{ matrix.config.gpu }}
77+
PLATFORM: ${{ matrix.platform }}
78+
with:
79+
run: |
80+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/build_mlc_llm_wheel_manylinux.sh --gpu $GPU
81+
post: |
82+
docker/bash.sh --no-gpu $IMAGE $PLATFORM ./scripts/cleanup_workspace.sh
83+
- name: Wheel-Deploy
84+
if: github.ref == 'refs/heads/main'
85+
uses: softprops/action-gh-release@v1
86+
env:
87+
GITHUB_TOKEN: ${{ secrets.MLC_GITHUB_TOKEN }}
88+
with:
89+
files: |
90+
tvm/python/repaired_wheels/*.whl
91+
mlc-llm/python/repaired_wheels/*.whl
92+
tag_name: v0.9.dev0
93+
prerelease: true

docker/Dockerfile.package-cpu

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Docker image: mlc-ai/package-vulkan
22

3-
FROM quay.io/pypa/manylinux_2_28_x86_64
3+
ARG ARCH
4+
FROM quay.io/pypa/manylinux_2_28_${ARCH}
45

56
# install core
67
COPY install/almalinux_install_core.sh /install/almalinux_install_core.sh
@@ -24,8 +25,9 @@ COPY install/almalinux_install_patchelf.sh /install/almalinux_install_patchelf.s
2425
RUN bash /install/almalinux_install_patchelf.sh
2526

2627
# Install Conda
28+
ARG ARCH
2729
COPY install/almalinux_install_conda.sh /install/almalinux_install_conda.sh
28-
RUN bash /install/almalinux_install_conda.sh
30+
RUN bash /install/almalinux_install_conda.sh ${ARCH}
2931
ENV PATH=/opt/conda/bin:${PATH}
3032

3133
# Install Python
@@ -41,7 +43,7 @@ RUN bash /install/almalinux_install_python_package.sh
4143
# Install auditwheel
4244
COPY install/almalinux_install_auditwheel.sh /install/almalinux_install_auditwheel.sh
4345
RUN bash /install/almalinux_install_auditwheel.sh
44-
ENV AUDITWHEEL_PLAT=manylinux_2_28_x86_64
46+
ENV AUDITWHEEL_PLAT=manylinux_2_28_${ARCH}
4547

4648
# Install Rust
4749
COPY install/almalinux_install_rust.sh /install/almalinux_install_rust.sh

docker/Dockerfile.package-cu117

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Docker image: mlc-ai/package-vulkan
22

3-
FROM quay.io/pypa/manylinux_2_28_x86_64
3+
ARG ARCH
4+
FROM quay.io/pypa/manylinux_2_28_${ARCH}
45

56
# install core
67
COPY install/almalinux_install_core.sh /install/almalinux_install_core.sh
@@ -15,8 +16,9 @@ COPY install/almalinux_install_llvm.sh /install/almalinux_install_llvm.sh
1516
RUN bash /install/almalinux_install_llvm.sh
1617

1718
# install cuda
19+
ARG ARCH
1820
COPY install/almalinux_install_cuda_117.sh /install/almalinux_install_cuda.sh
19-
RUN bash /install/almalinux_install_cuda.sh
21+
RUN bash /install/almalinux_install_cuda.sh ${ARCH}
2022
ENV CUDA_HOME=/usr/local/cuda
2123
ENV PATH=${CUDA_HOME}/bin:${PATH}
2224
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${PATH}
@@ -32,7 +34,7 @@ RUN bash /install/almalinux_install_patchelf.sh
3234

3335
# Install Conda
3436
COPY install/almalinux_install_conda.sh /install/almalinux_install_conda.sh
35-
RUN bash /install/almalinux_install_conda.sh
37+
RUN bash /install/almalinux_install_conda.sh ${ARCH}
3638
ENV PATH=/opt/conda/bin:${PATH}
3739

3840
# Install Python
@@ -48,7 +50,7 @@ RUN bash /install/almalinux_install_python_package.sh
4850
# Install auditwheel
4951
COPY install/almalinux_install_auditwheel.sh /install/almalinux_install_auditwheel.sh
5052
RUN bash /install/almalinux_install_auditwheel.sh
51-
ENV AUDITWHEEL_PLAT=manylinux_2_28_x86_64
53+
ENV AUDITWHEEL_PLAT=manylinux_2_28_${ARCH}
5254

5355
# Install Rust
5456
COPY install/almalinux_install_rust.sh /install/almalinux_install_rust.sh

docker/Dockerfile.package-cu118

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Docker image: mlc-ai/package-vulkan
22

3-
FROM quay.io/pypa/manylinux_2_28_x86_64
3+
ARG ARCH
4+
FROM quay.io/pypa/manylinux_2_28_${ARCH}
45

56
# install core
67
COPY install/almalinux_install_core.sh /install/almalinux_install_core.sh
@@ -15,8 +16,9 @@ COPY install/almalinux_install_llvm.sh /install/almalinux_install_llvm.sh
1516
RUN bash /install/almalinux_install_llvm.sh
1617

1718
# install cuda
19+
ARG ARCH
1820
COPY install/almalinux_install_cuda_118.sh /install/almalinux_install_cuda.sh
19-
RUN bash /install/almalinux_install_cuda.sh
21+
RUN bash /install/almalinux_install_cuda.sh ${ARCH}
2022
ENV CUDA_HOME=/usr/local/cuda
2123
ENV PATH=${CUDA_HOME}/bin:${PATH}
2224
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${PATH}
@@ -48,7 +50,7 @@ RUN bash /install/almalinux_install_python_package.sh
4850
# Install auditwheel
4951
COPY install/almalinux_install_auditwheel.sh /install/almalinux_install_auditwheel.sh
5052
RUN bash /install/almalinux_install_auditwheel.sh
51-
ENV AUDITWHEEL_PLAT=manylinux_2_28_x86_64
53+
ENV AUDITWHEEL_PLAT=manylinux_2_28_${ARCH}
5254

5355
# Install Rust
5456
COPY install/almalinux_install_rust.sh /install/almalinux_install_rust.sh

0 commit comments

Comments
 (0)