diff --git a/.github/workflows/build-manywheel-images.yml b/.github/workflows/build-manywheel-images.yml index a599635f8..a6cabf7de 100644 --- a/.github/workflows/build-manywheel-images.yml +++ b/.github/workflows/build-manywheel-images.yml @@ -13,6 +13,7 @@ on: - .github/workflows/build-manywheel-images.yml - manywheel/Dockerfile - manywheel/Dockerfile_aarch64 + - manywheel/Dockerfile_2_28_aarch64 - manywheel/Dockerfile_cuda_aarch64 - manywheel/Dockerfile_cxx11-abi - manywheel/build_docker.sh @@ -22,6 +23,7 @@ on: - .github/workflows/build-manywheel-images.yml - manywheel/Dockerfile - manywheel/Dockerfile_aarch64 + - manywheel/Dockerfile_2_28_aarch64 - manywheel/Dockerfile_cuda_aarch64 - manywheel/Dockerfile_cxx11-abi - 'common/*' @@ -122,6 +124,21 @@ jobs: - name: Build Docker Image run: | manywheel/build_docker.sh + build-docker-cpu-aarch64-2_28: + runs-on: linux.arm64.2xlarge + env: + GPU_ARCH_TYPE: cpu-aarch64-2_28 + steps: + - name: Checkout PyTorch + uses: actions/checkout@v3 + - name: Authenticate if WITH_PUSH + run: | + if [[ "${WITH_PUSH}" == true ]]; then + echo "${DOCKER_TOKEN}" | docker login -u "${DOCKER_ID}" --password-stdin + fi + - name: Build Docker Image + run: | + manywheel/build_docker.sh build-docker-cpu-cxx11-abi: runs-on: ubuntu-22.04 env: diff --git a/manywheel/Dockerfile_2_28_aarch64 b/manywheel/Dockerfile_2_28_aarch64 new file mode 100644 index 000000000..222d261ef --- /dev/null +++ b/manywheel/Dockerfile_2_28_aarch64 @@ -0,0 +1,56 @@ +FROM quay.io/pypa/manylinux_2_28_aarch64 as base + +# Graviton needs GCC 10 or above for the build. GCC12 is the default version in almalinux-8. +ARG GCCTOOLSET_VERSION=11 + +# Language variabes +ENV LC_ALL=en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US.UTF-8 + +# Installed needed OS packages. This is to support all +# the binary builds (torch, vision, audio, text, data) +RUN yum -y install epel-release +RUN yum -y update +RUN yum install -y \ + autoconf \ + automake \ + bison \ + bzip2 \ + curl \ + diffutils \ + file \ + git \ + less \ + libffi-devel \ + libgomp \ + make \ + openssl-devel \ + patch \ + perl \ + unzip \ + util-linux \ + wget \ + which \ + xz \ + yasm \ + zstd \ + gcc-toolset-${GCCTOOLSET_VERSION}-toolchain + +# Ensure the expected devtoolset is used +ENV PATH=/opt/rh/gcc-toolset-${GCCTOOLSET_VERSION}/root/usr/bin:$PATH +ENV LD_LIBRARY_PATH=/opt/rh/gcc-toolset-${GCCTOOLSET_VERSION}/root/usr/lib64:/opt/rh/gcc-toolset-${GCCTOOLSET_VERSION}/root/usr/lib:$LD_LIBRARY_PATH + +# git236+ would refuse to run git commands in repos owned by other users +# Which causes version check to fail, as pytorch repo is bind-mounted into the image +# Override this behaviour by treating every folder as safe +# For more details see https://github.com/pytorch/pytorch/issues/78659#issuecomment-1144107327 +RUN git config --global --add safe.directory "*" + +FROM base as final + +# remove unncessary python versions +RUN rm -rf /opt/python/cp26-cp26m /opt/_internal/cpython-2.6.9-ucs2 +RUN rm -rf /opt/python/cp26-cp26mu /opt/_internal/cpython-2.6.9-ucs4 +RUN rm -rf /opt/python/cp33-cp33m /opt/_internal/cpython-3.3.6 +RUN rm -rf /opt/python/cp34-cp34m /opt/_internal/cpython-3.4.6 diff --git a/manywheel/build_docker.sh b/manywheel/build_docker.sh index 4d3816588..d6d927443 100755 --- a/manywheel/build_docker.sh +++ b/manywheel/build_docker.sh @@ -28,6 +28,14 @@ case ${GPU_ARCH_TYPE} in DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=10" MANY_LINUX_VERSION="aarch64" ;; + cpu-aarch64-2_28) + TARGET=final + DOCKER_TAG=cpu-aarch64 + LEGACY_DOCKER_IMAGE=${DOCKER_REGISTRY}/pytorch/manylinux_2_28-cpu-aarch64 + GPU_IMAGE=arm64v8/almalinux:8 + DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=11" + MANY_LINUX_VERSION="2_28_aarch64" + ;; cpu-cxx11-abi) TARGET=final DOCKER_TAG=cpu-cxx11-abi