From 5eaa50f151c1dbbe14aca45fff4a4b9279362a9c Mon Sep 17 00:00:00 2001 From: "zhao, zhenhui" Date: Mon, 28 Sep 2026 11:46:02 +0800 Subject: [PATCH] [CPU] Build CPU wheels on Ubuntu 22.04 with AMX-FP8 support (#58515) Signed-off-by: zhejiangxiaomai Signed-off-by: jiang1.li Co-authored-by: jiang1.li --- docker/Dockerfile.cpu | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.cpu b/docker/Dockerfile.cpu index 36792698a2..43172fbdcf 100644 --- a/docker/Dockerfile.cpu +++ b/docker/Dockerfile.cpu @@ -27,7 +27,7 @@ # cache mounts (ccache, cargo registry) aren't exported by `--cache-to # type=registry`, so they don't survive a build landing on a different/fresh # builder. sccache's cache lives in S3 instead, so it does. -FROM ubuntu:25.04 AS base +FROM ubuntu:22.04 AS base RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ @@ -52,11 +52,38 @@ RUN if [ "$USE_SCCACHE" = "1" ]; then \ && rm -rf sccache.tar.gz sccache-v0.8.1-${SCCACHE_ARCH}-unknown-linux-musl; \ fi +######################### BINUTILS BUILD IMAGE ######################### +# Build a newer GNU assembler for the AMX-FP8 instruction set. +FROM base AS binutils-build + +ARG BINUTILS_VERSION=2.47 + +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ + apt-get update -y \ + && apt-get install -y --no-install-recommends \ + bison \ + build-essential \ + flex \ + texinfo \ + xz-utils \ + && curl -fsSLO "https://sourceware.org/pub/binutils/releases/binutils-${BINUTILS_VERSION}.tar.xz" \ + && tar -xf "binutils-${BINUTILS_VERSION}.tar.xz" \ + && mkdir binutils-build \ + && cd binutils-build \ + && "../binutils-${BINUTILS_VERSION}/configure" --prefix=/opt/binutils --disable-nls --disable-werror \ + && make -j"$(nproc)" \ + && make install \ + && cd .. \ + && rm -rf binutils-build "/binutils-${BINUTILS_VERSION}" "binutils-${BINUTILS_VERSION}.tar.xz" + ######################### COMMON BASE IMAGE ######################### FROM base AS base-common WORKDIR /workspace +COPY --from=binutils-build /opt/binutils /opt/binutils + ARG PYTHON_VERSION=3.12 ARG max_jobs=32 @@ -93,7 +120,8 @@ ENV CC=/usr/bin/gcc-15 CXX=/usr/bin/g++-15 ENV CCACHE_DIR=/root/.cache/ccache ENV CMAKE_CXX_COMPILER_LAUNCHER=ccache -ENV PATH="/root/.local/bin:$PATH" +ENV PATH="/opt/binutils/bin:/root/.local/bin:$PATH" +ENV COMPILER_PATH="/opt/binutils/bin" ENV VIRTUAL_ENV="/opt/venv" ENV UV_PYTHON_INSTALL_DIR=/opt/uv/python RUN uv venv --python ${PYTHON_VERSION} --seed ${VIRTUAL_ENV} @@ -168,7 +196,7 @@ RUN apt-get update -y \ WORKDIR /workspace COPY requirements/build/rust.txt requirements/build/rust.txt -RUN python3 -m pip install --break-system-packages --no-cache-dir -r requirements/build/rust.txt +RUN python3 -m pip install --no-cache-dir -r requirements/build/rust.txt ARG USE_SCCACHE ARG SCCACHE_ENDPOINT