mirror of
				https://github.com/pytorch/pytorch.git
				synced 2025-11-04 08:00:58 +08:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			release_no
			...
			bf/cg-remo
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9ad25d4c05 | 
@ -1,5 +1,5 @@
 | 
			
		||||
0.7b
 | 
			
		||||
0.6b
 | 
			
		||||
manylinux_2_17
 | 
			
		||||
rocm6.2
 | 
			
		||||
9be04068c3c0857a4cfd17d7e39e71d0423ebac2
 | 
			
		||||
3e9e1959d23b93d78a08fcc5f868125dc3854dece32fd9458be9ef4467982291
 | 
			
		||||
rocm6.1
 | 
			
		||||
7f07e8a1cb1f99627eb6d77f5c0e9295c775f3c7
 | 
			
		||||
77c29fa3f3b614e187d7213d745e989a92708cee2bc6020419ab49019af399d1
 | 
			
		||||
 | 
			
		||||
@ -92,7 +92,7 @@ _UCC_COMMIT=20eae37090a4ce1b32bcce6144ccad0b49943e0b
 | 
			
		||||
# from scratch
 | 
			
		||||
case "$image" in
 | 
			
		||||
  pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
 | 
			
		||||
    CUDA_VERSION=12.4.1
 | 
			
		||||
    CUDA_VERSION=12.4.0
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
@ -120,7 +120,7 @@ case "$image" in
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks)
 | 
			
		||||
    CUDA_VERSION=12.4.1
 | 
			
		||||
    CUDA_VERSION=12.4.0
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
@ -165,7 +165,7 @@ case "$image" in
 | 
			
		||||
    INDUCTOR_BENCHMARKS=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-cuda12.4-cudnn9-py3.12-gcc9-inductor-benchmarks)
 | 
			
		||||
    CUDA_VERSION=12.4.1
 | 
			
		||||
    CUDA_VERSION=12.4.0
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.12
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
@ -194,7 +194,7 @@ case "$image" in
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
 | 
			
		||||
    CUDA_VERSION=12.4.1
 | 
			
		||||
    CUDA_VERSION=12.4.0
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
@ -222,7 +222,7 @@ case "$image" in
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
 | 
			
		||||
    CUDA_VERSION=12.4.1
 | 
			
		||||
    CUDA_VERSION=12.4.0
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
@ -236,7 +236,7 @@ case "$image" in
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-py3-clang10-onnx)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    CLANG_VERSION=10
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -245,7 +245,7 @@ case "$image" in
 | 
			
		||||
    ONNX=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-py3-clang9-android-ndk-r21e)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    CLANG_VERSION=9
 | 
			
		||||
    LLVMDEV=yes
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
@ -254,8 +254,8 @@ case "$image" in
 | 
			
		||||
    GRADLE_VERSION=6.8.3
 | 
			
		||||
    NINJA_VERSION=1.9.0
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-py3.9-clang10)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
  pytorch-linux-focal-py3.8-clang10)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    CLANG_VERSION=10
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -276,8 +276,8 @@ case "$image" in
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-py3.9-gcc9)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
  pytorch-linux-focal-py3.8-gcc9)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -286,7 +286,18 @@ case "$image" in
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-rocm-n-1-py3)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
    VISION=yes
 | 
			
		||||
    ROCM_VERSION=6.0
 | 
			
		||||
    NINJA_VERSION=1.9.0
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-rocm-n-py3)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -296,19 +307,8 @@ case "$image" in
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-focal-rocm-n-py3)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.10
 | 
			
		||||
    GCC_VERSION=9
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
    VISION=yes
 | 
			
		||||
    ROCM_VERSION=6.2
 | 
			
		||||
    NINJA_VERSION=1.9.0
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-jammy-xpu-2024.0-py3)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=11
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -318,8 +318,8 @@ case "$image" in
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    TRITON=yes
 | 
			
		||||
    ;;
 | 
			
		||||
    pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
    pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=11
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
@ -330,8 +330,8 @@ case "$image" in
 | 
			
		||||
    DOCS=yes
 | 
			
		||||
    INDUCTOR_BENCHMARKS=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-clang12)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
  pytorch-linux-jammy-cuda11.8-cudnn9-py3.8-clang12)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    CUDA_VERSION=11.8
 | 
			
		||||
    CUDNN_VERSION=9
 | 
			
		||||
    CLANG_VERSION=12
 | 
			
		||||
@ -355,8 +355,8 @@ case "$image" in
 | 
			
		||||
    CONDA_CMAKE=yes
 | 
			
		||||
    VISION=yes
 | 
			
		||||
    ;;
 | 
			
		||||
  pytorch-linux-jammy-py3.9-gcc11)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.9
 | 
			
		||||
  pytorch-linux-jammy-py3.8-gcc11)
 | 
			
		||||
    ANACONDA_PYTHON_VERSION=3.8
 | 
			
		||||
    GCC_VERSION=11
 | 
			
		||||
    PROTOBUF=yes
 | 
			
		||||
    DB=yes
 | 
			
		||||
 | 
			
		||||
@ -108,10 +108,10 @@ ENV CMAKE_C_COMPILER cc
 | 
			
		||||
ENV CMAKE_CXX_COMPILER c++
 | 
			
		||||
COPY ./common/install_triton.sh install_triton.sh
 | 
			
		||||
COPY ./common/common_utils.sh common_utils.sh
 | 
			
		||||
COPY ci_commit_pins/triton.txt triton.txt
 | 
			
		||||
COPY ci_commit_pins/triton-rocm.txt triton-rocm.txt
 | 
			
		||||
COPY triton_version.txt triton_version.txt
 | 
			
		||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
 | 
			
		||||
RUN rm install_triton.sh common_utils.sh triton.txt triton_version.txt
 | 
			
		||||
RUN rm install_triton.sh common_utils.sh triton-rocm.txt triton_version.txt
 | 
			
		||||
 | 
			
		||||
# Install AOTriton (Early fail)
 | 
			
		||||
COPY ./aotriton_version.txt aotriton_version.txt
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
cd1c833b079adb324871dcbbe75b43d42ffc0ade
 | 
			
		||||
91298923a0076c1b41059efb6dad2876426e4b03
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
461c12871f336fe6f57b55d6a297f13ef209161b
 | 
			
		||||
340136fec6d3ebc73e7a19eba1663e9b0ba8ab2d
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
ac3470188b914c5d7a5058a7e28b9eb685a62427
 | 
			
		||||
730b907b4d45a4713cbc425cbf224c46089fd514
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								.ci/docker/ci_commit_pins/triton-rocm.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.ci/docker/ci_commit_pins/triton-rocm.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
21eae954efa5bf584da70324b640288c3ee7aede
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
91b14bf5593cf58a8541f3e6b9125600a867d4ef
 | 
			
		||||
1b2f15840e0d70eec50d84c7a0575cb835524def
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
5fe38ffd73c2ac6ed6323b554205186696631c6f
 | 
			
		||||
dedb7bdf339a3546896d4820366ca562c586bfa0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								.ci/docker/common/aotriton_version.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.ci/docker/common/aotriton_version.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
0.6b
 | 
			
		||||
manylinux_2_17
 | 
			
		||||
rocm6.1
 | 
			
		||||
04b5df8c8123f90cba3ede7e971e6fbc6040d506
 | 
			
		||||
77c29fa3f3b614e187d7213d745e989a92708cee2bc6020419ab49019af399d1
 | 
			
		||||
@ -4,12 +4,12 @@ set -ex
 | 
			
		||||
 | 
			
		||||
source "$(dirname "${BASH_SOURCE[0]}")/common_utils.sh"
 | 
			
		||||
 | 
			
		||||
TARBALL='aotriton.tar.gz'
 | 
			
		||||
TARBALL='aotriton.tar.bz2'
 | 
			
		||||
# This read command alwasy returns with exit code 1
 | 
			
		||||
read -d "\n" VER MANYLINUX ROCMBASE PINNED_COMMIT SHA256 < aotriton_version.txt || true
 | 
			
		||||
ARCH=$(uname -m)
 | 
			
		||||
AOTRITON_INSTALL_PREFIX="$1"
 | 
			
		||||
AOTRITON_URL="https://github.com/ROCm/aotriton/releases/download/${VER}/aotriton-${VER}-${MANYLINUX}_${ARCH}-${ROCMBASE}-shared.tar.gz"
 | 
			
		||||
AOTRITON_URL="https://github.com/ROCm/aotriton/releases/download/${VER}/aotriton-${VER}-${MANYLINUX}_${ARCH}-${ROCMBASE}-shared.tar.bz2"
 | 
			
		||||
 | 
			
		||||
cd "${AOTRITON_INSTALL_PREFIX}"
 | 
			
		||||
# Must use -L to follow redirects
 | 
			
		||||
 | 
			
		||||
@ -5,22 +5,32 @@ set -ex
 | 
			
		||||
# Optionally install conda
 | 
			
		||||
if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
 | 
			
		||||
  BASE_URL="https://repo.anaconda.com/miniconda"
 | 
			
		||||
  CONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
 | 
			
		||||
  if [[ $(uname -m) == "aarch64" ]] || [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
 | 
			
		||||
    BASE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
 | 
			
		||||
    CONDA_FILE="Miniforge3-Linux-$(uname -m).sh"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  MAJOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 1)
 | 
			
		||||
  MINOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 2)
 | 
			
		||||
 | 
			
		||||
if [[ $(uname -m) == "aarch64" ]]; then
 | 
			
		||||
  BASE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
 | 
			
		||||
  case "$MAJOR_PYTHON_VERSION" in
 | 
			
		||||
    3);;
 | 
			
		||||
    3)
 | 
			
		||||
      CONDA_FILE="Miniforge3-Linux-aarch64.sh"
 | 
			
		||||
    ;;
 | 
			
		||||
    *)
 | 
			
		||||
      echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
 | 
			
		||||
      exit 1
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
else
 | 
			
		||||
  case "$MAJOR_PYTHON_VERSION" in
 | 
			
		||||
    3)
 | 
			
		||||
      CONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
 | 
			
		||||
    ;;
 | 
			
		||||
    *)
 | 
			
		||||
      echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
 | 
			
		||||
      exit 1
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
  mkdir -p /opt/conda
 | 
			
		||||
  chown jenkins:jenkins /opt/conda
 | 
			
		||||
@ -68,20 +78,19 @@ if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
 | 
			
		||||
    CONDA_COMMON_DEPS="astunparse pyyaml setuptools openblas==0.3.25=*openmp* ninja==1.11.1 scons==4.5.2"
 | 
			
		||||
 | 
			
		||||
    if [ "$ANACONDA_PYTHON_VERSION" = "3.8" ]; then
 | 
			
		||||
      NUMPY_VERSION=1.24.4
 | 
			
		||||
      conda_install numpy=1.24.4 ${CONDA_COMMON_DEPS}
 | 
			
		||||
    else
 | 
			
		||||
      NUMPY_VERSION=1.26.2
 | 
			
		||||
      conda_install numpy=1.26.2 ${CONDA_COMMON_DEPS}
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    CONDA_COMMON_DEPS="astunparse pyyaml mkl=2021.4.0 mkl-include=2021.4.0 setuptools"
 | 
			
		||||
 | 
			
		||||
    if [ "$ANACONDA_PYTHON_VERSION" = "3.11" ] || [ "$ANACONDA_PYTHON_VERSION" = "3.12" ] || [ "$ANACONDA_PYTHON_VERSION" = "3.13" ]; then
 | 
			
		||||
      NUMPY_VERSION=1.26.0
 | 
			
		||||
      conda_install numpy=1.26.0 ${CONDA_COMMON_DEPS}
 | 
			
		||||
    else
 | 
			
		||||
      NUMPY_VERSION=1.21.2
 | 
			
		||||
      conda_install numpy=1.21.2 ${CONDA_COMMON_DEPS}
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  conda_install ${CONDA_COMMON_DEPS}
 | 
			
		||||
 | 
			
		||||
  # Install llvm-8 as it is required to compile llvmlite-0.30.0 from source
 | 
			
		||||
  # and libpython-static for torch deploy
 | 
			
		||||
@ -103,7 +112,7 @@ if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
 | 
			
		||||
 | 
			
		||||
  # Install some other packages, including those needed for Python test reporting
 | 
			
		||||
  pip_install -r /opt/conda/requirements-ci.txt
 | 
			
		||||
  pip_install numpy=="$NUMPY_VERSION"
 | 
			
		||||
 | 
			
		||||
  pip_install -U scikit-learn
 | 
			
		||||
 | 
			
		||||
  if [ -n "$DOCS" ]; then
 | 
			
		||||
 | 
			
		||||
@ -58,8 +58,7 @@ function do_cpython_build {
 | 
			
		||||
    if [ -e ${prefix}/bin/pip3 ] && [ ! -e ${prefix}/bin/pip ]; then
 | 
			
		||||
        ln -s pip3 ${prefix}/bin/pip
 | 
			
		||||
    fi
 | 
			
		||||
    # install setuptools since python 3.12 is required to use distutils
 | 
			
		||||
    ${prefix}/bin/pip install wheel==0.34.2 setuptools==68.2.2
 | 
			
		||||
    ${prefix}/bin/pip install wheel==0.34.2
 | 
			
		||||
    local abi_tag=$(${prefix}/bin/python -c "from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag; print('{0}{1}-{2}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag()))")
 | 
			
		||||
    ln -s ${prefix} /opt/python/${abi_tag}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -27,17 +27,6 @@ function install_cusparselt_052 {
 | 
			
		||||
    rm -rf tmp_cusparselt
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_cusparselt_062 {
 | 
			
		||||
    # cuSparseLt license: https://docs.nvidia.com/cuda/cusparselt/license.html
 | 
			
		||||
    mkdir tmp_cusparselt && pushd tmp_cusparselt
 | 
			
		||||
    wget -q https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-0.6.2.3-archive.tar.xz
 | 
			
		||||
    tar xf libcusparse_lt-linux-x86_64-0.6.2.3-archive.tar.xz
 | 
			
		||||
    cp -a libcusparse_lt-linux-x86_64-0.6.2.3-archive/include/* /usr/local/cuda/include/
 | 
			
		||||
    cp -a libcusparse_lt-linux-x86_64-0.6.2.3-archive/lib/* /usr/local/cuda/lib64/
 | 
			
		||||
    popd
 | 
			
		||||
    rm -rf tmp_cusparselt
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_118 {
 | 
			
		||||
    echo "Installing CUDA 11.8 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.4.0"
 | 
			
		||||
    rm -rf /usr/local/cuda-11.8 /usr/local/cuda
 | 
			
		||||
@ -105,13 +94,13 @@ function install_121 {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_124 {
 | 
			
		||||
  echo "Installing CUDA 12.4.1 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
 | 
			
		||||
  echo "Installing CUDA 12.4 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
 | 
			
		||||
  rm -rf /usr/local/cuda-12.4 /usr/local/cuda
 | 
			
		||||
  # install CUDA 12.4.1 in the same container
 | 
			
		||||
  wget -q https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
 | 
			
		||||
  chmod +x cuda_12.4.1_550.54.15_linux.run
 | 
			
		||||
  ./cuda_12.4.1_550.54.15_linux.run --toolkit --silent
 | 
			
		||||
  rm -f cuda_12.4.1_550.54.15_linux.run
 | 
			
		||||
  # install CUDA 12.4.0 in the same container
 | 
			
		||||
  wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
 | 
			
		||||
  chmod +x cuda_12.4.0_550.54.14_linux.run
 | 
			
		||||
  ./cuda_12.4.0_550.54.14_linux.run --toolkit --silent
 | 
			
		||||
  rm -f cuda_12.4.0_550.54.14_linux.run
 | 
			
		||||
  rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
 | 
			
		||||
 | 
			
		||||
  # cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
 | 
			
		||||
@ -132,7 +121,7 @@ function install_124 {
 | 
			
		||||
  cd ..
 | 
			
		||||
  rm -rf nccl
 | 
			
		||||
 | 
			
		||||
  install_cusparselt_062
 | 
			
		||||
  install_cusparselt_052
 | 
			
		||||
 | 
			
		||||
  ldconfig
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -17,13 +17,13 @@ function install_cusparselt_052 {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_124 {
 | 
			
		||||
  echo "Installing CUDA 12.4.1 and cuDNN 9.1 and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
 | 
			
		||||
  echo "Installing CUDA 12.4 and cuDNN 9.1 and NCCL ${NCCL_VERSION} and cuSparseLt-0.5.2"
 | 
			
		||||
  rm -rf /usr/local/cuda-12.4 /usr/local/cuda
 | 
			
		||||
  # install CUDA 12.4.1 in the same container
 | 
			
		||||
  wget -q https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux_sbsa.run
 | 
			
		||||
  chmod +x cuda_12.4.1_550.54.15_linux_sbsa.run
 | 
			
		||||
  ./cuda_12.4.1_550.54.15_linux_sbsa.run --toolkit --silent
 | 
			
		||||
  rm -f cuda_12.4.1_550.54.15_linux_sbsa.run
 | 
			
		||||
  # install CUDA 12.4.0 in the same container
 | 
			
		||||
  wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux_sbsa.run
 | 
			
		||||
  chmod +x cuda_12.4.0_550.54.14_linux_sbsa.run
 | 
			
		||||
  ./cuda_12.4.0_550.54.14_linux_sbsa.run --toolkit --silent
 | 
			
		||||
  rm -f cuda_12.4.0_550.54.14_linux_sbsa.run
 | 
			
		||||
  rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
 | 
			
		||||
 | 
			
		||||
  # cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
 | 
			
		||||
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
# cudss license: https://docs.nvidia.com/cuda/cudss/license.html
 | 
			
		||||
mkdir tmp_cudss && cd tmp_cudss
 | 
			
		||||
 | 
			
		||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[1-4]$ ]]; then
 | 
			
		||||
    arch_path='sbsa'
 | 
			
		||||
    export TARGETARCH=${TARGETARCH:-$(uname -m)}
 | 
			
		||||
    if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
 | 
			
		||||
        arch_path='x86_64'
 | 
			
		||||
    fi
 | 
			
		||||
    CUDSS_NAME="libcudss-linux-${arch_path}-0.3.0.9_cuda12-archive"
 | 
			
		||||
    curl --retry 3 -OLs https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-${arch_path}/${CUDSS_NAME}.tar.xz
 | 
			
		||||
 | 
			
		||||
    # only for cuda 12
 | 
			
		||||
    tar xf ${CUDSS_NAME}.tar.xz
 | 
			
		||||
    cp -a ${CUDSS_NAME}/include/* /usr/local/cuda/include/
 | 
			
		||||
    cp -a ${CUDSS_NAME}/lib/* /usr/local/cuda/lib64/
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
cd ..
 | 
			
		||||
rm -rf tmp_cudss
 | 
			
		||||
ldconfig
 | 
			
		||||
@ -5,15 +5,7 @@ set -ex
 | 
			
		||||
# cuSPARSELt license: https://docs.nvidia.com/cuda/cusparselt/license.html
 | 
			
		||||
mkdir tmp_cusparselt && cd tmp_cusparselt
 | 
			
		||||
 | 
			
		||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[2-4]$ ]]; then
 | 
			
		||||
    arch_path='sbsa'
 | 
			
		||||
    export TARGETARCH=${TARGETARCH:-$(uname -m)}
 | 
			
		||||
    if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
 | 
			
		||||
        arch_path='x86_64'
 | 
			
		||||
    fi
 | 
			
		||||
    CUSPARSELT_NAME="libcusparse_lt-linux-${arch_path}-0.6.2.3-archive"
 | 
			
		||||
    curl --retry 3 -OLs https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-${arch_path}/${CUSPARSELT_NAME}.tar.xz
 | 
			
		||||
elif [[ ${CUDA_VERSION:0:4} == "12.1" ]]; then
 | 
			
		||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[1-4]$ ]]; then
 | 
			
		||||
    arch_path='sbsa'
 | 
			
		||||
    export TARGETARCH=${TARGETARCH:-$(uname -m)}
 | 
			
		||||
    if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
 | 
			
		||||
 | 
			
		||||
@ -10,21 +10,6 @@ if [[ -z $ROCM_VERSION ]]; then
 | 
			
		||||
    exit 1;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
IS_UBUNTU=0
 | 
			
		||||
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
 | 
			
		||||
case "$ID" in
 | 
			
		||||
  ubuntu)
 | 
			
		||||
    IS_UBUNTU=1
 | 
			
		||||
    ;;
 | 
			
		||||
  centos)
 | 
			
		||||
    IS_UBUNTU=0
 | 
			
		||||
    ;;
 | 
			
		||||
  *)
 | 
			
		||||
    echo "Unable to determine OS..."
 | 
			
		||||
    exit 1
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# To make version comparison easier, create an integer representation.
 | 
			
		||||
save_IFS="$IFS"
 | 
			
		||||
IFS=. ROCM_VERSION_ARRAY=(${ROCM_VERSION})
 | 
			
		||||
@ -72,9 +57,7 @@ MIOPEN_CMAKE_COMMON_FLAGS="
 | 
			
		||||
-DMIOPEN_BUILD_DRIVER=OFF
 | 
			
		||||
"
 | 
			
		||||
# Pull MIOpen repo and set DMIOPEN_EMBED_DB based on ROCm version
 | 
			
		||||
if [[ $ROCM_INT -ge 60200 ]] && [[ $ROCM_INT -lt 60300 ]]; then
 | 
			
		||||
    MIOPEN_BRANCH="release/rocm-rel-6.2-staging"
 | 
			
		||||
elif [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
 | 
			
		||||
if [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
 | 
			
		||||
    echo "ROCm 6.1 MIOpen does not need any patches, do not build from source"
 | 
			
		||||
    exit 0
 | 
			
		||||
elif [[ $ROCM_INT -ge 60000 ]] && [[ $ROCM_INT -lt 60100 ]]; then
 | 
			
		||||
@ -107,21 +90,12 @@ else
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [[ ${IS_UBUNTU} == 1 ]]; then
 | 
			
		||||
  apt-get remove -y miopen-hip
 | 
			
		||||
else
 | 
			
		||||
  yum remove -y miopen-hip
 | 
			
		||||
fi
 | 
			
		||||
yum remove -y miopen-hip
 | 
			
		||||
 | 
			
		||||
git clone https://github.com/ROCm/MIOpen -b ${MIOPEN_BRANCH}
 | 
			
		||||
pushd MIOpen
 | 
			
		||||
# remove .git to save disk space since CI runner was running out
 | 
			
		||||
rm -rf .git
 | 
			
		||||
# Don't build CK to save docker build time
 | 
			
		||||
if [[ $ROCM_INT -ge 60200 ]]; then
 | 
			
		||||
    sed -i '/composable_kernel/d' requirements.txt
 | 
			
		||||
fi
 | 
			
		||||
# Don't build MLIR to save docker build time
 | 
			
		||||
# since we are disabling MLIR backend for MIOpen anyway
 | 
			
		||||
if [[ $ROCM_INT -ge 50400 ]] && [[ $ROCM_INT -lt 50500 ]]; then
 | 
			
		||||
@ -134,15 +108,10 @@ cmake -P install_deps.cmake --minimum
 | 
			
		||||
 | 
			
		||||
# clean up since CI runner was running out of disk space
 | 
			
		||||
rm -rf /tmp/*
 | 
			
		||||
if [[ ${IS_UBUNTU} == 1 ]]; then
 | 
			
		||||
  apt-get autoclean && apt-get clean
 | 
			
		||||
  rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
			
		||||
else
 | 
			
		||||
  yum clean all
 | 
			
		||||
  rm -rf /var/cache/yum
 | 
			
		||||
  rm -rf /var/lib/yum/yumdb
 | 
			
		||||
  rm -rf /var/lib/yum/history
 | 
			
		||||
fi
 | 
			
		||||
yum clean all
 | 
			
		||||
rm -rf /var/cache/yum
 | 
			
		||||
rm -rf /var/lib/yum/yumdb
 | 
			
		||||
rm -rf /var/lib/yum/history
 | 
			
		||||
 | 
			
		||||
## Build MIOpen
 | 
			
		||||
mkdir -p build
 | 
			
		||||
@ -159,11 +128,7 @@ make -j $(nproc) package
 | 
			
		||||
# clean up since CI runner was running out of disk space
 | 
			
		||||
rm -rf /usr/local/cget
 | 
			
		||||
 | 
			
		||||
if [[ ${IS_UBUNTU} == 1 ]]; then
 | 
			
		||||
  sudo dpkg -i miopen-hip*.deb
 | 
			
		||||
else
 | 
			
		||||
  yum install -y miopen-*.rpm
 | 
			
		||||
fi
 | 
			
		||||
yum install -y miopen-*.rpm
 | 
			
		||||
 | 
			
		||||
popd
 | 
			
		||||
rm -rf MIOpen
 | 
			
		||||
 | 
			
		||||
@ -1,20 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
function install_nvpl {
 | 
			
		||||
 | 
			
		||||
    mkdir -p /opt/nvpl/lib /opt/nvpl/include
 | 
			
		||||
 | 
			
		||||
    wget https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_blas/linux-sbsa/nvpl_blas-linux-sbsa-0.3.0-archive.tar.xz
 | 
			
		||||
    tar xf nvpl_blas-linux-sbsa-0.3.0-archive.tar.xz
 | 
			
		||||
    cp -r nvpl_blas-linux-sbsa-0.3.0-archive/lib/* /opt/nvpl/lib/
 | 
			
		||||
    cp -r nvpl_blas-linux-sbsa-0.3.0-archive/include/* /opt/nvpl/include/
 | 
			
		||||
 | 
			
		||||
    wget https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_lapack/linux-sbsa/nvpl_lapack-linux-sbsa-0.2.3.1-archive.tar.xz
 | 
			
		||||
    tar xf nvpl_lapack-linux-sbsa-0.2.3.1-archive.tar.xz
 | 
			
		||||
    cp -r nvpl_lapack-linux-sbsa-0.2.3.1-archive/lib/* /opt/nvpl/lib/
 | 
			
		||||
    cp -r nvpl_lapack-linux-sbsa-0.2.3.1-archive/include/* /opt/nvpl/include/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
install_nvpl
 | 
			
		||||
@ -15,7 +15,7 @@ pip_install \
 | 
			
		||||
  flatbuffers==2.0 \
 | 
			
		||||
  mock==5.0.1 \
 | 
			
		||||
  ninja==1.10.2 \
 | 
			
		||||
  networkx==2.5 \
 | 
			
		||||
  networkx==2.0 \
 | 
			
		||||
  numpy==1.24.2
 | 
			
		||||
 | 
			
		||||
# ONNXRuntime should be installed before installing
 | 
			
		||||
@ -30,9 +30,10 @@ pip_install \
 | 
			
		||||
 | 
			
		||||
pip_install coloredlogs packaging
 | 
			
		||||
 | 
			
		||||
pip_install onnxruntime==1.18.1
 | 
			
		||||
pip_install onnx==1.16.2
 | 
			
		||||
pip_install onnxscript==0.1.0.dev20240831 --no-deps
 | 
			
		||||
pip_install onnxruntime==1.18
 | 
			
		||||
pip_install onnx==1.16.0
 | 
			
		||||
# pip_install "onnxscript@git+https://github.com/microsoft/onnxscript@3e869ef8ccf19b5ebd21c10d3e9c267c9a9fa729" --no-deps
 | 
			
		||||
pip_install onnxscript==0.1.0.dev20240613 --no-deps
 | 
			
		||||
# required by onnxscript
 | 
			
		||||
pip_install ml_dtypes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,10 @@ conda_reinstall() {
 | 
			
		||||
  as_jenkins conda install -q -n py_$ANACONDA_PYTHON_VERSION -y --force-reinstall $*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ -n "${XPU_VERSION}" ]; then
 | 
			
		||||
if [ -n "${ROCM_VERSION}" ]; then
 | 
			
		||||
  TRITON_REPO="https://github.com/openai/triton"
 | 
			
		||||
  TRITON_TEXT_FILE="triton-rocm"
 | 
			
		||||
elif [ -n "${XPU_VERSION}" ]; then
 | 
			
		||||
  TRITON_REPO="https://github.com/intel/intel-xpu-backend-for-triton"
 | 
			
		||||
  TRITON_TEXT_FILE="triton-xpu"
 | 
			
		||||
else
 | 
			
		||||
@ -38,33 +41,19 @@ if [ -z "${MAX_JOBS}" ]; then
 | 
			
		||||
    export MAX_JOBS=$(nproc)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Git checkout triton
 | 
			
		||||
mkdir /var/lib/jenkins/triton
 | 
			
		||||
chown -R jenkins /var/lib/jenkins/triton
 | 
			
		||||
chgrp -R jenkins /var/lib/jenkins/triton
 | 
			
		||||
pushd /var/lib/jenkins/
 | 
			
		||||
 | 
			
		||||
as_jenkins git clone ${TRITON_REPO} triton
 | 
			
		||||
cd triton
 | 
			
		||||
as_jenkins git checkout ${TRITON_PINNED_COMMIT}
 | 
			
		||||
cd python
 | 
			
		||||
 | 
			
		||||
# TODO: remove patch setup.py once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
 | 
			
		||||
as_jenkins sed -i -e 's/https:\/\/tritonlang.blob.core.windows.net\/llvm-builds/https:\/\/oaitriton.blob.core.windows.net\/public\/llvm-builds/g' setup.py
 | 
			
		||||
 | 
			
		||||
if [ -n "${UBUNTU_VERSION}" ] && [ -n "${GCC_VERSION}" ] && [[ "${GCC_VERSION}" == "7" ]]; then
 | 
			
		||||
  # Triton needs at least gcc-9 to build
 | 
			
		||||
  apt-get install -y g++-9
 | 
			
		||||
 | 
			
		||||
  CXX=g++-9 pip_install -e .
 | 
			
		||||
  CXX=g++-9 pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
 | 
			
		||||
elif [ -n "${UBUNTU_VERSION}" ] && [ -n "${CLANG_VERSION}" ]; then
 | 
			
		||||
  # Triton needs <filesystem> which surprisingly is not available with clang-9 toolchain
 | 
			
		||||
  add-apt-repository -y ppa:ubuntu-toolchain-r/test
 | 
			
		||||
  apt-get install -y g++-9
 | 
			
		||||
 | 
			
		||||
  CXX=g++-9 pip_install -e .
 | 
			
		||||
  CXX=g++-9 pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
 | 
			
		||||
else
 | 
			
		||||
  pip_install -e .
 | 
			
		||||
  pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -n "${CONDA_CMAKE}" ]; then
 | 
			
		||||
 | 
			
		||||
@ -16,11 +16,11 @@ function install_ubuntu() {
 | 
			
		||||
 | 
			
		||||
    apt-get update -y
 | 
			
		||||
    apt-get install -y gpg-agent wget
 | 
			
		||||
    # To add the online network package repository for the GPU Driver
 | 
			
		||||
    # To add the online network package repository for the GPU Driver LTS releases
 | 
			
		||||
    wget -qO - https://repositories.intel.com/gpu/intel-graphics.key \
 | 
			
		||||
        | gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
 | 
			
		||||
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] \
 | 
			
		||||
        https://repositories.intel.com/gpu/ubuntu ${VERSION_CODENAME}${XPU_DRIVER_VERSION} unified" \
 | 
			
		||||
        https://repositories.intel.com/gpu/ubuntu ${VERSION_CODENAME}/lts/2350 unified" \
 | 
			
		||||
        | tee /etc/apt/sources.list.d/intel-gpu-${VERSION_CODENAME}.list
 | 
			
		||||
    # To add the online network network package repository for the Intel Support Packages
 | 
			
		||||
    wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
 | 
			
		||||
@ -45,9 +45,9 @@ function install_ubuntu() {
 | 
			
		||||
    apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
 | 
			
		||||
    # Install Intel Support Packages
 | 
			
		||||
    if [ -n "$XPU_VERSION" ]; then
 | 
			
		||||
        apt-get install -y intel-for-pytorch-gpu-dev-${XPU_VERSION} intel-pti-dev
 | 
			
		||||
        apt-get install -y intel-for-pytorch-gpu-dev-${XPU_VERSION}
 | 
			
		||||
    else
 | 
			
		||||
        apt-get install -y intel-for-pytorch-gpu-dev intel-pti-dev
 | 
			
		||||
        apt-get install -y intel-for-pytorch-gpu-dev
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Cleanup
 | 
			
		||||
@ -55,6 +55,52 @@ function install_ubuntu() {
 | 
			
		||||
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_centos() {
 | 
			
		||||
    dnf install -y 'dnf-command(config-manager)'
 | 
			
		||||
    dnf config-manager --add-repo \
 | 
			
		||||
        https://repositories.intel.com/gpu/rhel/8.6/production/2328/unified/intel-gpu-8.6.repo
 | 
			
		||||
    # To add the EPEL repository needed for DKMS
 | 
			
		||||
    dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
 | 
			
		||||
        # https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
 | 
			
		||||
 | 
			
		||||
    # Create the YUM repository file in the /temp directory as a normal user
 | 
			
		||||
    tee > /tmp/oneAPI.repo << EOF
 | 
			
		||||
[oneAPI]
 | 
			
		||||
name=Intel® oneAPI repository
 | 
			
		||||
baseurl=https://yum.repos.intel.com/oneapi
 | 
			
		||||
enabled=1
 | 
			
		||||
gpgcheck=1
 | 
			
		||||
repo_gpgcheck=1
 | 
			
		||||
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    # Move the newly created oneAPI.repo file to the YUM configuration directory /etc/yum.repos.d
 | 
			
		||||
    mv /tmp/oneAPI.repo /etc/yum.repos.d
 | 
			
		||||
 | 
			
		||||
    # The xpu-smi packages
 | 
			
		||||
    dnf install -y flex bison xpu-smi
 | 
			
		||||
    # Compute and Media Runtimes
 | 
			
		||||
    dnf install -y \
 | 
			
		||||
        intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
 | 
			
		||||
        level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
 | 
			
		||||
        mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
 | 
			
		||||
        mesa-libxatracker libvpl-tools intel-metrics-discovery \
 | 
			
		||||
        intel-metrics-library intel-igc-core intel-igc-cm \
 | 
			
		||||
        libva libva-utils intel-gmmlib libmetee intel-gsc intel-ocloc hwinfo clinfo
 | 
			
		||||
    # Development packages
 | 
			
		||||
    dnf install -y --refresh \
 | 
			
		||||
        intel-igc-opencl-devel level-zero-devel intel-gsc-devel libmetee-devel \
 | 
			
		||||
        level-zero-devel
 | 
			
		||||
    # Install Intel® oneAPI Base Toolkit
 | 
			
		||||
    dnf install intel-basekit -y
 | 
			
		||||
 | 
			
		||||
    # Cleanup
 | 
			
		||||
    dnf clean all
 | 
			
		||||
    rm -rf /var/cache/yum
 | 
			
		||||
    rm -rf /var/lib/yum/yumdb
 | 
			
		||||
    rm -rf /var/lib/yum/history
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_rhel() {
 | 
			
		||||
    . /etc/os-release
 | 
			
		||||
    if [[ "${ID}" == "rhel" ]]; then
 | 
			
		||||
@ -68,9 +114,9 @@ function install_rhel() {
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    dnf install -y 'dnf-command(config-manager)'
 | 
			
		||||
    # To add the online network package repository for the GPU Driver
 | 
			
		||||
    # To add the online network package repository for the GPU Driver LTS releases
 | 
			
		||||
    dnf config-manager --add-repo \
 | 
			
		||||
        https://repositories.intel.com/gpu/rhel/${VERSION_ID}${XPU_DRIVER_VERSION}/unified/intel-gpu-${VERSION_ID}.repo
 | 
			
		||||
        https://repositories.intel.com/gpu/rhel/${VERSION_ID}/lts/2350/unified/intel-gpu-${VERSION_ID}.repo
 | 
			
		||||
    # To add the online network network package repository for the Intel Support Packages
 | 
			
		||||
    tee > /etc/yum.repos.d/intel-for-pytorch-gpu-dev.repo << EOF
 | 
			
		||||
[intel-for-pytorch-gpu-dev]
 | 
			
		||||
@ -85,7 +131,7 @@ EOF
 | 
			
		||||
    # The xpu-smi packages
 | 
			
		||||
    dnf install -y xpu-smi
 | 
			
		||||
    # Compute and Media Runtimes
 | 
			
		||||
    dnf install --skip-broken -y \
 | 
			
		||||
    dnf install -y \
 | 
			
		||||
        intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
 | 
			
		||||
        level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
 | 
			
		||||
        mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
 | 
			
		||||
@ -114,9 +160,9 @@ function install_sles() {
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # To add the online network package repository for the GPU Driver
 | 
			
		||||
    # To add the online network package repository for the GPU Driver LTS releases
 | 
			
		||||
    zypper addrepo -f -r \
 | 
			
		||||
        https://repositories.intel.com/gpu/sles/${VERSION_SP}${XPU_DRIVER_VERSION}/unified/intel-gpu-${VERSION_SP}.repo
 | 
			
		||||
        https://repositories.intel.com/gpu/sles/${VERSION_SP}/lts/2350/unified/intel-gpu-${VERSION_SP}.repo
 | 
			
		||||
    rpm --import https://repositories.intel.com/gpu/intel-graphics.key
 | 
			
		||||
    # To add the online network network package repository for the Intel Support Packages
 | 
			
		||||
    zypper addrepo https://yum.repos.intel.com/intel-for-pytorch-gpu-dev intel-for-pytorch-gpu-dev
 | 
			
		||||
@ -135,12 +181,6 @@ function install_sles() {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Default use GPU driver LTS releases
 | 
			
		||||
XPU_DRIVER_VERSION="/lts/2350"
 | 
			
		||||
if [[ "${XPU_DRIVER_TYPE,,}" == "rolling" ]]; then
 | 
			
		||||
    # Use GPU driver rolling releases
 | 
			
		||||
    XPU_DRIVER_VERSION=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# The installation depends on the base OS
 | 
			
		||||
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
 | 
			
		||||
@ -148,6 +188,9 @@ case "$ID" in
 | 
			
		||||
    ubuntu)
 | 
			
		||||
        install_ubuntu
 | 
			
		||||
    ;;
 | 
			
		||||
    centos)
 | 
			
		||||
        install_centos
 | 
			
		||||
    ;;
 | 
			
		||||
    rhel|almalinux)
 | 
			
		||||
        install_rhel
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
@ -89,7 +89,7 @@ RUN bash ./install_rocm_magma.sh && rm install_rocm_magma.sh
 | 
			
		||||
 | 
			
		||||
# Install AOTriton
 | 
			
		||||
COPY ./common/common_utils.sh common_utils.sh
 | 
			
		||||
COPY ./aotriton_version.txt aotriton_version.txt
 | 
			
		||||
COPY ./common/aotriton_version.txt aotriton_version.txt
 | 
			
		||||
COPY ./common/install_aotriton.sh install_aotriton.sh
 | 
			
		||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
 | 
			
		||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
 | 
			
		||||
 | 
			
		||||
@ -196,7 +196,7 @@ RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
 | 
			
		||||
 | 
			
		||||
# Install AOTriton
 | 
			
		||||
COPY ./common/common_utils.sh common_utils.sh
 | 
			
		||||
COPY ./aotriton_version.txt aotriton_version.txt
 | 
			
		||||
COPY ./common/aotriton_version.txt aotriton_version.txt
 | 
			
		||||
COPY ./common/install_aotriton.sh install_aotriton.sh
 | 
			
		||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
 | 
			
		||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
 | 
			
		||||
 | 
			
		||||
@ -145,13 +145,9 @@ ADD ./common/install_miopen.sh install_miopen.sh
 | 
			
		||||
RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
 | 
			
		||||
 | 
			
		||||
FROM cpu_final as xpu_final
 | 
			
		||||
# XPU CD use rolling driver
 | 
			
		||||
ENV XPU_DRIVER_TYPE ROLLING
 | 
			
		||||
# cmake-3.28.4 from pip
 | 
			
		||||
RUN python3 -m pip install --upgrade pip && \
 | 
			
		||||
    python3 -mpip install cmake==3.28.4
 | 
			
		||||
# Install setuptools and wheel for python 3.13
 | 
			
		||||
RUN /opt/python/cp313-cp313/bin/python -m pip install setuptools wheel
 | 
			
		||||
ADD ./common/install_xpu.sh install_xpu.sh
 | 
			
		||||
RUN bash ./install_xpu.sh && rm install_xpu.sh
 | 
			
		||||
RUN pushd /opt/_internal && tar -xJf static-libs-for-embedding-only.tar.xz && popd
 | 
			
		||||
 | 
			
		||||
@ -75,17 +75,17 @@ ARG BASE_CUDA_VERSION
 | 
			
		||||
ADD ./common/install_magma.sh install_magma.sh
 | 
			
		||||
RUN bash ./install_magma.sh ${BASE_CUDA_VERSION} && rm install_magma.sh
 | 
			
		||||
 | 
			
		||||
FROM base as nvpl
 | 
			
		||||
# Install nvpl
 | 
			
		||||
ADD ./common/install_nvpl.sh install_nvpl.sh
 | 
			
		||||
RUN bash ./install_nvpl.sh && rm install_nvpl.sh
 | 
			
		||||
FROM base as openblas
 | 
			
		||||
# Install openblas
 | 
			
		||||
ADD ./common/install_openblas.sh install_openblas.sh
 | 
			
		||||
RUN bash ./install_openblas.sh && rm install_openblas.sh
 | 
			
		||||
 | 
			
		||||
FROM final as cuda_final
 | 
			
		||||
ARG BASE_CUDA_VERSION
 | 
			
		||||
RUN rm -rf /usr/local/cuda-${BASE_CUDA_VERSION}
 | 
			
		||||
COPY --from=cuda     /usr/local/cuda-${BASE_CUDA_VERSION}  /usr/local/cuda-${BASE_CUDA_VERSION}
 | 
			
		||||
COPY --from=magma    /usr/local/cuda-${BASE_CUDA_VERSION}  /usr/local/cuda-${BASE_CUDA_VERSION}
 | 
			
		||||
COPY --from=nvpl /opt/nvpl/lib/  /usr/local/lib/
 | 
			
		||||
COPY --from=nvpl /opt/nvpl/include/  /usr/local/include/
 | 
			
		||||
COPY --from=openblas     /opt/OpenBLAS/  /opt/OpenBLAS/
 | 
			
		||||
RUN ln -sf /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda
 | 
			
		||||
ENV PATH=/usr/local/cuda/bin:$PATH
 | 
			
		||||
ENV LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH
 | 
			
		||||
 | 
			
		||||
@ -30,14 +30,9 @@ dill==0.3.7
 | 
			
		||||
#Pinned versions: 0.3.7
 | 
			
		||||
#test that import: dynamo/test_replay_record.py test_dataloader.py test_datapipe.py test_serialization.py
 | 
			
		||||
 | 
			
		||||
expecttest==0.2.1
 | 
			
		||||
expecttest==0.1.6
 | 
			
		||||
#Description: method for writing tests where test framework auto populates
 | 
			
		||||
# the expected output based on previous runs
 | 
			
		||||
#Pinned versions: 0.2.1
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
fbscribelogger==0.1.6
 | 
			
		||||
#Description: write to scribe from authenticated jobs on CI
 | 
			
		||||
#Pinned versions: 0.1.6
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
@ -109,7 +104,7 @@ networkx==2.8.8
 | 
			
		||||
#test that import: run_test.py, test_cpp_extensions_aot.py,test_determination.py
 | 
			
		||||
 | 
			
		||||
numba==0.49.0 ; python_version < "3.9"
 | 
			
		||||
numba==0.55.2 ; python_version == "3.9"
 | 
			
		||||
numba==0.54.1 ; python_version == "3.9"
 | 
			
		||||
numba==0.55.2 ; python_version == "3.10"
 | 
			
		||||
#Description: Just-In-Time Compiler for Numerical Functions
 | 
			
		||||
#Pinned versions: 0.54.1, 0.49.0, <=0.49.1
 | 
			
		||||
@ -223,7 +218,7 @@ pygments==2.15.0
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
scikit-image==0.19.3 ; python_version < "3.10"
 | 
			
		||||
scikit-image==0.22.0 ; python_version >= "3.10"
 | 
			
		||||
scikit-image==0.20.0 ; python_version >= "3.10"
 | 
			
		||||
#Description: image processing routines
 | 
			
		||||
#Pinned versions:
 | 
			
		||||
#test that import: test_nn.py
 | 
			
		||||
@ -274,10 +269,6 @@ lintrunner==0.12.5
 | 
			
		||||
#Pinned versions: 0.12.5
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
redis>=4.0.0
 | 
			
		||||
#Description: redis database
 | 
			
		||||
#test that import: anything that tests OSS caching/mocking (inductor/test_codecache.py, inductor/test_max_autotune.py)
 | 
			
		||||
 | 
			
		||||
rockset==1.0.3
 | 
			
		||||
#Description: queries Rockset
 | 
			
		||||
#Pinned versions: 1.0.3
 | 
			
		||||
@ -321,19 +312,3 @@ lxml==5.0.0
 | 
			
		||||
# Python-3.9 binaries
 | 
			
		||||
 | 
			
		||||
PyGithub==2.3.0
 | 
			
		||||
 | 
			
		||||
sympy==1.12.1 ; python_version == "3.8"
 | 
			
		||||
sympy==1.13.1 ; python_version >= "3.9"
 | 
			
		||||
#Description: Required by coremltools, also pinned in .github/requirements/pip-requirements-macOS.txt
 | 
			
		||||
#Pinned versions:
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
onnx==1.16.1
 | 
			
		||||
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
 | 
			
		||||
#Pinned versions:
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
onnxscript==0.1.0.dev20240817
 | 
			
		||||
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
 | 
			
		||||
#Pinned versions:
 | 
			
		||||
#test that import:
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
3.1.0
 | 
			
		||||
3.0.0
 | 
			
		||||
 | 
			
		||||
@ -156,12 +156,6 @@ COPY ./common/install_cusparselt.sh install_cusparselt.sh
 | 
			
		||||
RUN bash install_cusparselt.sh
 | 
			
		||||
RUN rm install_cusparselt.sh
 | 
			
		||||
 | 
			
		||||
# Install CUDSS
 | 
			
		||||
ARG CUDA_VERSION
 | 
			
		||||
COPY ./common/install_cudss.sh install_cudss.sh
 | 
			
		||||
RUN bash install_cudss.sh
 | 
			
		||||
RUN rm install_cudss.sh
 | 
			
		||||
 | 
			
		||||
# Delete /usr/local/cuda-11.X/cuda-11.X symlinks
 | 
			
		||||
RUN if [ -h /usr/local/cuda-11.6/cuda-11.6 ]; then rm /usr/local/cuda-11.6/cuda-11.6; fi
 | 
			
		||||
RUN if [ -h /usr/local/cuda-11.7/cuda-11.7 ]; then rm /usr/local/cuda-11.7/cuda-11.7; fi
 | 
			
		||||
 | 
			
		||||
@ -68,8 +68,6 @@ RUN rm install_rocm.sh
 | 
			
		||||
COPY ./common/install_rocm_magma.sh install_rocm_magma.sh
 | 
			
		||||
RUN bash ./install_rocm_magma.sh
 | 
			
		||||
RUN rm install_rocm_magma.sh
 | 
			
		||||
ADD ./common/install_miopen.sh install_miopen.sh
 | 
			
		||||
RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
 | 
			
		||||
ENV ROCM_PATH /opt/rocm
 | 
			
		||||
ENV PATH /opt/rocm/bin:$PATH
 | 
			
		||||
ENV PATH /opt/rocm/hcc/bin:$PATH
 | 
			
		||||
@ -102,10 +100,10 @@ ARG TRITON
 | 
			
		||||
# try to reach out to S3, which docker build runners don't have access
 | 
			
		||||
COPY ./common/install_triton.sh install_triton.sh
 | 
			
		||||
COPY ./common/common_utils.sh common_utils.sh
 | 
			
		||||
COPY ci_commit_pins/triton.txt triton.txt
 | 
			
		||||
COPY ci_commit_pins/triton-rocm.txt triton-rocm.txt
 | 
			
		||||
COPY triton_version.txt triton_version.txt
 | 
			
		||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
 | 
			
		||||
RUN rm install_triton.sh common_utils.sh triton.txt triton_version.txt
 | 
			
		||||
RUN rm install_triton.sh common_utils.sh triton-rocm.txt triton_version.txt
 | 
			
		||||
 | 
			
		||||
# Install AOTriton
 | 
			
		||||
COPY ./aotriton_version.txt aotriton_version.txt
 | 
			
		||||
@ -123,8 +121,5 @@ RUN bash ./install_cache.sh && rm install_cache.sh
 | 
			
		||||
ARG BUILD_ENVIRONMENT
 | 
			
		||||
ENV BUILD_ENVIRONMENT ${BUILD_ENVIRONMENT}
 | 
			
		||||
 | 
			
		||||
# Install LLVM dev version (Defined in the pytorch/builder github repository)
 | 
			
		||||
COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
 | 
			
		||||
 | 
			
		||||
USER jenkins
 | 
			
		||||
CMD ["bash"]
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,6 @@ RUN bash ./install_docs_reqs.sh && rm install_docs_reqs.sh
 | 
			
		||||
ARG ANACONDA_PYTHON_VERSION
 | 
			
		||||
ARG CONDA_CMAKE
 | 
			
		||||
ARG DOCS
 | 
			
		||||
ARG BUILD_ENVIRONMENT
 | 
			
		||||
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
 | 
			
		||||
ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH
 | 
			
		||||
ENV DOCS=$DOCS
 | 
			
		||||
 | 
			
		||||
@ -49,8 +49,13 @@ if [[ ${BUILD_ENVIRONMENT} == *"parallelnative"* ]]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Enable LLVM dependency for TensorExpr testing
 | 
			
		||||
export USE_LLVM=/opt/llvm
 | 
			
		||||
export LLVM_DIR=/opt/llvm/lib/cmake/llvm
 | 
			
		||||
if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
 | 
			
		||||
  export USE_LLVM=/opt/rocm/llvm
 | 
			
		||||
  export LLVM_DIR=/opt/rocm/llvm/lib/cmake/llvm
 | 
			
		||||
else
 | 
			
		||||
  export USE_LLVM=/opt/llvm
 | 
			
		||||
  export LLVM_DIR=/opt/llvm/lib/cmake/llvm
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$BUILD_ENVIRONMENT" == *executorch* ]]; then
 | 
			
		||||
  # To build test_edge_op_registration
 | 
			
		||||
@ -171,8 +176,7 @@ fi
 | 
			
		||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
 | 
			
		||||
  # shellcheck disable=SC1091
 | 
			
		||||
  source /opt/intel/oneapi/compiler/latest/env/vars.sh
 | 
			
		||||
  # XPU kineto feature dependencies are not fully ready, disable kineto build as temp WA
 | 
			
		||||
  export USE_KINETO=0
 | 
			
		||||
  export USE_XPU=1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# sccache will fail for CUDA builds if all cores are used for compiling
 | 
			
		||||
@ -280,8 +284,9 @@ else
 | 
			
		||||
    if [[ "$BUILD_ENVIRONMENT" != *rocm*  &&
 | 
			
		||||
          "$BUILD_ENVIRONMENT" != *xla* ]]; then
 | 
			
		||||
      if [[ "$BUILD_ENVIRONMENT" != *py3.8* ]]; then
 | 
			
		||||
        # Install numpy-2.0.2 for builds which are backward compatible with 1.X
 | 
			
		||||
        python -mpip install --pre numpy==2.0.2
 | 
			
		||||
        # Install numpy-2.0 release candidate for builds
 | 
			
		||||
        # Which should be backward compatible with Numpy-1.X
 | 
			
		||||
        python -mpip install --pre numpy==2.0.0rc1
 | 
			
		||||
      fi
 | 
			
		||||
 | 
			
		||||
      WERROR=1 python setup.py clean
 | 
			
		||||
 | 
			
		||||
@ -179,7 +179,7 @@ function install_torchvision() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_tlparse() {
 | 
			
		||||
  pip_install --user "tlparse==0.3.25"
 | 
			
		||||
  pip_install --user "tlparse==0.3.7"
 | 
			
		||||
  PATH="$(python -m site --user-base)/bin:$PATH"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -198,7 +198,7 @@ function install_torchrec_and_fbgemm() {
 | 
			
		||||
 | 
			
		||||
function clone_pytorch_xla() {
 | 
			
		||||
  if [[ ! -d ./xla ]]; then
 | 
			
		||||
    git clone --recursive -b r2.5 https://github.com/pytorch/xla.git
 | 
			
		||||
    git clone --recursive --quiet https://github.com/pytorch/xla.git
 | 
			
		||||
    pushd xla
 | 
			
		||||
    # pin the xla hash so that we don't get broken by changes to xla
 | 
			
		||||
    git checkout "$(cat ../.github/ci_commit_pins/xla.txt)"
 | 
			
		||||
 | 
			
		||||
@ -44,15 +44,19 @@ time python test/run_test.py --verbose -i distributed/_tensor/test_dtensor_compi
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/test_device_mesh
 | 
			
		||||
 | 
			
		||||
# DTensor/TP tests
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_ddp_2d_parallel
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_fsdp_2d_parallel
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_examples
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_random_state
 | 
			
		||||
 | 
			
		||||
# FSDP2 tests
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/_composable/fsdp/test_fully_shard_training -- -k test_2d_mlp_with_nd_mesh
 | 
			
		||||
 | 
			
		||||
# Pipelining composability tests
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/pipelining/test_composability.py
 | 
			
		||||
 | 
			
		||||
# ND composability tests
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/_composable/test_composability/test_2d_composability
 | 
			
		||||
time python test/run_test.py --verbose -i distributed/_composable/test_composability/test_pp_composability
 | 
			
		||||
 | 
			
		||||
# Other tests
 | 
			
		||||
time python test/run_test.py --verbose -i test_cuda_primary_ctx
 | 
			
		||||
 | 
			
		||||
@ -6,9 +6,6 @@
 | 
			
		||||
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
# Suppress ANSI color escape sequences
 | 
			
		||||
export TERM=vt100
 | 
			
		||||
 | 
			
		||||
# shellcheck source=./common.sh
 | 
			
		||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
 | 
			
		||||
 | 
			
		||||
@ -169,7 +166,7 @@ fi
 | 
			
		||||
 | 
			
		||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
 | 
			
		||||
  # Source Intel oneAPI envrioment script to enable xpu runtime related libraries
 | 
			
		||||
  # refer to https://www.intel.com/content/www/us/en/developer/articles/tool/pytorch-prerequisites-for-intel-gpu/2-5.html
 | 
			
		||||
  # refer to https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2024-0/use-the-setvars-and-oneapi-vars-scripts-with-linux.html
 | 
			
		||||
  # shellcheck disable=SC1091
 | 
			
		||||
  source /opt/intel/oneapi/compiler/latest/env/vars.sh
 | 
			
		||||
  # Check XPU status before testing
 | 
			
		||||
@ -319,6 +316,7 @@ test_inductor_distributed() {
 | 
			
		||||
  python test/run_test.py -i inductor/test_aot_inductor.py -k test_replicate_on_devices --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/test_c10d_functional_native.py --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/_tensor/test_dtensor_compile.py --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/tensor/parallel/test_fsdp_2d_parallel.py --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/tensor/parallel/test_micro_pipeline_tp.py --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/_composable/fsdp/test_fully_shard_comm.py --verbose
 | 
			
		||||
  python test/run_test.py -i distributed/_composable/fsdp/test_fully_shard_training.py -k test_train_parity_multi_group --verbose
 | 
			
		||||
@ -361,12 +359,10 @@ test_inductor_shard() {
 | 
			
		||||
test_inductor_aoti() {
 | 
			
		||||
  # docker build uses bdist_wheel which does not work with test_aot_inductor
 | 
			
		||||
  # TODO: need a faster way to build
 | 
			
		||||
  if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
 | 
			
		||||
    # We need to hipify before building again
 | 
			
		||||
    python3 tools/amd_build/build_amd.py
 | 
			
		||||
  if [[ "$BUILD_ENVIRONMENT" != *rocm* ]]; then
 | 
			
		||||
    BUILD_AOT_INDUCTOR_TEST=1 python setup.py develop
 | 
			
		||||
    CPP_TESTS_DIR="${BUILD_BIN_DIR}" LD_LIBRARY_PATH="${TORCH_LIB_DIR}" python test/run_test.py --cpp --verbose -i cpp/test_aoti_abi_check cpp/test_aoti_inference
 | 
			
		||||
  fi
 | 
			
		||||
  BUILD_AOT_INDUCTOR_TEST=1 python setup.py develop
 | 
			
		||||
  CPP_TESTS_DIR="${BUILD_BIN_DIR}" LD_LIBRARY_PATH="${TORCH_LIB_DIR}" python test/run_test.py --cpp --verbose -i cpp/test_aoti_abi_check cpp/test_aoti_inference
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test_inductor_cpp_wrapper_abi_compatible() {
 | 
			
		||||
@ -395,22 +391,7 @@ test_inductor_cpp_wrapper_abi_compatible() {
 | 
			
		||||
# .github/workflows/inductor-perf-test-nightly.yml
 | 
			
		||||
DYNAMO_BENCHMARK_FLAGS=()
 | 
			
		||||
 | 
			
		||||
pr_time_benchmarks() {
 | 
			
		||||
 | 
			
		||||
  pip_install --user "fbscribelogger"
 | 
			
		||||
 | 
			
		||||
  TEST_REPORTS_DIR=$(pwd)/test/test-reports
 | 
			
		||||
  mkdir -p "$TEST_REPORTS_DIR"
 | 
			
		||||
  PYTHONPATH=$(pwd)/benchmarks/dynamo/pr_time_benchmarks source benchmarks/dynamo/pr_time_benchmarks/benchmark_runner.sh "$TEST_REPORTS_DIR/pr_time_benchmarks_after.txt" "benchmarks/dynamo/pr_time_benchmarks/benchmarks"
 | 
			
		||||
  echo "benchmark results on current PR: "
 | 
			
		||||
  cat  "$TEST_REPORTS_DIR/pr_time_benchmarks_after.txt"
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [[ "${TEST_CONFIG}" == *pr_time_benchmarks* ]]; then
 | 
			
		||||
  pr_time_benchmarks
 | 
			
		||||
  exit 0
 | 
			
		||||
elif [[ "${TEST_CONFIG}" == *dynamo_eager* ]]; then
 | 
			
		||||
if [[ "${TEST_CONFIG}" == *dynamo_eager* ]]; then
 | 
			
		||||
  DYNAMO_BENCHMARK_FLAGS+=(--backend eager)
 | 
			
		||||
elif [[ "${TEST_CONFIG}" == *aot_eager* ]]; then
 | 
			
		||||
  DYNAMO_BENCHMARK_FLAGS+=(--backend aot_eager)
 | 
			
		||||
@ -506,12 +487,6 @@ test_perf_for_dashboard() {
 | 
			
		||||
            --output "$TEST_REPORTS_DIR/${backend}_with_cudagraphs_freezing_autotune_${suite}_${dtype}_${mode}_${device}_${target}.csv"
 | 
			
		||||
      fi
 | 
			
		||||
      if [[ "$DASHBOARD_TAG" == *aotinductor-true* ]] && [[ "$mode" == "inference" ]]; then
 | 
			
		||||
        if [[ "$target" == "accuracy" ]]; then
 | 
			
		||||
          # Also collect Export pass rate and display as a separate row
 | 
			
		||||
          $TASKSET python "benchmarks/dynamo/$suite.py" \
 | 
			
		||||
              "${target_flag[@]}" --"$mode" --"$dtype" --export --disable-cudagraphs "$@" \
 | 
			
		||||
              --output "$TEST_REPORTS_DIR/${backend}_export_${suite}_${dtype}_${mode}_${device}_${target}.csv"
 | 
			
		||||
        fi
 | 
			
		||||
        TORCHINDUCTOR_ABI_COMPATIBLE=1 $TASKSET python "benchmarks/dynamo/$suite.py" \
 | 
			
		||||
            "${target_flag[@]}" --"$mode" --"$dtype" --export-aot-inductor --disable-cudagraphs "$@" \
 | 
			
		||||
            --output "$TEST_REPORTS_DIR/${backend}_aot_inductor_${suite}_${dtype}_${mode}_${device}_${target}.csv"
 | 
			
		||||
@ -575,10 +550,7 @@ test_single_dynamo_benchmark() {
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "${TEST_CONFIG}" == *_avx2* ]]; then
 | 
			
		||||
      TEST_CONFIG=${TEST_CONFIG//_avx2/}
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "${TEST_CONFIG}" == *_avx512* ]]; then
 | 
			
		||||
      TEST_CONFIG=${TEST_CONFIG//_avx512/}
 | 
			
		||||
      TEST_CONFIG=${TEST_CONFIG::-5}
 | 
			
		||||
    fi
 | 
			
		||||
    python "benchmarks/dynamo/$suite.py" \
 | 
			
		||||
      --ci --accuracy --timing --explain \
 | 
			
		||||
@ -596,9 +568,6 @@ test_single_dynamo_benchmark() {
 | 
			
		||||
 | 
			
		||||
test_inductor_micro_benchmark() {
 | 
			
		||||
  TEST_REPORTS_DIR=$(pwd)/test/test-reports
 | 
			
		||||
  if [[ "${TEST_CONFIG}" == *cpu* ]]; then
 | 
			
		||||
    test_inductor_set_cpu_affinity
 | 
			
		||||
  fi
 | 
			
		||||
  python benchmarks/gpt_fast/benchmark.py --output "${TEST_REPORTS_DIR}/gpt_fast_benchmark.csv"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -668,7 +637,8 @@ test_inductor_torchbench_smoketest_perf() {
 | 
			
		||||
  # https://github.com/pytorch/pytorch/actions/runs/7158691360/job/19491437314,
 | 
			
		||||
  # and thus we lower its threshold to reduce flakiness. If this continues to be a problem,
 | 
			
		||||
  # we switch to use some other model.
 | 
			
		||||
  python benchmarks/dynamo/check_perf_csv.py -f "$TEST_REPORTS_DIR/inductor_inference_smoketest.csv" -t 4.9
 | 
			
		||||
  # lowering threshold from 4.9 to 4.7 for cu124. Will bump it up after cuda 12.4.0->12.4.1 update
 | 
			
		||||
  python benchmarks/dynamo/check_perf_csv.py -f "$TEST_REPORTS_DIR/inductor_inference_smoketest.csv" -t 4.7
 | 
			
		||||
 | 
			
		||||
  # Check memory compression ratio for a few models
 | 
			
		||||
  for test in hf_Albert timm_vision_transformer; do
 | 
			
		||||
@ -692,7 +662,7 @@ test_inductor_torchbench_smoketest_perf() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test_inductor_get_core_number() {
 | 
			
		||||
  if [[ "${TEST_CONFIG}" == *aarch64* ]]; then
 | 
			
		||||
  if [[ "${TEST_CONFIG}" == *aarch64 ]]; then
 | 
			
		||||
    echo "$(($(lscpu | grep 'Cluster(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per cluster:' | awk '{print $4}')))"
 | 
			
		||||
  else
 | 
			
		||||
    echo "$(($(lscpu | grep 'Socket(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per socket:' | awk '{print $4}')))"
 | 
			
		||||
@ -702,16 +672,11 @@ test_inductor_get_core_number() {
 | 
			
		||||
test_inductor_set_cpu_affinity(){
 | 
			
		||||
  #set jemalloc
 | 
			
		||||
  JEMALLOC_LIB="$(find /usr/lib -name libjemalloc.so.2)"
 | 
			
		||||
  export LD_PRELOAD="$JEMALLOC_LIB":"$LD_PRELOAD"
 | 
			
		||||
  IOMP_LIB="$(dirname "$(which python)")/../lib/libiomp5.so"
 | 
			
		||||
  export LD_PRELOAD="$JEMALLOC_LIB":"$IOMP_LIB":"$LD_PRELOAD"
 | 
			
		||||
  export MALLOC_CONF="oversize_threshold:1,background_thread:true,metadata_thp:auto,dirty_decay_ms:-1,muzzy_decay_ms:-1"
 | 
			
		||||
 | 
			
		||||
  if [[ "${TEST_CONFIG}" != *aarch64* ]]; then
 | 
			
		||||
    # Use Intel OpenMP for x86
 | 
			
		||||
    IOMP_LIB="$(dirname "$(which python)")/../lib/libiomp5.so"
 | 
			
		||||
    export LD_PRELOAD="$IOMP_LIB":"$LD_PRELOAD"
 | 
			
		||||
    export KMP_AFFINITY=granularity=fine,compact,1,0
 | 
			
		||||
    export KMP_BLOCKTIME=1
 | 
			
		||||
  fi
 | 
			
		||||
  export KMP_AFFINITY=granularity=fine,compact,1,0
 | 
			
		||||
  export KMP_BLOCKTIME=1
 | 
			
		||||
  cores=$(test_inductor_get_core_number)
 | 
			
		||||
  export OMP_NUM_THREADS=$cores
 | 
			
		||||
  end_core=$((cores-1))
 | 
			
		||||
@ -1482,7 +1447,9 @@ elif [[ "${TEST_CONFIG}" == *inductor* ]]; then
 | 
			
		||||
  install_torchvision
 | 
			
		||||
  test_inductor_shard "${SHARD_NUMBER}"
 | 
			
		||||
  if [[ "${SHARD_NUMBER}" == 1 ]]; then
 | 
			
		||||
    if [[ "${BUILD_ENVIRONMENT}" != linux-jammy-py3.9-gcc11-build ]]; then
 | 
			
		||||
    if [[ "${BUILD_ENVIRONMENT}" != linux-jammy-py3.8-gcc11-build ]]; then
 | 
			
		||||
      # Temporarily skip test_inductor_aoti due to https://github.com/pytorch/pytorch/issues/130311
 | 
			
		||||
      test_inductor_aoti
 | 
			
		||||
      test_inductor_distributed
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
@ -24,12 +24,6 @@ call %INSTALLER_DIR%\install_sccache.bat
 | 
			
		||||
if errorlevel 1 goto fail
 | 
			
		||||
if not errorlevel 0 goto fail
 | 
			
		||||
 | 
			
		||||
if "%USE_XPU%"=="1" (
 | 
			
		||||
  :: Install xpu support packages
 | 
			
		||||
  call %INSTALLER_DIR%\install_xpu.bat
 | 
			
		||||
  if errorlevel 1 exit /b 1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
:: Miniconda has been installed as part of the Windows AMI with all the dependencies.
 | 
			
		||||
:: We just need to activate it here
 | 
			
		||||
call %INSTALLER_DIR%\activate_miniconda3.bat
 | 
			
		||||
@ -49,16 +43,6 @@ if "%VC_VERSION%" == "" (
 | 
			
		||||
)
 | 
			
		||||
if errorlevel 1 goto fail
 | 
			
		||||
if not errorlevel 0 goto fail
 | 
			
		||||
 | 
			
		||||
if "%USE_XPU%"=="1" (
 | 
			
		||||
  :: Activate xpu environment - VS env is required for xpu
 | 
			
		||||
  call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
 | 
			
		||||
  if errorlevel 1 exit /b 1
 | 
			
		||||
  :: Reduce build time. Only have MTL self-hosted runner now
 | 
			
		||||
  SET TORCH_XPU_ARCH_LIST=xe-lpg
 | 
			
		||||
  SET USE_KINETO=0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@echo on
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
@ -81,6 +65,13 @@ set CUDA_PATH_V%VERSION_SUFFIX%=%CUDA_PATH%
 | 
			
		||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
 | 
			
		||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
 | 
			
		||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
 | 
			
		||||
 | 
			
		||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
 | 
			
		||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
 | 
			
		||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
 | 
			
		||||
 | 
			
		||||
:cuda_build_end
 | 
			
		||||
 | 
			
		||||
@ -1,91 +0,0 @@
 | 
			
		||||
@echo on
 | 
			
		||||
REM Description: Install Intel Support Packages on Windows
 | 
			
		||||
REM BKM reference: https://www.intel.com/content/www/us/en/developer/articles/tool/pytorch-prerequisites-for-intel-gpu/2-5.html
 | 
			
		||||
 | 
			
		||||
set XPU_INSTALL_MODE=%~1
 | 
			
		||||
if "%XPU_INSTALL_MODE%"=="" goto xpu_bundle_install_start
 | 
			
		||||
if "%XPU_INSTALL_MODE%"=="bundle" goto xpu_bundle_install_start
 | 
			
		||||
if "%XPU_INSTALL_MODE%"=="driver" goto xpu_driver_install_start
 | 
			
		||||
if "%XPU_INSTALL_MODE%"=="all" goto xpu_driver_install_start
 | 
			
		||||
 | 
			
		||||
:arg_error
 | 
			
		||||
 | 
			
		||||
echo Illegal XPU installation mode. The value can be "bundle"/"driver"/"all"
 | 
			
		||||
echo If keep the value as space, will use default "bundle" mode
 | 
			
		||||
exit /b 1
 | 
			
		||||
 | 
			
		||||
:xpu_driver_install_start
 | 
			
		||||
:: TODO Need more testing for driver installation
 | 
			
		||||
set XPU_DRIVER_LINK=https://downloadmirror.intel.com/830975/gfx_win_101.5972.exe
 | 
			
		||||
curl -o xpu_driver.exe --retry 3 --retry-all-errors -k %XPU_DRIVER_LINK%
 | 
			
		||||
echo "XPU Driver installing..."
 | 
			
		||||
start /wait "Intel XPU Driver Installer" "xpu_driver.exe"
 | 
			
		||||
if errorlevel 1 exit /b 1
 | 
			
		||||
del xpu_driver.exe
 | 
			
		||||
if "%XPU_INSTALL_MODE%"=="driver" goto xpu_install_end
 | 
			
		||||
 | 
			
		||||
:xpu_bundle_install_start
 | 
			
		||||
 | 
			
		||||
set XPU_BUNDLE_PARENT_DIR=C:\Program Files (x86)\Intel\oneAPI
 | 
			
		||||
set XPU_BUNDLE_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9d1a91e2-e8b8-40a5-8c7f-5db768a6a60c/w_intel-for-pytorch-gpu-dev_p_0.5.3.37_offline.exe
 | 
			
		||||
set XPU_PTI_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9d1a91e2-e8b8-40a5-8c7f-5db768a6a60c/w_intel-pti-dev_p_0.9.0.37_offline.exe
 | 
			
		||||
set XPU_BUNDLE_VERSION=0.5.3+31
 | 
			
		||||
set XPU_PTI_VERSION=0.9.0+36
 | 
			
		||||
set XPU_BUNDLE_PRODUCT_NAME=intel.oneapi.win.intel-for-pytorch-gpu-dev.product
 | 
			
		||||
set XPU_PTI_PRODUCT_NAME=intel.oneapi.win.intel-pti-dev.product
 | 
			
		||||
set XPU_BUNDLE_INSTALLED=0
 | 
			
		||||
set XPU_PTI_INSTALLED=0
 | 
			
		||||
set XPU_BUNDLE_UNINSTALL=0
 | 
			
		||||
set XPU_PTI_UNINSTALL=0
 | 
			
		||||
 | 
			
		||||
:: Check if XPU bundle is target version or already installed
 | 
			
		||||
if exist "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" goto xpu_bundle_ver_check
 | 
			
		||||
goto xpu_bundle_install
 | 
			
		||||
 | 
			
		||||
:xpu_bundle_ver_check
 | 
			
		||||
 | 
			
		||||
"%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --list-products > xpu_bundle_installed_ver.log
 | 
			
		||||
 | 
			
		||||
for /f "tokens=1,2" %%a in (xpu_bundle_installed_ver.log) do (
 | 
			
		||||
    if "%%a"=="%XPU_BUNDLE_PRODUCT_NAME%" (
 | 
			
		||||
        echo %%a Installed Version: %%b
 | 
			
		||||
        set XPU_BUNDLE_INSTALLED=1
 | 
			
		||||
        if not "%XPU_BUNDLE_VERSION%"=="%%b" (
 | 
			
		||||
            start /wait "Installer Title" "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --action=remove --eula=accept --silent --product-id %XPU_BUNDLE_PRODUCT_NAME% --product-ver %%b --log-dir uninstall_bundle
 | 
			
		||||
            set XPU_BUNDLE_UNINSTALL=1
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
    if "%%a"=="%XPU_PTI_PRODUCT_NAME%" (
 | 
			
		||||
        echo %%a Installed Version: %%b
 | 
			
		||||
        set XPU_PTI_INSTALLED=1
 | 
			
		||||
        if not "%XPU_PTI_VERSION%"=="%%b" (
 | 
			
		||||
            start /wait "Installer Title" "%XPU_BUNDLE_PARENT_DIR%\Installer\installer.exe" --action=remove --eula=accept --silent --product-id %XPU_PTI_PRODUCT_NAME% --product-ver %%b --log-dir uninstall_bundle
 | 
			
		||||
            set XPU_PTI_UNINSTALL=1
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
)
 | 
			
		||||
if errorlevel 1 exit /b 1
 | 
			
		||||
if exist xpu_bundle_installed_ver.log del xpu_bundle_installed_ver.log
 | 
			
		||||
if "%XPU_BUNDLE_INSTALLED%"=="0" goto xpu_bundle_install
 | 
			
		||||
if "%XPU_BUNDLE_UNINSTALL%"=="1" goto xpu_bundle_install
 | 
			
		||||
if "%XPU_PTI_INSTALLED%"=="0" goto xpu_pti_install
 | 
			
		||||
if "%XPU_PTI_UNINSTALL%"=="1" goto xpu_pti_install
 | 
			
		||||
goto xpu_install_end
 | 
			
		||||
 | 
			
		||||
:xpu_bundle_install
 | 
			
		||||
 | 
			
		||||
curl -o xpu_bundle.exe --retry 3 --retry-all-errors -k %XPU_BUNDLE_URL%
 | 
			
		||||
echo "XPU Bundle installing..."
 | 
			
		||||
start /wait "Intel Pytorch Bundle Installer" "xpu_bundle.exe" --action=install --eula=accept --silent --log-dir install_bundle
 | 
			
		||||
if errorlevel 1 exit /b 1
 | 
			
		||||
del xpu_bundle.exe
 | 
			
		||||
 | 
			
		||||
:xpu_pti_install
 | 
			
		||||
 | 
			
		||||
curl -o xpu_pti.exe --retry 3 --retry-all-errors -k %XPU_PTI_URL%
 | 
			
		||||
echo "XPU PTI installing..."
 | 
			
		||||
start /wait "Intel PTI Installer" "xpu_pti.exe" --action=install --eula=accept --silent --log-dir install_bundle
 | 
			
		||||
if errorlevel 1 exit /b 1
 | 
			
		||||
del xpu_pti.exe
 | 
			
		||||
 | 
			
		||||
:xpu_install_end
 | 
			
		||||
@ -40,6 +40,7 @@ set CUDA_PATH_V%VERSION_SUFFIX%=%CUDA_PATH%
 | 
			
		||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
 | 
			
		||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set CUDNN_ROOT_DIR=%CUDA_PATH%
 | 
			
		||||
set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt
 | 
			
		||||
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
 | 
			
		||||
set NUMBAPRO_CUDALIB=%CUDA_PATH%\bin
 | 
			
		||||
set NUMBAPRO_LIBDEVICE=%CUDA_PATH%\nvvm\libdevice
 | 
			
		||||
 | 
			
		||||
@ -31,6 +31,6 @@ if ERRORLEVEL 1 exit /b 1
 | 
			
		||||
 | 
			
		||||
:: Run tests C++-side and load the exported script module.
 | 
			
		||||
cd build
 | 
			
		||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
test_custom_backend.exe model.pt
 | 
			
		||||
if ERRORLEVEL 1 exit /b 1
 | 
			
		||||
 | 
			
		||||
@ -31,6 +31,6 @@ if ERRORLEVEL 1 exit /b 1
 | 
			
		||||
 | 
			
		||||
:: Run tests C++-side and load the exported script module.
 | 
			
		||||
cd build
 | 
			
		||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
test_custom_ops.exe model.pt
 | 
			
		||||
if ERRORLEVEL 1 exit /b 1
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ if errorlevel 1 exit /b 1
 | 
			
		||||
set CWD=%cd%
 | 
			
		||||
 | 
			
		||||
set CPP_TESTS_DIR=%TMP_DIR_WIN%\build\torch\bin
 | 
			
		||||
set PATH=%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
set PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\bin\x64;%TMP_DIR_WIN%\build\torch\lib;%PATH%
 | 
			
		||||
 | 
			
		||||
set TORCH_CPP_TEST_MNIST_PATH=%CWD%\test\cpp\api\mnist
 | 
			
		||||
python tools\download_mnist.py --quiet -d %TORCH_CPP_TEST_MNIST_PATH%
 | 
			
		||||
 | 
			
		||||
@ -40,9 +40,6 @@ python -m pip install pytest-rerunfailures==10.3 pytest-cpp==2.3.0 tensorboard==
 | 
			
		||||
# Install Z3 optional dependency for Windows builds.
 | 
			
		||||
python -m pip install z3-solver==4.12.2.0
 | 
			
		||||
 | 
			
		||||
# Install tlparse for test\dynamo\test_structured_trace.py UTs.
 | 
			
		||||
python -m pip install tlparse==0.3.25
 | 
			
		||||
 | 
			
		||||
run_tests() {
 | 
			
		||||
    # Run nvidia-smi if available
 | 
			
		||||
    for path in '/c/Program Files/NVIDIA Corporation/NVSMI/nvidia-smi.exe' /c/Windows/System32/nvidia-smi.exe; do
 | 
			
		||||
 | 
			
		||||
@ -116,14 +116,15 @@ if [[ "$PACKAGE_TYPE" == libtorch ]]; then
 | 
			
		||||
  cd /tmp/libtorch
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$GPU_ARCH_TYPE" == xpu ]]; then
 | 
			
		||||
  # Workaround for __mkl_tmp_MOD unbound variable issue, refer https://github.com/pytorch/pytorch/issues/130543
 | 
			
		||||
  set +u
 | 
			
		||||
  source /opt/intel/oneapi/pytorch-gpu-dev-0.5/oneapi-vars.sh
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Test the package
 | 
			
		||||
/builder/check_binary.sh
 | 
			
		||||
 | 
			
		||||
if [[ "\$GPU_ARCH_TYPE" != *s390x* && "\$GPU_ARCH_TYPE" != *xpu* && "\$GPU_ARCH_TYPE" != *rocm*  && "$PACKAGE_TYPE" != libtorch ]]; then
 | 
			
		||||
  # Exclude s390, xpu, rocm and libtorch builds from smoke testing
 | 
			
		||||
  python /builder/test/smoke_test/smoke_test.py --package=torchonly --torch-compile-check disabled
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Clean temp files
 | 
			
		||||
cd /builder && git clean -ffdx
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -78,7 +78,7 @@ TRITON_VERSION=$(cat $PYTORCH_ROOT/.ci/docker/triton_version.txt)
 | 
			
		||||
TRITON_CONSTRAINT="platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.13'"
 | 
			
		||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* &&  -n "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
 | 
			
		||||
  # Only linux Python < 3.13 are supported wheels for triton
 | 
			
		||||
  TRITON_REQUIREMENT="pytorch-triton==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
  TRITON_REQUIREMENT="triton==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
  if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
 | 
			
		||||
      TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton.txt)
 | 
			
		||||
      TRITON_REQUIREMENT="pytorch-triton==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
@ -90,7 +90,7 @@ fi
 | 
			
		||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*rocm.* && $(uname) == "Linux" ]]; then
 | 
			
		||||
    TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
    if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
 | 
			
		||||
        TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton.txt)
 | 
			
		||||
        TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton-rocm.txt)
 | 
			
		||||
        TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
 | 
			
		||||
@ -102,10 +102,10 @@ fi
 | 
			
		||||
 | 
			
		||||
# Set triton via PYTORCH_EXTRA_INSTALL_REQUIREMENTS for triton xpu package
 | 
			
		||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*xpu.* && $(uname) == "Linux" ]]; then
 | 
			
		||||
    TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
    TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}"
 | 
			
		||||
    if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
 | 
			
		||||
        TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton-xpu.txt)
 | 
			
		||||
        TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
        TRITON_REQUIREMENT="pytorch-triton-xpu==${TRITON_VERSION}+${TRITON_SHORTHASH}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
 | 
			
		||||
        export PYTORCH_EXTRA_INSTALL_REQUIREMENTS="${TRITON_REQUIREMENT}"
 | 
			
		||||
 | 
			
		||||
@ -10,11 +10,6 @@ export SCCACHE_BUCKET=ossci-compiler-cache
 | 
			
		||||
export SCCACHE_IGNORE_SERVER_IO_ERROR=1
 | 
			
		||||
export VC_YEAR=2019
 | 
			
		||||
 | 
			
		||||
if [[ "$DESIRED_CUDA" == 'xpu' ]]; then
 | 
			
		||||
    export VC_YEAR=2022
 | 
			
		||||
    export USE_SCCACHE=0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "Free space on filesystem before build:"
 | 
			
		||||
df -h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,6 @@ source "${BINARY_ENV_FILE:-/c/w/env}"
 | 
			
		||||
export CUDA_VERSION="${DESIRED_CUDA/cu/}"
 | 
			
		||||
export VC_YEAR=2019
 | 
			
		||||
 | 
			
		||||
if [[ "$DESIRED_CUDA" == 'xpu' ]]; then
 | 
			
		||||
    export VC_YEAR=2022
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
pushd "$BUILDER_ROOT"
 | 
			
		||||
 | 
			
		||||
./windows/internal/smoke_test.bat
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.flake8
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								.flake8
									
									
									
									
									
								
							@ -57,7 +57,7 @@ per-file-ignores =
 | 
			
		||||
    torch/distributed/_tensor/_collective_utils.py: TOR901
 | 
			
		||||
    # This is a full package that happen to live within the test
 | 
			
		||||
    # folder, so ok to skip
 | 
			
		||||
    test/cpp_extensions/open_registration_extension/pytorch_openreg/_aten_impl.py: TOR901
 | 
			
		||||
    test/cpp_extensions/open_registration_extension/pytorch_openreg/__init__.py: TOR901
 | 
			
		||||
optional-ascii-coding = True
 | 
			
		||||
exclude =
 | 
			
		||||
    ./.git,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/actionlint.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/actionlint.yaml
									
									
									
									
										vendored
									
									
								
							@ -3,20 +3,18 @@ self-hosted-runner:
 | 
			
		||||
    # GitHub hosted x86 Linux runners
 | 
			
		||||
    - linux.20_04.4x
 | 
			
		||||
    - linux.20_04.16x
 | 
			
		||||
    # Repo-specific LF hosted ARC runners
 | 
			
		||||
    - linux.large.arc
 | 
			
		||||
    # Organization-wide AWS Linux Runners
 | 
			
		||||
    - linux.large
 | 
			
		||||
    - linux.2xlarge
 | 
			
		||||
    - linux.4xlarge
 | 
			
		||||
    - linux.9xlarge.ephemeral
 | 
			
		||||
    - am2.linux.9xlarge.ephemeral
 | 
			
		||||
    - linux.12xlarge
 | 
			
		||||
    - linux.12xlarge.ephemeral
 | 
			
		||||
    - linux.24xlarge
 | 
			
		||||
    - linux.24xlarge.ephemeral
 | 
			
		||||
    - linux.arm64.2xlarge
 | 
			
		||||
    - linux.arm64.2xlarge.ephemeral
 | 
			
		||||
    - linux.arm64.m7g.4xlarge
 | 
			
		||||
    - linux.arm64.m7g.4xlarge.ephemeral
 | 
			
		||||
    - linux.4xlarge.nvidia.gpu
 | 
			
		||||
    - linux.8xlarge.nvidia.gpu
 | 
			
		||||
    - linux.16xlarge.nvidia.gpu
 | 
			
		||||
@ -40,7 +38,6 @@ self-hosted-runner:
 | 
			
		||||
    - amz2023.linux.24xlarge
 | 
			
		||||
    - amz2023.linux.arm64.2xlarge
 | 
			
		||||
    - amz2023.linux.arm64.m7g.4xlarge
 | 
			
		||||
    - amz2023.linux.arm64.m7g.4xlarge.ephemeral
 | 
			
		||||
    - amz2023.linux.4xlarge.nvidia.gpu
 | 
			
		||||
    - amz2023.linux.8xlarge.nvidia.gpu
 | 
			
		||||
    - amz2023.linux.16xlarge.nvidia.gpu
 | 
			
		||||
@ -59,9 +56,6 @@ self-hosted-runner:
 | 
			
		||||
    # Repo-specific IBM hosted S390x runner
 | 
			
		||||
    - linux.s390x
 | 
			
		||||
    # Organization wide AWS Windows runners
 | 
			
		||||
    - windows.g4dn.xlarge
 | 
			
		||||
    - windows.g4dn.xlarge.nonephemeral
 | 
			
		||||
    - windows.4xlarge
 | 
			
		||||
    - windows.4xlarge.nonephemeral
 | 
			
		||||
    - windows.8xlarge.nvidia.gpu
 | 
			
		||||
    - windows.8xlarge.nvidia.gpu.nonephemeral
 | 
			
		||||
 | 
			
		||||
@ -57,7 +57,7 @@ outputs:
 | 
			
		||||
runs:
 | 
			
		||||
  using: composite
 | 
			
		||||
  steps:
 | 
			
		||||
    - uses: nick-fields/retry@v3.0.0
 | 
			
		||||
    - uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
      name: Setup dependencies
 | 
			
		||||
      env:
 | 
			
		||||
        GITHUB_TOKEN: ${{ inputs.github-token }}
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ inputs:
 | 
			
		||||
runs:
 | 
			
		||||
  using: composite
 | 
			
		||||
  steps:
 | 
			
		||||
    - uses: nick-fields/retry@v3.0.0
 | 
			
		||||
    - uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
      name: Setup dependencies
 | 
			
		||||
      with:
 | 
			
		||||
        shell: bash
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ inputs:
 | 
			
		||||
runs:
 | 
			
		||||
  using: composite
 | 
			
		||||
  steps:
 | 
			
		||||
    - uses: nick-fields/retry@v3.0.0
 | 
			
		||||
    - uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
      name: Setup dependencies
 | 
			
		||||
      with:
 | 
			
		||||
        shell: bash
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								.github/actions/setup-linux/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/actions/setup-linux/action.yml
									
									
									
									
										vendored
									
									
								
							@ -44,7 +44,7 @@ runs:
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
    - name: Log in to ECR
 | 
			
		||||
      uses: nick-fields/retry@v3.0.0
 | 
			
		||||
      uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
      env:
 | 
			
		||||
        AWS_RETRY_MODE: standard
 | 
			
		||||
        AWS_MAX_ATTEMPTS: "5"
 | 
			
		||||
@ -59,13 +59,6 @@ runs:
 | 
			
		||||
          aws ecr get-login-password --region "$AWS_DEFAULT_REGION" | docker login --username AWS \
 | 
			
		||||
              --password-stdin "$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
 | 
			
		||||
 | 
			
		||||
          # For LF Runners we need to make sure we also login to Meta's ECR docker registry too.
 | 
			
		||||
          META_AWS_ACCOUNT_ID=308535385114
 | 
			
		||||
          if [ "$AWS_ACCOUNT_ID" != "$META_AWS_ACCOUNT_ID" ] ; then
 | 
			
		||||
              aws ecr get-login-password --region "$AWS_DEFAULT_REGION" | docker login --username AWS \
 | 
			
		||||
                  --password-stdin "$META_AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
    - name: Preserve github env variables for use in docker
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/actions/teardown-win/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/teardown-win/action.yml
									
									
									
									
										vendored
									
									
								
							@ -31,7 +31,7 @@ runs:
 | 
			
		||||
    # retry this step several time similar to how checkout-pytorch GHA does
 | 
			
		||||
    - name: Cleanup workspace
 | 
			
		||||
      if: always()
 | 
			
		||||
      uses: nick-fields/retry@v3.0.0
 | 
			
		||||
      uses: nick-fields/retry@v2.8.2
 | 
			
		||||
      env:
 | 
			
		||||
        EXTRA_DELETE_DIR: ${{ inputs.extra-delete-dir }}
 | 
			
		||||
      with:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/ci_commit_pins/audio.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ci_commit_pins/audio.txt
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
97ed7b36b7a741253d4e41e4da3c901d83294503
 | 
			
		||||
b3f6f511f2a1082bd56b13a3f6794e7fc3ba4862
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/ci_commit_pins/xla.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ci_commit_pins/xla.txt
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
r2.5
 | 
			
		||||
5ea4535f0699f366adb554183a65ebf7dc34a8be
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								.github/label_to_label.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								.github/label_to_label.yml
									
									
									
									
										vendored
									
									
								
							@ -1,50 +1,13 @@
 | 
			
		||||
# Use this to auto apply labels based on other labels.  Applies to both PRs and
 | 
			
		||||
# issues. Currently only supports any and all
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: opcheck"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: custom-operators"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: custom-operators"
 | 
			
		||||
  - "module: functionalization"
 | 
			
		||||
  - "module: custom operators"
 | 
			
		||||
  - "module: aotdispatch"
 | 
			
		||||
  - "module: higher order operators"
 | 
			
		||||
  - "module: fakeTensor"
 | 
			
		||||
  - "module: ProxyTensor"
 | 
			
		||||
  - "module: library"
 | 
			
		||||
  - "module: reinplacing"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: pt2-dispatcher"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: vmap"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: functorch"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: reinplacing"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: inductor"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: pt2 optimizer"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: dynamo"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: flex attention"
 | 
			
		||||
  then:
 | 
			
		||||
  - "module: higher order operators"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: aotinductor"
 | 
			
		||||
  then:
 | 
			
		||||
  - "oncall: export"
 | 
			
		||||
- any:
 | 
			
		||||
  - "module: dynamo"
 | 
			
		||||
  - "module: pt2-dispatcher"
 | 
			
		||||
  - "module: inductor"
 | 
			
		||||
  - "module: aotinductor"
 | 
			
		||||
  - "module: cudagraphs"
 | 
			
		||||
  - "oncall: export"
 | 
			
		||||
  - "module: startup-tracing-compile"
 | 
			
		||||
  - "module: compiled autograd"
 | 
			
		||||
  - "module: flex attention"
 | 
			
		||||
  - "module: dynamic shapes"
 | 
			
		||||
  then:
 | 
			
		||||
  - "oncall: pt2"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								.github/labeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/labeler.yml
									
									
									
									
										vendored
									
									
								
							@ -29,6 +29,7 @@
 | 
			
		||||
- torch/fx/experimental/recording.py
 | 
			
		||||
- torch/fx/experimental/sym_node.py
 | 
			
		||||
- torch/fx/experimental/validator.py
 | 
			
		||||
- torch/fx/experimental/_sym_dispatch_mode.py
 | 
			
		||||
- torch/fx/experimental/proxy_tensor.py
 | 
			
		||||
- test/distributed/_tensor/test_dtensor_compile.py
 | 
			
		||||
- test/distributed/tensor/parallel/test_fsdp_2d_parallel.py
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										342
									
								
								.github/lf-canary-scale-config.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										342
									
								
								.github/lf-canary-scale-config.yml
									
									
									
									
										vendored
									
									
								
							@ -31,312 +31,132 @@ runner_types:
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.10xlarge.avx2:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: m4.10xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 450
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.24xl.spr-metal:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.metal-24xl
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.16xlarge.spr:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.9xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.9xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 50
 | 
			
		||||
    max_available: 20
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.12xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.16xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.24xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 500
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.24xlarge.ephemeral:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.2xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 3120
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.4xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.8xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.8xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g4dn.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g4dn.metal.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g5.48xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.48xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g5.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g5.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 2400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.g6.4xlarge.experimental.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g6.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 50
 | 
			
		||||
    max_available: 30
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.large:
 | 
			
		||||
    max_available: 1200
 | 
			
		||||
    disk_size: 15
 | 
			
		||||
    instance_type: c5.large
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.c.linux.arm64.2xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.c.linux.arm64.m7g.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.c.linux.arm64.2xlarge.ephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.c.linux.arm64.m7g.4xlarge.ephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.c.linux.arm64.m7g.metal:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.c.windows.g4dn.xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: g4dn.xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: windows
 | 
			
		||||
  lf.c.windows.g4dn.xlarge.nonephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: g4dn.xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: windows
 | 
			
		||||
  lf.c.windows.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: c5d.4xlarge
 | 
			
		||||
@ -367,3 +187,159 @@ runner_types:
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: windows
 | 
			
		||||
 | 
			
		||||
  ### Setup runner types to test the Amazon Linux 2023 AMI
 | 
			
		||||
  lf.c.amz2023.linux.12xlarge:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.10xlarge.avx2:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: m4.10xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 450
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.24xl.spr-metal:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.metal-24xl
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.16xlarge.spr:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.9xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.9xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 20
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.12xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.16xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.24xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.2xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 3120
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.4xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.8xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.8xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g4dn.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g4dn.metal.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g5.48xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.48xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g5.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g5.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 2400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.g6.4xlarge.experimental.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g6.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 30
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.large:
 | 
			
		||||
    max_available: 1200
 | 
			
		||||
    disk_size: 15
 | 
			
		||||
    instance_type: c5.large
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.c.amz2023.linux.arm64.2xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
  lf.c.amz2023.linux.arm64.m7g.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
  lf.c.amz2023.linux.arm64.m7g.metal:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										342
									
								
								.github/lf-scale-config.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										342
									
								
								.github/lf-scale-config.yml
									
									
									
									
										vendored
									
									
								
							@ -31,312 +31,132 @@ runner_types:
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.10xlarge.avx2:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: m4.10xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 450
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.24xl.spr-metal:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.metal-24xl
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.16xlarge.spr:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.9xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.9xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 50
 | 
			
		||||
    max_available: 20
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.12xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.16xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.24xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 500
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.24xlarge.ephemeral:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.2xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 3120
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.4xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.8xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.8xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g4dn.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g4dn.metal.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g5.48xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.48xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g5.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g5.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 2400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.g6.4xlarge.experimental.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g6.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 50
 | 
			
		||||
    max_available: 30
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.large:
 | 
			
		||||
    max_available: 1200
 | 
			
		||||
    disk_size: 15
 | 
			
		||||
    instance_type: c5.large
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
 | 
			
		||||
  lf.linux.arm64.2xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.linux.arm64.m7g.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.linux.arm64.2xlarge.ephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.linux.arm64.m7g.4xlarge.ephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.linux.arm64.m7g.metal:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
    variants:
 | 
			
		||||
      amz2023:
 | 
			
		||||
        ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
      am2:
 | 
			
		||||
        ami: amzn2-ami-hvm-2.0.20240306.2-arm64-gp2
 | 
			
		||||
  lf.windows.g4dn.xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: g4dn.xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: windows
 | 
			
		||||
  lf.windows.g4dn.xlarge.nonephemeral:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: g4dn.xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: windows
 | 
			
		||||
  lf.windows.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: c5d.4xlarge
 | 
			
		||||
@ -367,3 +187,159 @@ runner_types:
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: windows
 | 
			
		||||
 | 
			
		||||
  ### Setup runner types to test the Amazon Linux 2023 AMI
 | 
			
		||||
  lf.amz2023.linux.12xlarge:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.10xlarge.avx2:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: m4.10xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 450
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.24xl.spr-metal:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.metal-24xl
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.16xlarge.spr:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c7i.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.9xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.9xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 20
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.12xlarge.ephemeral:
 | 
			
		||||
    disk_size: 200
 | 
			
		||||
    instance_type: c5.12xlarge
 | 
			
		||||
    is_ephemeral: true
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.16xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.16xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.24xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.24xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.2xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 3120
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.4xlarge:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: c5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 1000
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.8xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g3.8xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g4dn.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 250
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g4dn.metal.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g4dn.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 300
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g5.48xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.48xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g5.12xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.12xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 150
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g5.4xlarge.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g5.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 2400
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.g6.4xlarge.experimental.nvidia.gpu:
 | 
			
		||||
    disk_size: 150
 | 
			
		||||
    instance_type: g6.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 30
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.large:
 | 
			
		||||
    max_available: 1200
 | 
			
		||||
    disk_size: 15
 | 
			
		||||
    instance_type: c5.large
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
 | 
			
		||||
  lf.amz2023.linux.arm64.2xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: t4g.2xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
  lf.amz2023.linux.arm64.m7g.4xlarge:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.4xlarge
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 200
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
  lf.amz2023.linux.arm64.m7g.metal:
 | 
			
		||||
    disk_size: 256
 | 
			
		||||
    instance_type: m7g.metal
 | 
			
		||||
    is_ephemeral: false
 | 
			
		||||
    max_available: 100
 | 
			
		||||
    os: linux
 | 
			
		||||
    ami: al2023-ami-2023.5.20240701.0-kernel-6.1-arm64
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/merge_rules.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/merge_rules.yaml
									
									
									
									
										vendored
									
									
								
							@ -107,8 +107,8 @@
 | 
			
		||||
  mandatory_checks_name:
 | 
			
		||||
  - EasyCLA
 | 
			
		||||
  - Lint
 | 
			
		||||
  - pull / linux-focal-py3_9-clang9-xla / build
 | 
			
		||||
  - pull / linux-focal-py3_9-clang9-xla / test (xla, 1, 1, linux.12xlarge)
 | 
			
		||||
  - pull / linux-focal-py3_8-clang9-xla / build
 | 
			
		||||
  - pull / linux-focal-py3_8-clang9-xla / test (xla, 1, 1, linux.12xlarge)
 | 
			
		||||
 | 
			
		||||
- name: Documentation
 | 
			
		||||
  patterns:
 | 
			
		||||
@ -282,11 +282,9 @@
 | 
			
		||||
  - torch/_C/_distributed*
 | 
			
		||||
  - torch/csrc/distributed/**
 | 
			
		||||
  - torch/testing/_internal/distributed/**
 | 
			
		||||
  - torch/multiprocessing/**
 | 
			
		||||
  - test/distributed/**
 | 
			
		||||
  - test/cpp/dist_autograd/**
 | 
			
		||||
  - test/cpp/rpc/**
 | 
			
		||||
  - test/*multiprocessing*
 | 
			
		||||
  approved_by:
 | 
			
		||||
  - wconstab
 | 
			
		||||
  - mrshenli
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								.github/nitpicks.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/nitpicks.yml
									
									
									
									
										vendored
									
									
								
							@ -1,5 +0,0 @@
 | 
			
		||||
- markdown: |
 | 
			
		||||
    ## Attention! native_functions.yaml was changed
 | 
			
		||||
    If you are adding a new function or defaulted argument to native_functions.yaml, you cannot use it from pre-existing Python frontend code until our FC window passes (two weeks).  Split your PR into two PRs, one which adds the new C++ functionality, and one that makes use of it from Python, and land them two weeks apart.  See https://github.com/pytorch/pytorch/wiki/PyTorch's-Python-Frontend-Backward-and-Forward-Compatibility-Policy#forwards-compatibility-fc for more info.
 | 
			
		||||
  pathFilter:
 | 
			
		||||
    - 'aten/src/ATen/native/native_functions.yaml'
 | 
			
		||||
							
								
								
									
										1
									
								
								.github/pytorch-probot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/pytorch-probot.yml
									
									
									
									
										vendored
									
									
								
							@ -9,7 +9,6 @@ ciflow_push_tags:
 | 
			
		||||
- ciflow/inductor-rocm
 | 
			
		||||
- ciflow/inductor-perf-compare
 | 
			
		||||
- ciflow/inductor-micro-benchmark
 | 
			
		||||
- ciflow/inductor-micro-benchmark-cpu-x86
 | 
			
		||||
- ciflow/inductor-cu124
 | 
			
		||||
- ciflow/linux-aarch64
 | 
			
		||||
- ciflow/mps
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/requirements/conda-env-iOS.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/requirements/conda-env-iOS.txt
									
									
									
									
										vendored
									
									
								
							@ -4,4 +4,4 @@ ninja=1.10.2
 | 
			
		||||
numpy=1.23.3
 | 
			
		||||
pyyaml=6.0
 | 
			
		||||
setuptools=68.2.2
 | 
			
		||||
typing-extensions=4.11.0
 | 
			
		||||
typing-extensions=4.9.0
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
boto3==1.19.12
 | 
			
		||||
hypothesis==6.56.4
 | 
			
		||||
expecttest==0.2.1
 | 
			
		||||
fbscribelogger==0.1.6
 | 
			
		||||
expecttest==0.1.6
 | 
			
		||||
librosa>=0.6.2
 | 
			
		||||
mpmath==1.3.0
 | 
			
		||||
networkx==2.8.7
 | 
			
		||||
@ -19,7 +18,7 @@ pytest-rerunfailures==10.3
 | 
			
		||||
pytest-flakefinder==1.1.0
 | 
			
		||||
scipy==1.10.1
 | 
			
		||||
sympy==1.12.1 ; python_version == "3.8"
 | 
			
		||||
sympy==1.13.1 ; python_version >= "3.9"
 | 
			
		||||
sympy>=1.13.0 ; python_version >= "3.9"
 | 
			
		||||
unittest-xml-reporting<=3.2.0,>=2.0.0
 | 
			
		||||
xdoctest==1.1.0
 | 
			
		||||
filelock==3.6.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								.github/scripts/build_triton_wheel.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/scripts/build_triton_wheel.py
									
									
									
									
										vendored
									
									
								
							@ -15,7 +15,9 @@ REPO_DIR = SCRIPT_DIR.parent.parent
 | 
			
		||||
 | 
			
		||||
def read_triton_pin(device: str = "cuda") -> str:
 | 
			
		||||
    triton_file = "triton.txt"
 | 
			
		||||
    if device == "xpu":
 | 
			
		||||
    if device == "rocm":
 | 
			
		||||
        triton_file = "triton-rocm.txt"
 | 
			
		||||
    elif device == "xpu":
 | 
			
		||||
        triton_file = "triton-xpu.txt"
 | 
			
		||||
    with open(REPO_DIR / ".ci" / "docker" / "ci_commit_pins" / triton_file) as f:
 | 
			
		||||
        return f.read().strip()
 | 
			
		||||
@ -48,25 +50,6 @@ def patch_init_py(
 | 
			
		||||
        f.write(orig)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO: remove patch_setup_py() once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
 | 
			
		||||
def patch_setup_py(path: Path) -> None:
 | 
			
		||||
    with open(path) as f:
 | 
			
		||||
        orig = f.read()
 | 
			
		||||
    try:
 | 
			
		||||
        orig = check_and_replace(
 | 
			
		||||
            orig,
 | 
			
		||||
            "https://tritonlang.blob.core.windows.net/llvm-builds/",
 | 
			
		||||
            "https://oaitriton.blob.core.windows.net/public/llvm-builds/",
 | 
			
		||||
        )
 | 
			
		||||
        with open(path, "w") as f:
 | 
			
		||||
            f.write(orig)
 | 
			
		||||
    except RuntimeError as e:
 | 
			
		||||
        print(
 | 
			
		||||
            f"Applying patch_setup_py() for llvm-build package failed: {e}.",
 | 
			
		||||
            "If you are trying to build a newer version of Triton, you can ignore this.",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def build_triton(
 | 
			
		||||
    *,
 | 
			
		||||
    version: str,
 | 
			
		||||
@ -108,9 +91,6 @@ def build_triton(
 | 
			
		||||
        else:
 | 
			
		||||
            check_call(["git", "checkout", commit_hash], cwd=triton_basedir)
 | 
			
		||||
 | 
			
		||||
        # TODO: remove this and patch_setup_py() once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
 | 
			
		||||
        patch_setup_py(triton_pythondir / "setup.py")
 | 
			
		||||
 | 
			
		||||
        if build_conda:
 | 
			
		||||
            with open(triton_basedir / "meta.yaml", "w") as meta:
 | 
			
		||||
                print(
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								.github/scripts/check_labels.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/scripts/check_labels.py
									
									
									
									
										vendored
									
									
								
							@ -27,12 +27,6 @@ def parse_args() -> Any:
 | 
			
		||||
 | 
			
		||||
    parser = ArgumentParser("Check PR labels")
 | 
			
		||||
    parser.add_argument("pr_num", type=int)
 | 
			
		||||
    # add a flag to return a non-zero exit code if the PR does not have the required labels
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "--exit-non-zero",
 | 
			
		||||
        action="store_true",
 | 
			
		||||
        help="Return a non-zero exit code if the PR does not have the required labels",
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    return parser.parse_args()
 | 
			
		||||
 | 
			
		||||
@ -47,13 +41,10 @@ def main() -> None:
 | 
			
		||||
        if not has_required_labels(pr):
 | 
			
		||||
            print(LABEL_ERR_MSG)
 | 
			
		||||
            add_label_err_comment(pr)
 | 
			
		||||
            if args.exit_non_zero:
 | 
			
		||||
                sys.exit(1)
 | 
			
		||||
        else:
 | 
			
		||||
            delete_all_label_err_comments(pr)
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        if args.exit_non_zero:
 | 
			
		||||
            sys.exit(1)
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								.github/scripts/cherry_pick.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/scripts/cherry_pick.py
									
									
									
									
										vendored
									
									
								
							@ -169,8 +169,7 @@ def create_cherry_pick_branch(
 | 
			
		||||
    repo.create_branch_and_checkout(branch=cherry_pick_branch)
 | 
			
		||||
 | 
			
		||||
    # We might want to support ghstack later
 | 
			
		||||
    # We don't want to resolve conflicts here.
 | 
			
		||||
    repo._run_git("cherry-pick", "-x", commit_sha)
 | 
			
		||||
    repo._run_git("cherry-pick", "-x", "-X", "theirs", commit_sha)
 | 
			
		||||
    repo.push(branch=cherry_pick_branch, dry_run=False)
 | 
			
		||||
 | 
			
		||||
    return cherry_pick_branch
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/scripts/filter_test_configs.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/scripts/filter_test_configs.py
									
									
									
									
										vendored
									
									
								
							@ -39,9 +39,9 @@ SUPPORTED_PERIODICAL_MODES: Dict[str, Callable[[Optional[str]], bool]] = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# The link to the published list of disabled jobs
 | 
			
		||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json?versionId=sxzMTP57qj.Vwz8dN1glkTK560Txq9W3"
 | 
			
		||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json"
 | 
			
		||||
# and unstable jobs
 | 
			
		||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json?versionId=8f1.4S3MupuHXH8t0waxyGnPsGHJYdv9"
 | 
			
		||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json"
 | 
			
		||||
 | 
			
		||||
# Some constants used to handle disabled and unstable jobs
 | 
			
		||||
JOB_NAME_SEP = "/"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										83
									
								
								.github/scripts/generate_binary_build_matrix.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										83
									
								
								.github/scripts/generate_binary_build_matrix.py
									
									
									
									
										vendored
									
									
								
							@ -18,13 +18,13 @@ from typing import Dict, List, Optional, Tuple
 | 
			
		||||
CUDA_ARCHES = ["11.8", "12.1", "12.4"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CUDA_ARCHES_FULL_VERSION = {"11.8": "11.8.0", "12.1": "12.1.1", "12.4": "12.4.1"}
 | 
			
		||||
CUDA_ARCHES_FULL_VERSION = {"11.8": "11.8.0", "12.1": "12.1.1", "12.4": "12.4.0"}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CUDA_ARCHES_CUDNN_VERSION = {"11.8": "9", "12.1": "9", "12.4": "9"}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ROCM_ARCHES = ["6.1", "6.2"]
 | 
			
		||||
ROCM_ARCHES = ["6.0", "6.1"]
 | 
			
		||||
 | 
			
		||||
XPU_ARCHES = ["xpu"]
 | 
			
		||||
 | 
			
		||||
@ -68,18 +68,18 @@ PYTORCH_EXTRA_INSTALL_REQUIREMENTS = {
 | 
			
		||||
        "nvidia-nvtx-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64'"
 | 
			
		||||
    ),
 | 
			
		||||
    "12.4": (
 | 
			
		||||
        "nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cuda-runtime-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cuda-cupti-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cuda-nvrtc-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cuda-runtime-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cuda-cupti-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cudnn-cu12==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cublas-cu12==12.4.5.8; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cufft-cu12==11.2.1.3; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-curand-cu12==10.3.5.147; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cusolver-cu12==11.6.1.9; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cusparse-cu12==12.3.1.170; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cublas-cu12==12.4.2.65; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cufft-cu12==11.2.0.44; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-curand-cu12==10.3.5.119; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cusolver-cu12==11.6.0.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-cusparse-cu12==12.3.0.142; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-nccl-cu12==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-nvtx-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-nvjitlink-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64'"
 | 
			
		||||
        "nvidia-nvtx-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
 | 
			
		||||
        "nvidia-nvjitlink-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64'"
 | 
			
		||||
    ),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -325,7 +325,6 @@ def generate_wheels_matrix(
 | 
			
		||||
    os: str,
 | 
			
		||||
    arches: Optional[List[str]] = None,
 | 
			
		||||
    python_versions: Optional[List[str]] = None,
 | 
			
		||||
    use_split_build: bool = False,
 | 
			
		||||
) -> List[Dict[str, str]]:
 | 
			
		||||
    package_type = "wheel"
 | 
			
		||||
    if os == "linux" or os == "linux-aarch64" or os == "linux-s390x":
 | 
			
		||||
@ -341,7 +340,7 @@ def generate_wheels_matrix(
 | 
			
		||||
        if os == "linux":
 | 
			
		||||
            arches += CPU_CXX11_ABI_ARCH + CUDA_ARCHES + ROCM_ARCHES + XPU_ARCHES
 | 
			
		||||
        elif os == "windows":
 | 
			
		||||
            arches += CUDA_ARCHES + XPU_ARCHES
 | 
			
		||||
            arches += CUDA_ARCHES
 | 
			
		||||
        elif os == "linux-aarch64":
 | 
			
		||||
            # Only want the one arch as the CPU type is different and
 | 
			
		||||
            # uses different build/test scripts
 | 
			
		||||
@ -366,23 +365,13 @@ def generate_wheels_matrix(
 | 
			
		||||
                else arch_version
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            # TODO: Enable python 3.13 on rocm, aarch64, windows
 | 
			
		||||
            # TODO: Enable python 3.13 on rocm, xpu, aarch64, windows
 | 
			
		||||
            if (
 | 
			
		||||
                gpu_arch_type == "rocm" or (os != "linux" and os != "linux-s390x")
 | 
			
		||||
                gpu_arch_type in ["rocm", "xpu"] or os != "linux"
 | 
			
		||||
            ) and python_version == "3.13":
 | 
			
		||||
                continue
 | 
			
		||||
 | 
			
		||||
            if use_split_build and (
 | 
			
		||||
                arch_version not in ["12.4", "12.1", "11.8", "cpu"] or os != "linux"
 | 
			
		||||
            ):
 | 
			
		||||
                raise RuntimeError(
 | 
			
		||||
                    "Split build is only supported on linux with cuda 12.4, 12.1, 11.8, and cpu.\n"
 | 
			
		||||
                    f"Currently attempting to build on arch version {arch_version} and os {os}.\n"
 | 
			
		||||
                    "Please modify the matrix generation to exclude this combination."
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
            # 12.1 linux wheels require PYTORCH_EXTRA_INSTALL_REQUIREMENTS to install
 | 
			
		||||
 | 
			
		||||
            if (
 | 
			
		||||
                arch_version in ["12.4", "12.1", "11.8"]
 | 
			
		||||
                and os == "linux"
 | 
			
		||||
@ -396,7 +385,6 @@ def generate_wheels_matrix(
 | 
			
		||||
                        "desired_cuda": translate_desired_cuda(
 | 
			
		||||
                            gpu_arch_type, gpu_arch_version
 | 
			
		||||
                        ),
 | 
			
		||||
                        "use_split_build": "True" if use_split_build else "False",
 | 
			
		||||
                        "devtoolset": (
 | 
			
		||||
                            "cxx11-abi" if arch_version == "cuda-aarch64" else ""
 | 
			
		||||
                        ),
 | 
			
		||||
@ -412,8 +400,7 @@ def generate_wheels_matrix(
 | 
			
		||||
                        ),
 | 
			
		||||
                    }
 | 
			
		||||
                )
 | 
			
		||||
                # Special build building to use on Colab. PyThon 3.10 for 12.1 CUDA
 | 
			
		||||
                if python_version == "3.10" and arch_version == "12.1":
 | 
			
		||||
                if arch_version != "cuda-aarch64":
 | 
			
		||||
                    ret.append(
 | 
			
		||||
                        {
 | 
			
		||||
                            "python_version": python_version,
 | 
			
		||||
@ -422,16 +409,40 @@ def generate_wheels_matrix(
 | 
			
		||||
                            "desired_cuda": translate_desired_cuda(
 | 
			
		||||
                                gpu_arch_type, gpu_arch_version
 | 
			
		||||
                            ),
 | 
			
		||||
                            "use_split_build": "True" if use_split_build else "False",
 | 
			
		||||
                            "use_split_build": "True",
 | 
			
		||||
                            "devtoolset": "",
 | 
			
		||||
                            "container_image": WHEEL_CONTAINER_IMAGES[arch_version],
 | 
			
		||||
                            "package_type": package_type,
 | 
			
		||||
                            "pytorch_extra_install_requirements": "",
 | 
			
		||||
                            "build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-full".replace(  # noqa: B950
 | 
			
		||||
                            "pytorch_extra_install_requirements": (
 | 
			
		||||
                                PYTORCH_EXTRA_INSTALL_REQUIREMENTS[arch_version]  # fmt: skip
 | 
			
		||||
                                if os != "linux-aarch64"
 | 
			
		||||
                                else ""
 | 
			
		||||
                            ),
 | 
			
		||||
                            "build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-split".replace(  # noqa: B950
 | 
			
		||||
                                ".", "_"
 | 
			
		||||
                            ),
 | 
			
		||||
                        }
 | 
			
		||||
                    )
 | 
			
		||||
                    # Special build building to use on Colab. PyThon 3.10 for 12.1 CUDA
 | 
			
		||||
                    if python_version == "3.10" and arch_version == "12.1":
 | 
			
		||||
                        ret.append(
 | 
			
		||||
                            {
 | 
			
		||||
                                "python_version": python_version,
 | 
			
		||||
                                "gpu_arch_type": gpu_arch_type,
 | 
			
		||||
                                "gpu_arch_version": gpu_arch_version,
 | 
			
		||||
                                "desired_cuda": translate_desired_cuda(
 | 
			
		||||
                                    gpu_arch_type, gpu_arch_version
 | 
			
		||||
                                ),
 | 
			
		||||
                                "use_split_build": "False",
 | 
			
		||||
                                "devtoolset": "",
 | 
			
		||||
                                "container_image": WHEEL_CONTAINER_IMAGES[arch_version],
 | 
			
		||||
                                "package_type": package_type,
 | 
			
		||||
                                "pytorch_extra_install_requirements": "",
 | 
			
		||||
                                "build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-full".replace(  # noqa: B950
 | 
			
		||||
                                    ".", "_"
 | 
			
		||||
                                ),
 | 
			
		||||
                            }
 | 
			
		||||
                        )
 | 
			
		||||
            else:
 | 
			
		||||
                ret.append(
 | 
			
		||||
                    {
 | 
			
		||||
@ -441,9 +452,10 @@ def generate_wheels_matrix(
 | 
			
		||||
                        "desired_cuda": translate_desired_cuda(
 | 
			
		||||
                            gpu_arch_type, gpu_arch_version
 | 
			
		||||
                        ),
 | 
			
		||||
                        "use_split_build": "True" if use_split_build else "False",
 | 
			
		||||
                        "devtoolset": (
 | 
			
		||||
                            "cxx11-abi" if arch_version == "cpu-cxx11-abi" else ""
 | 
			
		||||
                            "cxx11-abi"
 | 
			
		||||
                            if arch_version in ["cpu-cxx11-abi", "xpu"]
 | 
			
		||||
                            else ""
 | 
			
		||||
                        ),
 | 
			
		||||
                        "container_image": WHEEL_CONTAINER_IMAGES[arch_version],
 | 
			
		||||
                        "package_type": package_type,
 | 
			
		||||
@ -452,12 +464,11 @@ def generate_wheels_matrix(
 | 
			
		||||
                        ),
 | 
			
		||||
                        "pytorch_extra_install_requirements": (
 | 
			
		||||
                            PYTORCH_EXTRA_INSTALL_REQUIREMENTS["12.1"]  # fmt: skip
 | 
			
		||||
                            if os != "linux" and gpu_arch_type != "xpu"
 | 
			
		||||
                            if os != "linux"
 | 
			
		||||
                            else ""
 | 
			
		||||
                        ),
 | 
			
		||||
                    }
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
    return ret
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								.github/scripts/generate_ci_workflows.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								.github/scripts/generate_ci_workflows.py
									
									
									
									
										vendored
									
									
								
							@ -61,7 +61,6 @@ class BinaryBuildWorkflow:
 | 
			
		||||
    # Mainly for macos
 | 
			
		||||
    cross_compile_arm64: bool = False
 | 
			
		||||
    macos_runner: str = "macos-14-xlarge"
 | 
			
		||||
    use_split_build: bool = False
 | 
			
		||||
 | 
			
		||||
    def __post_init__(self) -> None:
 | 
			
		||||
        if self.abi_version:
 | 
			
		||||
@ -76,11 +75,6 @@ class BinaryBuildWorkflow:
 | 
			
		||||
            GITHUB_DIR
 | 
			
		||||
            / f"workflows/generated-{self.build_environment}-{self.branches}.yml"
 | 
			
		||||
        )
 | 
			
		||||
        if self.use_split_build:
 | 
			
		||||
            output_file_path = (
 | 
			
		||||
                GITHUB_DIR
 | 
			
		||||
                / f"workflows/generated-{self.build_environment}-{self.branches}-split.yml"
 | 
			
		||||
            )
 | 
			
		||||
        with open(output_file_path, "w") as output_file:
 | 
			
		||||
            GENERATED = "generated"  # Note that please keep the variable GENERATED otherwise phabricator will hide the whole file
 | 
			
		||||
            output_file.writelines([f"# @{GENERATED} DO NOT EDIT MANUALLY\n"])
 | 
			
		||||
@ -116,20 +110,6 @@ LINUX_BINARY_BUILD_WORFKLOWS = [
 | 
			
		||||
            isolated_workflow=True,
 | 
			
		||||
        ),
 | 
			
		||||
    ),
 | 
			
		||||
    BinaryBuildWorkflow(
 | 
			
		||||
        os=OperatingSystem.LINUX,
 | 
			
		||||
        package_type="manywheel",
 | 
			
		||||
        build_configs=generate_binary_build_matrix.generate_wheels_matrix(
 | 
			
		||||
            OperatingSystem.LINUX,
 | 
			
		||||
            use_split_build=True,
 | 
			
		||||
            arches=["11.8", "12.1", "12.4", "cpu"],
 | 
			
		||||
        ),
 | 
			
		||||
        ciflow_config=CIFlowConfig(
 | 
			
		||||
            labels={LABEL_CIFLOW_BINARIES, LABEL_CIFLOW_BINARIES_WHEEL},
 | 
			
		||||
            isolated_workflow=True,
 | 
			
		||||
        ),
 | 
			
		||||
        use_split_build=True,
 | 
			
		||||
    ),
 | 
			
		||||
    BinaryBuildWorkflow(
 | 
			
		||||
        os=OperatingSystem.LINUX,
 | 
			
		||||
        package_type="conda",
 | 
			
		||||
@ -178,25 +158,10 @@ LINUX_BINARY_SMOKE_WORKFLOWS = [
 | 
			
		||||
        build_configs=generate_binary_build_matrix.generate_wheels_matrix(
 | 
			
		||||
            OperatingSystem.LINUX,
 | 
			
		||||
            arches=["11.8", "12.1", "12.4"],
 | 
			
		||||
            python_versions=["3.9"],
 | 
			
		||||
            python_versions=["3.8"],
 | 
			
		||||
        ),
 | 
			
		||||
        branches="main",
 | 
			
		||||
    ),
 | 
			
		||||
    BinaryBuildWorkflow(
 | 
			
		||||
        os=OperatingSystem.LINUX,
 | 
			
		||||
        package_type="manywheel",
 | 
			
		||||
        build_configs=generate_binary_build_matrix.generate_wheels_matrix(
 | 
			
		||||
            OperatingSystem.LINUX,
 | 
			
		||||
            arches=["11.8", "12.1", "12.4"],
 | 
			
		||||
            python_versions=["3.9"],
 | 
			
		||||
            use_split_build=True,
 | 
			
		||||
        ),
 | 
			
		||||
        ciflow_config=CIFlowConfig(
 | 
			
		||||
            labels={LABEL_CIFLOW_PERIODIC},
 | 
			
		||||
        ),
 | 
			
		||||
        branches="main",
 | 
			
		||||
        use_split_build=True,
 | 
			
		||||
    ),
 | 
			
		||||
    BinaryBuildWorkflow(
 | 
			
		||||
        os=OperatingSystem.LINUX,
 | 
			
		||||
        package_type="libtorch",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/scripts/github_utils.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/scripts/github_utils.py
									
									
									
									
										vendored
									
									
								
							@ -46,24 +46,16 @@ def gh_fetch_url_and_headers(
 | 
			
		||||
        with urlopen(Request(url, headers=headers, data=data_, method=method)) as conn:
 | 
			
		||||
            return conn.headers, reader(conn)
 | 
			
		||||
    except HTTPError as err:
 | 
			
		||||
        if (
 | 
			
		||||
            err.code == 403
 | 
			
		||||
            and all(
 | 
			
		||||
                key in err.headers
 | 
			
		||||
                for key in ["X-RateLimit-Limit", "X-RateLimit-Remaining"]
 | 
			
		||||
            )
 | 
			
		||||
            and int(err.headers["X-RateLimit-Remaining"]) == 0
 | 
			
		||||
        if err.code == 403 and all(
 | 
			
		||||
            key in err.headers for key in ["X-RateLimit-Limit", "X-RateLimit-Used"]
 | 
			
		||||
        ):
 | 
			
		||||
            print(
 | 
			
		||||
                f"""{url}
 | 
			
		||||
                Rate limit exceeded:
 | 
			
		||||
                f"""Rate limit exceeded:
 | 
			
		||||
                Used: {err.headers['X-RateLimit-Used']}
 | 
			
		||||
                Limit: {err.headers['X-RateLimit-Limit']}
 | 
			
		||||
                Remaining: {err.headers['X-RateLimit-Remaining']}
 | 
			
		||||
                Resets at: {err.headers['x-RateLimit-Reset']}"""
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            print(f"Error fetching {url} {err}")
 | 
			
		||||
        raise
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								.github/scripts/gitutils.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/scripts/gitutils.py
									
									
									
									
										vendored
									
									
								
							@ -445,6 +445,7 @@ def retries_decorator(
 | 
			
		||||
                    print(
 | 
			
		||||
                        f'Attempt {idx} of {num_retries} to call {f.__name__} failed with "{e}"'
 | 
			
		||||
                    )
 | 
			
		||||
                    pass
 | 
			
		||||
            return cast(T, rc)
 | 
			
		||||
 | 
			
		||||
        return wrapper
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										131
									
								
								.github/scripts/runner_determinator.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										131
									
								
								.github/scripts/runner_determinator.py
									
									
									
									
										vendored
									
									
								
							@ -1,29 +1,5 @@
 | 
			
		||||
# flake8: noqa: G004
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
This runner determinator is used to determine which set of runners to run a
 | 
			
		||||
GitHub job on. It uses the first comment of a GitHub issue (by default
 | 
			
		||||
https://github.com/pytorch/test-infra/issues/5132) as a user list to determine
 | 
			
		||||
which users will get their jobs to run on experimental runners. This user list
 | 
			
		||||
is also a comma separated list of additional features or experiments which the
 | 
			
		||||
user could be opted in to.
 | 
			
		||||
 | 
			
		||||
The user list has the following rules:
 | 
			
		||||
 | 
			
		||||
- Users are GitHub usernames with the @ prefix
 | 
			
		||||
- If the first line is a "*" then all users will use the new runners
 | 
			
		||||
- If the first line is a "!" then all users will use the old runners
 | 
			
		||||
- Each user is also a comma-separated list of features/experiments to enable
 | 
			
		||||
- A "#" prefix indicates the user is opted out of the new runners but is opting
 | 
			
		||||
  into features/experiments.
 | 
			
		||||
 | 
			
		||||
Example user list:
 | 
			
		||||
 | 
			
		||||
    @User1
 | 
			
		||||
    @User2,amz2023
 | 
			
		||||
    #@UserOptOutOfNewRunner,amz2023
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
@ -38,11 +14,7 @@ WORKFLOW_LABEL_META = ""  # use meta runners
 | 
			
		||||
WORKFLOW_LABEL_LF = "lf."  # use runners from the linux foundation
 | 
			
		||||
WORKFLOW_LABEL_LF_CANARY = "lf.c."  # use canary runners from the linux foundation
 | 
			
		||||
 | 
			
		||||
RUNNER_AMI_LEGACY = ""
 | 
			
		||||
RUNNER_AMI_AMZ2023 = "amz2023"
 | 
			
		||||
 | 
			
		||||
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT", "")
 | 
			
		||||
GH_OUTPUT_KEY_AMI = "runner-ami"
 | 
			
		||||
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -137,14 +109,11 @@ def get_issue(gh: Github, repo: str, issue_num: int) -> Issue:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_potential_pr_author(
 | 
			
		||||
    github_token: str, repo: str, username: str, ref_type: str, ref_name: str
 | 
			
		||||
    gh: Github, repo: str, username: str, ref_type: str, ref_name: str
 | 
			
		||||
) -> str:
 | 
			
		||||
    # If the trigger was a new tag added by a bot, this is a ciflow case
 | 
			
		||||
    # Fetch the actual username from the original PR. The PR number is
 | 
			
		||||
    # embedded in the tag name: ciflow/<name>/<pr-number>
 | 
			
		||||
 | 
			
		||||
    gh = get_gh_client(github_token)
 | 
			
		||||
 | 
			
		||||
    if username == "pytorch-bot[bot]" and ref_type == "tag":
 | 
			
		||||
        split_tag = ref_name.split("/")
 | 
			
		||||
        if (
 | 
			
		||||
@ -166,32 +135,22 @@ def get_potential_pr_author(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def is_exception_branch(branch: str) -> bool:
 | 
			
		||||
    """
 | 
			
		||||
    Branches that get opted out of all experiments and should always use Meta runners
 | 
			
		||||
    """
 | 
			
		||||
    return branch.split("/")[0] in {"main", "nightly", "release", "landchecks"}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_fleet(rollout_state: str, workflow_requestors: Iterable[str]) -> str:
 | 
			
		||||
    """
 | 
			
		||||
    Determines if the job should run on the LF fleet or the Meta fleet
 | 
			
		||||
 | 
			
		||||
    Returns:
 | 
			
		||||
        The appropriate label prefix for the runner, corresponding to the fleet to use.
 | 
			
		||||
        This gets prefixed to the very start of the runner label.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
def get_workflow_type(issue: Issue, workflow_requestors: Iterable[str]) -> str:
 | 
			
		||||
    try:
 | 
			
		||||
        if rollout_state[0] == "!":
 | 
			
		||||
        first_comment = issue.get_comments()[0].body.strip("\n\t ")
 | 
			
		||||
 | 
			
		||||
        if first_comment[0] == "!":
 | 
			
		||||
            log.info("LF Workflows are disabled for everyone. Using meta runners.")
 | 
			
		||||
            return WORKFLOW_LABEL_META
 | 
			
		||||
        elif rollout_state[0] == "*":
 | 
			
		||||
        elif first_comment[0] == "*":
 | 
			
		||||
            log.info("LF Workflows are enabled for everyone. Using LF runners.")
 | 
			
		||||
            return WORKFLOW_LABEL_LF
 | 
			
		||||
        else:
 | 
			
		||||
            all_opted_in_users = {
 | 
			
		||||
                usr_raw.strip("\n\t@ ").split(",")[0]
 | 
			
		||||
                for usr_raw in rollout_state.split()
 | 
			
		||||
                usr_raw.strip("\n\t@ ") for usr_raw in first_comment.split()
 | 
			
		||||
            }
 | 
			
		||||
            opted_in_requestors = {
 | 
			
		||||
                usr for usr in workflow_requestors if usr in all_opted_in_users
 | 
			
		||||
@ -214,106 +173,42 @@ def get_fleet(rollout_state: str, workflow_requestors: Iterable[str]) -> str:
 | 
			
		||||
        return WORKFLOW_LABEL_META
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_optin_feature(
 | 
			
		||||
    rollout_state: str, workflow_requestors: Iterable[str], feature: str, fallback: str
 | 
			
		||||
) -> str:
 | 
			
		||||
    """
 | 
			
		||||
    Used to dynamically opt in jobs to specific runner-type variants.
 | 
			
		||||
 | 
			
		||||
    Returns:
 | 
			
		||||
        The runner-type's variant name if the user has opted in to the feature, otherwise returns an empty string.
 | 
			
		||||
        This variant name is prefixed to the runner-type in the label.
 | 
			
		||||
    """
 | 
			
		||||
    try:
 | 
			
		||||
        userlist = {u.lstrip("#").strip("\n\t@ ") for u in rollout_state.split()}
 | 
			
		||||
        all_opted_in_users = set()
 | 
			
		||||
        for user in userlist:
 | 
			
		||||
            for i in user.split(","):
 | 
			
		||||
                if i == feature:
 | 
			
		||||
                    all_opted_in_users.add(user.split(",")[0])
 | 
			
		||||
        opted_in_requestors = {
 | 
			
		||||
            usr for usr in workflow_requestors if usr in all_opted_in_users
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if opted_in_requestors:
 | 
			
		||||
            log.info(
 | 
			
		||||
                f"Feature {feature} is enabled for {', '.join(opted_in_requestors)}. Using feature {feature}."
 | 
			
		||||
            )
 | 
			
		||||
            return feature
 | 
			
		||||
        else:
 | 
			
		||||
            log.info(
 | 
			
		||||
                f"Feature {feature} is disabled for {', '.join(workflow_requestors)}. Using fallback \"{fallback}\"."
 | 
			
		||||
            )
 | 
			
		||||
            return fallback
 | 
			
		||||
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        log.error(
 | 
			
		||||
            f'Failed to determine if user has opted-in to feature {feature}. Using fallback "{fallback}". Exception: {e}'
 | 
			
		||||
        )
 | 
			
		||||
        return fallback
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_rollout_state_from_issue(github_token: str, repo: str, issue_num: int) -> str:
 | 
			
		||||
    """
 | 
			
		||||
    Gets the first comment of the issue, which contains the desired rollout state.
 | 
			
		||||
 | 
			
		||||
    The default issue we use - https://github.com/pytorch/test-infra/issues/5132
 | 
			
		||||
    """
 | 
			
		||||
    gh = get_gh_client(github_token)
 | 
			
		||||
    issue = get_issue(gh, repo, issue_num)
 | 
			
		||||
    return str(issue.get_comments()[0].body.strip("\n\t "))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main() -> None:
 | 
			
		||||
    args = parse_args()
 | 
			
		||||
 | 
			
		||||
    if args.github_ref_type == "branch" and is_exception_branch(args.github_branch):
 | 
			
		||||
        log.info(f"Exception branch: '{args.github_branch}', using meta runners")
 | 
			
		||||
        label_type = WORKFLOW_LABEL_META
 | 
			
		||||
        runner_ami = RUNNER_AMI_LEGACY
 | 
			
		||||
    else:
 | 
			
		||||
        try:
 | 
			
		||||
            rollout_state = get_rollout_state_from_issue(
 | 
			
		||||
                args.github_token, args.github_issue_repo, args.github_issue
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            gh = get_gh_client(args.github_token)
 | 
			
		||||
            # The default issue we use - https://github.com/pytorch/test-infra/issues/5132
 | 
			
		||||
            issue = get_issue(gh, args.github_issue_repo, args.github_issue)
 | 
			
		||||
            username = get_potential_pr_author(
 | 
			
		||||
                args.github_token,
 | 
			
		||||
                gh,
 | 
			
		||||
                args.github_repo,
 | 
			
		||||
                args.github_actor,
 | 
			
		||||
                args.github_ref_type,
 | 
			
		||||
                args.github_branch,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            label_type = get_fleet(
 | 
			
		||||
                rollout_state,
 | 
			
		||||
            label_type = get_workflow_type(
 | 
			
		||||
                issue,
 | 
			
		||||
                (
 | 
			
		||||
                    args.github_issue_owner,
 | 
			
		||||
                    username,
 | 
			
		||||
                ),
 | 
			
		||||
            )
 | 
			
		||||
            runner_ami = get_optin_feature(
 | 
			
		||||
                rollout_state=rollout_state,
 | 
			
		||||
                workflow_requestors=(
 | 
			
		||||
                    args.github_issue_owner,
 | 
			
		||||
                    username,
 | 
			
		||||
                ),
 | 
			
		||||
                feature=RUNNER_AMI_AMZ2023,
 | 
			
		||||
                fallback=RUNNER_AMI_LEGACY,
 | 
			
		||||
            )
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            log.error(
 | 
			
		||||
                f"Failed to get issue. Falling back to meta runners. Exception: {e}"
 | 
			
		||||
            )
 | 
			
		||||
            label_type = WORKFLOW_LABEL_META
 | 
			
		||||
            runner_ami = RUNNER_AMI_LEGACY
 | 
			
		||||
 | 
			
		||||
    # For Canary builds use canary runners
 | 
			
		||||
    if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
 | 
			
		||||
        label_type = WORKFLOW_LABEL_LF_CANARY
 | 
			
		||||
 | 
			
		||||
    set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
 | 
			
		||||
    set_github_output(GH_OUTPUT_KEY_AMI, runner_ami)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								.github/scripts/s390x-ci/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								.github/scripts/s390x-ci/README.md
									
									
									
									
										vendored
									
									
								
							@ -3,7 +3,7 @@
 | 
			
		||||
## Install prerequisites.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ sudo dnf install podman podman-docker jq
 | 
			
		||||
$ sudo dnf install docker
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Add services.
 | 
			
		||||
@ -27,48 +27,23 @@ $ sudo systemctl enable --now qemu-user-static
 | 
			
		||||
 | 
			
		||||
## Rebuild the image
 | 
			
		||||
 | 
			
		||||
First build s390x builder image `docker.io/pytorch/manylinuxs390x-builder`,
 | 
			
		||||
using following commands:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ cd ~
 | 
			
		||||
$ git clone https://github.com/pytorch/pytorch
 | 
			
		||||
$ cd pytorch
 | 
			
		||||
$ git submodule update --init --recursive
 | 
			
		||||
$ GPU_ARCH_TYPE=cpu-s390x "$(pwd)/.ci/docker/manywheel/build.sh" manylinuxs390x-builder
 | 
			
		||||
$ docker image tag localhost/pytorch/manylinuxs390x-builder docker.io/pytorch/manylinuxs390x-builder:cpu-s390x
 | 
			
		||||
$ docker image save -o ~/manywheel-s390x.tar docker.io/pytorch/manylinuxs390x-builder:cpu-s390x
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Next step is to build `actions-runner` image using:
 | 
			
		||||
In order to build or update the `iiilinuxibmcom/actions-runner` image, e.g. to get the
 | 
			
		||||
latest OS security fixes, use the following commands:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ cd self-hosted-builder
 | 
			
		||||
$ sudo docker build \
 | 
			
		||||
      --build-arg repo=<owner>/<name> \
 | 
			
		||||
      --build-arg token=<***> \
 | 
			
		||||
      --pull \
 | 
			
		||||
      -f actions-runner.Dockerfile \
 | 
			
		||||
      -t iiilinuxibmcom/actions-runner.<name> \
 | 
			
		||||
      -t iiilinuxibmcom/actions-runner \
 | 
			
		||||
      .
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If there are failures, ensure that selinux doesn't prevent it from working.
 | 
			
		||||
If it fails, ensure that selinux doesn't prevent it from working.
 | 
			
		||||
In worst case, selinux can be disabled with `setenforce 0`.
 | 
			
		||||
 | 
			
		||||
Now prepare all necessary files for runner registration:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ sudo mkdir -p /etc/actions-runner/<name>
 | 
			
		||||
$ sudo chmod 700 /etc/actions-runner/<name>
 | 
			
		||||
$ sudo /bin/cp <github_app_private_key_file> /etc/actions-runner/<name>/key_private.pem
 | 
			
		||||
$ sudo echo <github_app_id> | sudo tee /etc/actions-runner/<name>/appid.env
 | 
			
		||||
$ sudo echo <github_app_install_id> | sudo tee /etc/actions-runner/<name>/installid.env
 | 
			
		||||
$ sudo echo NAME=<worker_name> | sudo tee    /etc/actions-runner/<name>/env
 | 
			
		||||
$ sudo echo ORG=<github_org>   | sudo tee -a /etc/actions-runner/<name>/env
 | 
			
		||||
$ cd self-hosted-builder
 | 
			
		||||
$ sudo /bin/cp helpers/*.sh /usr/local/bin/
 | 
			
		||||
$ sudo chmod 755 /usr/local/bin/app_token.sh /usr/local/bin/gh_token_generator.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Autostart the runner.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,12 @@
 | 
			
		||||
# Self-Hosted IBM Z Github Actions Runner.
 | 
			
		||||
 | 
			
		||||
# Temporary image: amd64 dependencies.
 | 
			
		||||
FROM docker.io/amd64/ubuntu:23.10 as ld-prefix
 | 
			
		||||
FROM docker.io/amd64/ubuntu:22.04 as ld-prefix
 | 
			
		||||
ENV DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
RUN apt-get update && apt-get -y install ca-certificates libicu72 libssl3
 | 
			
		||||
RUN apt-get update && apt-get -y install ca-certificates libicu70 libssl3
 | 
			
		||||
 | 
			
		||||
# Main image.
 | 
			
		||||
FROM docker.io/s390x/ubuntu:23.10
 | 
			
		||||
FROM docker.io/s390x/ubuntu:22.04
 | 
			
		||||
 | 
			
		||||
# Packages for pytorch building and testing.
 | 
			
		||||
ENV DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
@ -16,7 +16,6 @@ RUN apt-get update && apt-get -y install \
 | 
			
		||||
        gcc \
 | 
			
		||||
        git \
 | 
			
		||||
        jq \
 | 
			
		||||
        zip \
 | 
			
		||||
        libxml2-dev \
 | 
			
		||||
        libxslt-dev \
 | 
			
		||||
        ninja-build \
 | 
			
		||||
@ -44,28 +43,24 @@ COPY fs/ /
 | 
			
		||||
 | 
			
		||||
RUN chmod +x /usr/bin/actions-runner /usr/bin/entrypoint
 | 
			
		||||
 | 
			
		||||
# install podman
 | 
			
		||||
RUN apt -y install podman podman-docker
 | 
			
		||||
 | 
			
		||||
# amd64 Github Actions Runner.
 | 
			
		||||
RUN useradd -m actions-runner
 | 
			
		||||
USER actions-runner
 | 
			
		||||
WORKDIR /home/actions-runner
 | 
			
		||||
RUN curl -L https://github.com/actions/runner/releases/download/v2.309.0/actions-runner-linux-x64-2.309.0.tar.gz | tar -xz
 | 
			
		||||
 | 
			
		||||
# set up python virtual environment which is later used by runner.
 | 
			
		||||
# build workflows use "python -m pip install ...",
 | 
			
		||||
# and it doesn't work for non-root user
 | 
			
		||||
RUN virtualenv --system-site-packages venv
 | 
			
		||||
# repository
 | 
			
		||||
ARG repo
 | 
			
		||||
 | 
			
		||||
# copy prebuilt manywheel docker image for builds and tests
 | 
			
		||||
# build command is:
 | 
			
		||||
# GPU_ARCH_TYPE=cpu-s390x "$(pwd)/manywheel/build_docker.sh"
 | 
			
		||||
# and save command is:
 | 
			
		||||
# docker image save -o manywheel-s390x.tar pytorch/manylinuxs390x-builder:cpu-s390x
 | 
			
		||||
#
 | 
			
		||||
COPY --chown=actions-runner:actions-runner manywheel-s390x.tar /home/actions-runner/manywheel-s390x.tar
 | 
			
		||||
# repository token
 | 
			
		||||
ARG token
 | 
			
		||||
 | 
			
		||||
RUN curl -L https://github.com/actions/runner/releases/download/v2.317.0/actions-runner-linux-x64-2.317.0.tar.gz | tar -xz
 | 
			
		||||
RUN ./config.sh \
 | 
			
		||||
        --unattended \
 | 
			
		||||
        --url "https://github.com/${repo}" \
 | 
			
		||||
        --token "${token}" \
 | 
			
		||||
        --no-default-labels \
 | 
			
		||||
        --labels self-hosted,linux.s390x
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["/usr/bin/entrypoint"]
 | 
			
		||||
CMD ["/usr/bin/actions-runner"]
 | 
			
		||||
 | 
			
		||||
@ -8,16 +8,12 @@ StartLimitIntervalSec=0
 | 
			
		||||
Type=simple
 | 
			
		||||
Restart=always
 | 
			
		||||
ExecStartPre=-/usr/bin/docker rm --force actions-runner.%i
 | 
			
		||||
ExecStartPre=-/usr/local/bin/gh_token_generator.sh /etc/actions-runner/%i/appid.env /etc/actions-runner/%i/installid.env /etc/actions-runner/%i/key_private.pem /etc/actions-runner/%i/ghtoken.env
 | 
			
		||||
ExecStart=/usr/bin/docker run \
 | 
			
		||||
              --env-file=/etc/actions-runner/%i/env \
 | 
			
		||||
              --env-file=/etc/actions-runner/%i/ghtoken.env \
 | 
			
		||||
              --init \
 | 
			
		||||
              --interactive \
 | 
			
		||||
              --name=actions-runner.%i \
 | 
			
		||||
              --rm \
 | 
			
		||||
              --privileged \
 | 
			
		||||
              iiilinuxibmcom/actions-runner.%i
 | 
			
		||||
              iiilinuxibmcom/actions-runner
 | 
			
		||||
ExecStop=/bin/sh -c "docker exec actions-runner.%i kill -INT -- -1"
 | 
			
		||||
ExecStop=/bin/sh -c "docker wait actions-runner.%i"
 | 
			
		||||
ExecStop=/bin/sh -c "docker rm actions-runner.%i"
 | 
			
		||||
 | 
			
		||||
@ -2,45 +2,5 @@
 | 
			
		||||
 | 
			
		||||
set -e -u
 | 
			
		||||
 | 
			
		||||
# first import docker image
 | 
			
		||||
if [ -f ./manywheel-s390x.tar ] ; then
 | 
			
		||||
        docker image load --input manywheel-s390x.tar
 | 
			
		||||
        docker image tag docker.io/pytorch/manylinuxs390x-builder:cpu-s390x docker.io/pytorch/manylinuxs390x-builder:cpu-s390x-main
 | 
			
		||||
        rm -f manywheel-s390x.tar
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
token_file=registration-token.json
 | 
			
		||||
 | 
			
		||||
# Generate registration token
 | 
			
		||||
curl \
 | 
			
		||||
        -X POST \
 | 
			
		||||
        -H "Accept: application/vnd.github.v3+json" \
 | 
			
		||||
        -H "Authorization: Bearer ${ACCESS_TOKEN}" \
 | 
			
		||||
        "https://api.github.com/orgs/${ORG}/actions/runners/registration-token" \
 | 
			
		||||
        -o "$token_file"
 | 
			
		||||
 | 
			
		||||
unset ACCESS_TOKEN
 | 
			
		||||
 | 
			
		||||
# register runner as ephemeral runner
 | 
			
		||||
# it does one job, stops and unregisters
 | 
			
		||||
registration_token=$(jq --raw-output .token "$token_file")
 | 
			
		||||
 | 
			
		||||
./config.sh \
 | 
			
		||||
        --unattended \
 | 
			
		||||
        --ephemeral \
 | 
			
		||||
        --url "https://github.com/${ORG}" \
 | 
			
		||||
        --token "${registration_token}" \
 | 
			
		||||
        --name "${NAME}" \
 | 
			
		||||
        --no-default-labels \
 | 
			
		||||
        --labels self-hosted,linux.s390x
 | 
			
		||||
 | 
			
		||||
unset registration_token
 | 
			
		||||
rm -f "$token_file"
 | 
			
		||||
 | 
			
		||||
# enter into python virtual environment.
 | 
			
		||||
# build workflows use "python -m pip install ...",
 | 
			
		||||
# and it doesn't work for non-root user
 | 
			
		||||
source venv/bin/activate
 | 
			
		||||
 | 
			
		||||
# Run one job.
 | 
			
		||||
./run.sh
 | 
			
		||||
./run.sh --once
 | 
			
		||||
 | 
			
		||||
@ -1,84 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#
 | 
			
		||||
# Request an ACCESS_TOKEN to be used by a GitHub APP
 | 
			
		||||
# Environment variable that need to be set up:
 | 
			
		||||
# * APP_ID, the GitHub's app ID
 | 
			
		||||
# * INSTALL_ID, the Github's app's installation ID
 | 
			
		||||
# * APP_PRIVATE_KEY, the content of GitHub app's private key in PEM format.
 | 
			
		||||
#
 | 
			
		||||
# https://github.com/orgs/community/discussions/24743#discussioncomment-3245300
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
set -o pipefail
 | 
			
		||||
 | 
			
		||||
_GITHUB_HOST=${GITHUB_HOST:="github.com"}
 | 
			
		||||
 | 
			
		||||
# If URL is not github.com then use the enterprise api endpoint
 | 
			
		||||
if [[ ${GITHUB_HOST} = "github.com" ]]; then
 | 
			
		||||
  URI="https://api.${_GITHUB_HOST}"
 | 
			
		||||
else
 | 
			
		||||
  URI="https://${_GITHUB_HOST}/api/v3"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
API_VERSION=v3
 | 
			
		||||
API_HEADER="Accept: application/vnd.github.${API_VERSION}+json"
 | 
			
		||||
CONTENT_LENGTH_HEADER="Content-Length: 0"
 | 
			
		||||
APP_INSTALLATIONS_URI="${URI}/app/installations"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# JWT parameters based off
 | 
			
		||||
# https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app
 | 
			
		||||
#
 | 
			
		||||
# JWT token issuance and expiration parameters
 | 
			
		||||
JWT_IAT_DRIFT=60
 | 
			
		||||
JWT_EXP_DELTA=600
 | 
			
		||||
 | 
			
		||||
JWT_JOSE_HEADER='{
 | 
			
		||||
    "alg": "RS256",
 | 
			
		||||
    "typ": "JWT"
 | 
			
		||||
}'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
build_jwt_payload() {
 | 
			
		||||
    now=$(date +%s)
 | 
			
		||||
    iat=$((now - JWT_IAT_DRIFT))
 | 
			
		||||
    jq -c \
 | 
			
		||||
        --arg iat_str "${iat}" \
 | 
			
		||||
        --arg exp_delta_str "${JWT_EXP_DELTA}" \
 | 
			
		||||
        --arg app_id_str "${APP_ID}" \
 | 
			
		||||
    '
 | 
			
		||||
        ($iat_str | tonumber) as $iat
 | 
			
		||||
        | ($exp_delta_str | tonumber) as $exp_delta
 | 
			
		||||
        | ($app_id_str | tonumber) as $app_id
 | 
			
		||||
        | .iat = $iat
 | 
			
		||||
        | .exp = ($iat + $exp_delta)
 | 
			
		||||
        | .iss = $app_id
 | 
			
		||||
    ' <<< "{}" | tr -d '\n'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
base64url() {
 | 
			
		||||
    base64 | tr '+/' '-_' | tr -d '=\n'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rs256_sign() {
 | 
			
		||||
    openssl dgst -binary -sha256 -sign <(echo "$1")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
request_access_token() {
 | 
			
		||||
    jwt_payload=$(build_jwt_payload)
 | 
			
		||||
    encoded_jwt_parts=$(base64url <<<"${JWT_JOSE_HEADER}").$(base64url <<<"${jwt_payload}")
 | 
			
		||||
    encoded_mac=$(echo -n "$encoded_jwt_parts" | rs256_sign "${APP_PRIVATE_KEY}" | base64url)
 | 
			
		||||
    generated_jwt="${encoded_jwt_parts}.${encoded_mac}"
 | 
			
		||||
 | 
			
		||||
    auth_header="Authorization: Bearer ${generated_jwt}"
 | 
			
		||||
 | 
			
		||||
    app_installations_response=$(curl -sX POST \
 | 
			
		||||
        -H "${auth_header}" \
 | 
			
		||||
        -H "${API_HEADER}" \
 | 
			
		||||
        --header "X-GitHub-Api-Version: 2022-11-28" \
 | 
			
		||||
        --url "https://api.github.com/app/installations/${INSTALL_ID}/access_tokens" \
 | 
			
		||||
    )
 | 
			
		||||
    echo "$app_installations_response" | jq --raw-output '.token'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
request_access_token
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
SCRIPT_DIR=$(dirname "$0")
 | 
			
		||||
APP_ID=$1
 | 
			
		||||
INSTALL_ID=$2
 | 
			
		||||
APP_PRIVATE_KEY=$3
 | 
			
		||||
DST_FILE="$4"
 | 
			
		||||
 | 
			
		||||
ACCESS_TOKEN="$(APP_ID="$(<"${APP_ID}")" INSTALL_ID="$(<"${INSTALL_ID}")" APP_PRIVATE_KEY="$(<"${APP_PRIVATE_KEY}")" "${SCRIPT_DIR}/app_token.sh")"
 | 
			
		||||
echo "ACCESS_TOKEN=${ACCESS_TOKEN}" > "${DST_FILE}"
 | 
			
		||||
							
								
								
									
										1
									
								
								.github/scripts/test_check_labels.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/scripts/test_check_labels.py
									
									
									
									
										vendored
									
									
								
							@ -18,7 +18,6 @@ def mock_parse_args() -> object:
 | 
			
		||||
    class Object:
 | 
			
		||||
        def __init__(self) -> None:
 | 
			
		||||
            self.pr_num = 76123
 | 
			
		||||
            self.exit_non_zero = False
 | 
			
		||||
 | 
			
		||||
    return Object()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								.github/scripts/trymerge.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/scripts/trymerge.py
									
									
									
									
										vendored
									
									
								
							@ -1116,20 +1116,15 @@ class GitHubPR:
 | 
			
		||||
        msg = self.get_title() + f" (#{self.pr_num})\n\n"
 | 
			
		||||
        msg += msg_body
 | 
			
		||||
 | 
			
		||||
        # Mention PR co-authors
 | 
			
		||||
        for author_login, author_name in self.get_authors().items():
 | 
			
		||||
            if author_login != self.get_pr_creator_login():
 | 
			
		||||
                msg += f"\nCo-authored-by: {author_name}"
 | 
			
		||||
 | 
			
		||||
        msg += f"\nPull Request resolved: {self.get_pr_url()}\n"
 | 
			
		||||
        msg += f"Approved by: {approved_by_urls}\n"
 | 
			
		||||
        if ghstack_deps:
 | 
			
		||||
            msg += f"ghstack dependencies: {', '.join([f'#{pr.pr_num}' for pr in ghstack_deps])}\n"
 | 
			
		||||
 | 
			
		||||
        # Mention PR co-authors, which should be at the end of the message
 | 
			
		||||
        # And separated from the body by two newlines
 | 
			
		||||
        first_coauthor = True
 | 
			
		||||
        for author_login, author_name in self.get_authors().items():
 | 
			
		||||
            if author_login != self.get_pr_creator_login():
 | 
			
		||||
                if first_coauthor:
 | 
			
		||||
                    msg, first_coauthor = (msg + "\n", False)
 | 
			
		||||
                msg += f"\nCo-authored-by: {author_name}"
 | 
			
		||||
 | 
			
		||||
        return msg
 | 
			
		||||
 | 
			
		||||
    def add_numbered_label(self, label_base: str, dry_run: bool) -> None:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/templates/common.yml.j2
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/templates/common.yml.j2
									
									
									
									
										vendored
									
									
								
							@ -1,14 +1,14 @@
 | 
			
		||||
{%- set upload_artifact_s3_action = "seemethere/upload-artifact-s3@v5" -%}
 | 
			
		||||
{%- set download_artifact_s3_action = "seemethere/download-artifact-s3@v4" -%}
 | 
			
		||||
{%- set upload_artifact_action = "actions/upload-artifact@v4.4.0" -%}
 | 
			
		||||
{%- set download_artifact_action = "actions/download-artifact@v4.1.7" -%}
 | 
			
		||||
{%- set upload_artifact_action = "actions/upload-artifact@v3" -%}
 | 
			
		||||
{%- set download_artifact_action = "actions/download-artifact@v3" -%}
 | 
			
		||||
 | 
			
		||||
{%- set timeout_minutes = 240 -%}
 | 
			
		||||
 | 
			
		||||
# NOTE: If testing pytorch/builder changes you can change this variable to change what pytorch/builder reference
 | 
			
		||||
#       the binary builds will check out
 | 
			
		||||
{%- set builder_repo = "pytorch/builder" -%}
 | 
			
		||||
{%- set builder_branch = "release/2.5" -%}
 | 
			
		||||
{%- set builder_branch = "main" -%}
 | 
			
		||||
 | 
			
		||||
{%- macro concurrency(build_environment) -%}
 | 
			
		||||
concurrency:
 | 
			
		||||
@ -36,7 +36,7 @@ concurrency:
 | 
			
		||||
{%- macro setup_ec2_windows() -%}
 | 
			
		||||
      !{{ display_ec2_information() }}
 | 
			
		||||
      - name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
@ -52,32 +52,19 @@ env:
 | 
			
		||||
!{{ common.concurrency(build_environment) }}
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  get-label-type:
 | 
			
		||||
    name: get-label-type
 | 
			
		||||
    uses: ./.github/workflows/_runner-determinator.yml
 | 
			
		||||
    with:
 | 
			
		||||
      triggering_actor: ${{ github.triggering_actor }}
 | 
			
		||||
      issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }}
 | 
			
		||||
      curr_branch: ${{ github.head_ref || github.ref_name }}
 | 
			
		||||
      curr_ref_type: ${{ github.ref_type }}
 | 
			
		||||
 | 
			
		||||
{%- for config in build_configs %}
 | 
			
		||||
  !{{ config["build_name"] }}-build:
 | 
			
		||||
    if: ${{ github.repository_owner == 'pytorch' }}
 | 
			
		||||
    uses: ./.github/workflows/_binary-build-linux.yml
 | 
			
		||||
    needs: get-label-type
 | 
			
		||||
    with:!{{ upload.binary_env_as_input(config) }}
 | 
			
		||||
      {%- if "aarch64" in build_environment %}
 | 
			
		||||
      runs_on: linux.arm64.m7g.4xlarge.ephemeral
 | 
			
		||||
      runs_on: linux.arm64.m7g.4xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
      {%- elif "s390x" in build_environment %}
 | 
			
		||||
      runs_on: linux.s390x
 | 
			
		||||
      ALPINE_IMAGE: "docker.io/s390x/alpine"
 | 
			
		||||
      {%- elif "conda" in build_environment and config["gpu_arch_type"] == "cuda" %}
 | 
			
		||||
      runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
 | 
			
		||||
      runs_on: linux.24xlarge.ephemeral
 | 
			
		||||
      {%- else %}
 | 
			
		||||
      runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      {%- endif %}
 | 
			
		||||
      build_name: !{{ config["build_name"] }}
 | 
			
		||||
      build_environment: !{{ build_environment }}
 | 
			
		||||
@ -93,9 +80,7 @@ jobs:
 | 
			
		||||
  {%- if config["gpu_arch_type"] != "cuda-aarch64" %}
 | 
			
		||||
  !{{ config["build_name"] }}-test:  # Testing
 | 
			
		||||
    if: ${{ github.repository_owner == 'pytorch' }}
 | 
			
		||||
    needs:
 | 
			
		||||
      - !{{ config["build_name"] }}-build
 | 
			
		||||
      - get-label-type
 | 
			
		||||
    needs: !{{ config["build_name"] }}-build
 | 
			
		||||
    {%- if config["gpu_arch_type"] not in ["rocm", "xpu"] %}
 | 
			
		||||
    uses: ./.github/workflows/_binary-test-linux.yml
 | 
			
		||||
    with:!{{ upload.binary_env_as_input(config) }}
 | 
			
		||||
@ -110,10 +95,8 @@ jobs:
 | 
			
		||||
      {%- elif config["gpu_arch_type"] == "rocm" %}
 | 
			
		||||
      runs_on: linux.rocm.gpu
 | 
			
		||||
      {%- elif config["gpu_arch_type"] == "cuda" %}
 | 
			
		||||
      runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
 | 
			
		||||
      runs_on: linux.4xlarge.nvidia.gpu
 | 
			
		||||
      {%- else %}
 | 
			
		||||
      runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
 | 
			
		||||
      runs_on: linux.4xlarge
 | 
			
		||||
      {%- endif %}
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -142,10 +125,10 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: !{{ config["container_image"] }}
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
@ -164,13 +147,13 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      - name: ROCm set GPU_FLAG
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: !{{ config["container_image"] }}
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
 | 
			
		||||
@ -64,6 +64,9 @@ jobs:
 | 
			
		||||
    {%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0  %}
 | 
			
		||||
      PYTORCH_EXTRA_INSTALL_REQUIREMENTS: !{{ config.pytorch_extra_install_requirements }}
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
      # For sccache access (only on non-forked PRs)
 | 
			
		||||
      AWS_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
 | 
			
		||||
      AWS_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
 | 
			
		||||
    steps:
 | 
			
		||||
      !{{ set_runner_specific_vars() }}
 | 
			
		||||
      - name: Install conda and dependencies
 | 
			
		||||
@ -78,10 +81,10 @@ jobs:
 | 
			
		||||
          elif [ -d "/Applications/Xcode_13.3.1.app" ]; then
 | 
			
		||||
            echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
 | 
			
		||||
          fi
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      - name: Install sccache (only for non-forked PRs, and pushes to trunk)
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@v2.8.2
 | 
			
		||||
        if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 5
 | 
			
		||||
@ -101,7 +104,7 @@ jobs:
 | 
			
		||||
          # shellcheck disable=SC1091
 | 
			
		||||
          source "${RUNNER_TEMP}/anaconda/bin/activate"
 | 
			
		||||
          "${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
 | 
			
		||||
      - uses: actions/upload-artifact@v4.4.0
 | 
			
		||||
      - uses: actions/upload-artifact@v3
 | 
			
		||||
        if: always()
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/templates/upload.yml.j2
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/templates/upload.yml.j2
									
									
									
									
										vendored
									
									
								
							@ -45,7 +45,7 @@
 | 
			
		||||
  {%- if is_windows %}
 | 
			
		||||
      # This is a dummy value for libtorch to work correctly with our batch scripts
 | 
			
		||||
      # without this value pip does not get installed for some reason
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
  {%- endif %}
 | 
			
		||||
 | 
			
		||||
{%- else %}
 | 
			
		||||
 | 
			
		||||
@ -53,24 +53,10 @@ env:
 | 
			
		||||
!{{ common.concurrency(build_environment) }}
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  get-label-type:
 | 
			
		||||
    name: get-label-type
 | 
			
		||||
    uses: ./.github/workflows/_runner-determinator.yml
 | 
			
		||||
    with:
 | 
			
		||||
      triggering_actor: ${{ github.triggering_actor }}
 | 
			
		||||
      issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }}
 | 
			
		||||
      curr_branch: ${{ github.head_ref || github.ref_name }}
 | 
			
		||||
      curr_ref_type: ${{ github.ref_type }}
 | 
			
		||||
 | 
			
		||||
{%- for config in build_configs %}
 | 
			
		||||
  !{{ config["build_name"] }}-build:
 | 
			
		||||
    if: ${{ github.repository_owner == 'pytorch' }}
 | 
			
		||||
    needs: get-label-type
 | 
			
		||||
    {%- if branches == "nightly" %}
 | 
			
		||||
    runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge"
 | 
			
		||||
    {%- else %}
 | 
			
		||||
    runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
 | 
			
		||||
    {%- endif %}
 | 
			
		||||
    runs-on: windows.4xlarge.nonephemeral
 | 
			
		||||
    timeout-minutes: !{{ common.timeout_minutes }}
 | 
			
		||||
    !{{ upload.binary_env(config, True) }}
 | 
			
		||||
    {%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0  %}
 | 
			
		||||
@ -79,8 +65,8 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      !{{ common.setup_ec2_windows() }}
 | 
			
		||||
      !{{ set_runner_specific_vars() }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      - name: Populate binary env
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
@ -99,17 +85,15 @@ jobs:
 | 
			
		||||
      !{{ common.wait_and_kill_ssh_windows('pytorch') }}
 | 
			
		||||
  !{{ config["build_name"] }}-test:  # Testing
 | 
			
		||||
    if: ${{ github.repository_owner == 'pytorch' }}
 | 
			
		||||
    needs:
 | 
			
		||||
      - !{{ config["build_name"] }}-build
 | 
			
		||||
      - get-label-type
 | 
			
		||||
    needs: !{{ config["build_name"] }}-build
 | 
			
		||||
{%- if config["gpu_arch_type"] == "cuda" %}
 | 
			
		||||
{%- if branches == "nightly" %}
 | 
			
		||||
    runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
 | 
			
		||||
    runs-on: windows.8xlarge.nvidia.gpu
 | 
			
		||||
{%- else %}
 | 
			
		||||
    runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge.nonephemeral"
 | 
			
		||||
    runs-on: windows.8xlarge.nvidia.gpu.nonephemeral
 | 
			
		||||
{%- endif %}
 | 
			
		||||
{%- else %}
 | 
			
		||||
    runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
 | 
			
		||||
    runs-on: windows.4xlarge.nonephemeral
 | 
			
		||||
{%- endif %}
 | 
			
		||||
    timeout-minutes: !{{ common.timeout_minutes }}
 | 
			
		||||
    !{{ upload.binary_env(config, True) }}
 | 
			
		||||
@ -121,8 +105,8 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
          path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      - name: Populate binary env
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_android-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_android-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -37,7 +37,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -59,25 +59,25 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -141,5 +141,5 @@ jobs:
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_android-full-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_android-full-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -37,7 +37,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -59,25 +59,25 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -186,5 +186,5 @@ jobs:
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/_bazel-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/_bazel-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -47,7 +47,7 @@ jobs:
 | 
			
		||||
      reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -69,25 +69,25 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -97,7 +97,7 @@ jobs:
 | 
			
		||||
        run: echo "IN_ARC_RUNNER=$([ -f /.inarc ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        if: ${{ inputs.cuda-version != 'cpu' && steps.check_arc_runner.outputs.IN_ARC_RUNNER == 'false' }}
 | 
			
		||||
 | 
			
		||||
      - name: Output disk space left
 | 
			
		||||
@ -206,5 +206,5 @@ jobs:
 | 
			
		||||
          file-suffix: bazel-${{ github.job }}_${{ steps.get-job-id.outputs.job-id }}
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								.github/workflows/_binary-build-linux.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/_binary-build-linux.yml
									
									
									
									
										vendored
									
									
								
							@ -11,16 +11,11 @@ on:
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
        description: The build environment
 | 
			
		||||
      runner_prefix:
 | 
			
		||||
        required: false
 | 
			
		||||
        default: ""
 | 
			
		||||
        type: string
 | 
			
		||||
        description: prefix for runner label
 | 
			
		||||
      runs_on:
 | 
			
		||||
        required: false
 | 
			
		||||
        default: linux.12xlarge.ephemeral
 | 
			
		||||
        default: linux.12xlarge
 | 
			
		||||
        type: string
 | 
			
		||||
        description: Hardware to run this "build" job on, linux.12xlarge or linux.arm64.2xlarge.
 | 
			
		||||
        description: Hardware to run this "build"job on, linux.12xlarge or linux.arm64.2xlarge.
 | 
			
		||||
      timeout-minutes:
 | 
			
		||||
        required: false
 | 
			
		||||
        default: 210
 | 
			
		||||
@ -94,7 +89,7 @@ on:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
 | 
			
		||||
    runs-on: ${{ inputs.runs_on }}
 | 
			
		||||
    timeout-minutes: ${{ inputs.timeout-minutes }}
 | 
			
		||||
    env:
 | 
			
		||||
      PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
 | 
			
		||||
@ -159,13 +154,13 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
 | 
			
		||||
        if: inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.github-token }}
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
 | 
			
		||||
 | 
			
		||||
@ -195,6 +190,7 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch to pytorch dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -208,7 +204,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder to builder dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: release/2.5
 | 
			
		||||
          ref: main
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -234,7 +230,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ inputs.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -282,7 +278,7 @@ jobs:
 | 
			
		||||
          # Ensure the working directory gets chowned back to the current user
 | 
			
		||||
          docker run --rm -v "${RUNNER_TEMP}/artifacts:/v" -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
 | 
			
		||||
 | 
			
		||||
      - uses: actions/upload-artifact@v4.4.0
 | 
			
		||||
      - uses: actions/upload-artifact@v3
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
        with:
 | 
			
		||||
          name: ${{ inputs.build_name }}
 | 
			
		||||
@ -292,7 +288,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
 | 
			
		||||
      - name: Chown workspace
 | 
			
		||||
        if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								.github/workflows/_binary-test-linux.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/_binary-test-linux.yml
									
									
									
									
										vendored
									
									
								
							@ -59,11 +59,6 @@ on:
 | 
			
		||||
        required: false
 | 
			
		||||
        type: string
 | 
			
		||||
        description: Desired python version
 | 
			
		||||
      runner_prefix:
 | 
			
		||||
        required: false
 | 
			
		||||
        default: ""
 | 
			
		||||
        type: string
 | 
			
		||||
        description: prefix for runner label
 | 
			
		||||
      runs_on:
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
@ -82,7 +77,7 @@ on:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  test:
 | 
			
		||||
    runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
 | 
			
		||||
    runs-on: ${{ inputs.runs_on }}
 | 
			
		||||
    timeout-minutes: 240
 | 
			
		||||
    env:
 | 
			
		||||
      PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
 | 
			
		||||
@ -142,14 +137,14 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
 | 
			
		||||
        if: inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.github-token }}
 | 
			
		||||
 | 
			
		||||
        # Setup the environment
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
 | 
			
		||||
 | 
			
		||||
@ -172,6 +167,7 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch to pytorch dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
 | 
			
		||||
@ -184,7 +180,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder to builder dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: release/2.5
 | 
			
		||||
          ref: main
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -209,18 +205,18 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Download Build Artifacts
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
        uses: actions/download-artifact@v4.1.7
 | 
			
		||||
        uses: actions/download-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: ${{ inputs.build_name }}
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        if: ${{ inputs.GPU_ARCH_TYPE == 'cuda' && steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ inputs.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -230,7 +226,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
 | 
			
		||||
      - name: Chown workspace
 | 
			
		||||
        if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/_binary-upload.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/_binary-upload.yml
									
									
									
									
										vendored
									
									
								
							@ -103,7 +103,7 @@ jobs:
 | 
			
		||||
      USE_SPLIT_BUILD: ${{ inputs.use_split_build }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: true
 | 
			
		||||
 | 
			
		||||
@ -126,7 +126,7 @@ jobs:
 | 
			
		||||
        # NB: When the previous build job is skipped, there won't be any artifacts and
 | 
			
		||||
        # this step will fail. Binary build jobs can only be skipped on CI, not nightly
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: actions/download-artifact@v4.1.7
 | 
			
		||||
        uses: actions/download-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: ${{ inputs.build_name }}
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								.github/workflows/_buck-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/_buck-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -8,11 +8,6 @@ on:
 | 
			
		||||
        type: string
 | 
			
		||||
        description: |
 | 
			
		||||
          A JSON description of what configs to run later on.
 | 
			
		||||
      runner_prefix:
 | 
			
		||||
        required: false
 | 
			
		||||
        type: string
 | 
			
		||||
        description: |
 | 
			
		||||
          Prefix for runner label
 | 
			
		||||
 | 
			
		||||
defaults:
 | 
			
		||||
  run:
 | 
			
		||||
@ -21,14 +16,14 @@ defaults:
 | 
			
		||||
jobs:
 | 
			
		||||
  filter:
 | 
			
		||||
    if: github.repository_owner == 'pytorch'
 | 
			
		||||
    runs-on: [self-hosted, "${{ inputs.runner_prefix }}linux.large"]
 | 
			
		||||
    runs-on: [self-hosted, linux.large]
 | 
			
		||||
    outputs:
 | 
			
		||||
      test-matrix: ${{ steps.filter.outputs.test-matrix }}
 | 
			
		||||
      is-test-matrix-empty: ${{ steps.filter.outputs.is-test-matrix-empty }}
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -49,7 +44,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Set up JDK 8
 | 
			
		||||
        uses: actions/setup-java@v3
 | 
			
		||||
@ -58,13 +53,13 @@ jobs:
 | 
			
		||||
          distribution: 'temurin'
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: 3.8
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
 | 
			
		||||
      - name: Install Buck
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 10
 | 
			
		||||
          max_attempts: 5
 | 
			
		||||
@ -74,7 +69,7 @@ jobs:
 | 
			
		||||
            sudo apt install ./buck.2021.01.12.01_all.deb
 | 
			
		||||
 | 
			
		||||
      - name: Download third party libraries and generate wrappers
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 10
 | 
			
		||||
          max_attempts: 5
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/_docs.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/_docs.yml
									
									
									
									
										vendored
									
									
								
							@ -84,7 +84,7 @@ jobs:
 | 
			
		||||
    name: build-docs-${{ matrix.docs_type }}-${{ inputs.push }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          instructions: |
 | 
			
		||||
@ -95,7 +95,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
@ -110,12 +110,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -222,5 +222,5 @@ jobs:
 | 
			
		||||
          s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}/functorchdocs
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_ios-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_ios-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -46,7 +46,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -80,7 +80,7 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Populate CI build options
 | 
			
		||||
        shell: bash
 | 
			
		||||
@ -92,7 +92,7 @@ jobs:
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
      - name: Install brew dependencies
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@v2.8.2
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 5
 | 
			
		||||
          max_attempts: 3
 | 
			
		||||
@ -102,14 +102,14 @@ jobs:
 | 
			
		||||
            brew install libtool
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda for iOS
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: "3.9"
 | 
			
		||||
          environment-file: .github/requirements/conda-env-iOS.txt
 | 
			
		||||
          pip-requirements-file: .github/requirements/pip-requirements-iOS.txt
 | 
			
		||||
 | 
			
		||||
      - name: Setup Fastlane
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@v2.8.2
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 5
 | 
			
		||||
          max_attempts: 3
 | 
			
		||||
@ -292,7 +292,7 @@ jobs:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Download arm64 artifacts
 | 
			
		||||
        uses: actions/download-artifact@v4.1.7
 | 
			
		||||
        uses: actions/download-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: pytorch-ios-build-artifacts-arm64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								.github/workflows/_linux-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/_linux-build.yml
									
									
									
									
										vendored
									
									
								
							@ -34,11 +34,6 @@ on:
 | 
			
		||||
        default: "5.2"
 | 
			
		||||
        description: |
 | 
			
		||||
          List of CUDA architectures CI build should target.
 | 
			
		||||
      runner_prefix:
 | 
			
		||||
        required: false
 | 
			
		||||
        default: ""
 | 
			
		||||
        type: string
 | 
			
		||||
        description: Prefix for runner label
 | 
			
		||||
      runner:
 | 
			
		||||
        required: false
 | 
			
		||||
        type: string
 | 
			
		||||
@ -82,10 +77,6 @@ on:
 | 
			
		||||
        required: false
 | 
			
		||||
        description: |
 | 
			
		||||
          HF Auth token to avoid rate limits when downloading models or datasets from hub
 | 
			
		||||
      SCRIBE_GRAPHQL_ACCESS_TOKEN:
 | 
			
		||||
        required: false
 | 
			
		||||
        description: |
 | 
			
		||||
          FB app token to write to scribe endpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    outputs:
 | 
			
		||||
@ -98,17 +89,16 @@ on:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    environment: ${{ github.ref == 'refs/heads/main' && 'scribe-protected' || startsWith(github.ref, 'refs/heads/release/') && 'scribe-protected' || contains(github.event.pull_request.labels.*.name, 'ci-scribe') && 'scribe-pr' || '' }}
 | 
			
		||||
    # Don't run on forked repos
 | 
			
		||||
    if: github.repository_owner == 'pytorch'
 | 
			
		||||
    runs-on: ${{ inputs.runner_prefix}}${{ inputs.runner }}
 | 
			
		||||
    runs-on: ${{ inputs.runner }}
 | 
			
		||||
    timeout-minutes: 240
 | 
			
		||||
    outputs:
 | 
			
		||||
      docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
      test-matrix: ${{ steps.filter.outputs.test-matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
@ -117,7 +107,7 @@ jobs:
 | 
			
		||||
      # checkout because when we run this action we don't *have* a local
 | 
			
		||||
      # checkout. In other cases you should prefer a local checkout.
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
@ -132,7 +122,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
@ -146,7 +136,7 @@ jobs:
 | 
			
		||||
          echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -199,7 +189,6 @@ jobs:
 | 
			
		||||
          DEBUG: ${{ inputs.build-with-debug && '1' || '0' }}
 | 
			
		||||
          OUR_GITHUB_JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
 | 
			
		||||
          HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
 | 
			
		||||
          SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
 | 
			
		||||
          USE_SPLIT_BUILD: ${{ inputs.use_split_build }}
 | 
			
		||||
        run: |
 | 
			
		||||
          # detached container should get cleaned up by teardown_ec2_linux
 | 
			
		||||
@ -269,5 +258,5 @@ jobs:
 | 
			
		||||
          s3-bucket: ${{ inputs.s3-bucket }}
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								.github/workflows/_linux-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/_linux-test.yml
									
									
									
									
										vendored
									
									
								
							@ -52,10 +52,6 @@ on:
 | 
			
		||||
        required: false
 | 
			
		||||
        description: |
 | 
			
		||||
          HF Auth token to avoid rate limits when downloading models or datasets from hub
 | 
			
		||||
      SCRIBE_GRAPHQL_ACCESS_TOKEN:
 | 
			
		||||
        required: false
 | 
			
		||||
        description: |
 | 
			
		||||
          FB app token to write to scribe endpoint
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
 | 
			
		||||
@ -67,12 +63,11 @@ jobs:
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix: ${{ fromJSON(inputs.test-matrix) }}
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
    environment: ${{ github.ref == 'refs/heads/main' && 'scribe-protected' || startsWith(github.ref, 'refs/heads/release/') && 'scribe-protected' || contains(github.event.pull_request.labels.*.name, 'ci-scribe') && 'scribe-pr' || '' }}
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    timeout-minutes: ${{ matrix.mem_leak_check == 'mem_leak_check' && 600 || inputs.timeout-minutes }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        if: ${{ !contains(matrix.runner, 'gcp.a100') }}
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
@ -81,7 +76,7 @@ jobs:
 | 
			
		||||
              docker exec -it $(docker container ps --format '{{.ID}}') bash
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
@ -96,7 +91,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -110,7 +105,7 @@ jobs:
 | 
			
		||||
          echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -121,7 +116,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        id: install-nvidia-driver
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        if: ${{ contains(inputs.build-environment, 'cuda') && !contains(matrix.config, 'nogpu') && steps.check_arc_runner.outputs.IN_ARC_RUNNER == 'false' }}
 | 
			
		||||
 | 
			
		||||
      - name: Lock NVIDIA A100 40GB Frequency
 | 
			
		||||
@ -217,7 +212,6 @@ jobs:
 | 
			
		||||
          PYTORCH_TEST_RERUN_DISABLED_TESTS: ${{ matrix.rerun_disabled_tests && '1' || '0' }}
 | 
			
		||||
          DASHBOARD_TAG: ${{ inputs.dashboard-tag }}
 | 
			
		||||
          HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
 | 
			
		||||
          SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
 | 
			
		||||
 | 
			
		||||
        run: |
 | 
			
		||||
          set -x
 | 
			
		||||
@ -272,7 +266,6 @@ jobs:
 | 
			
		||||
            -e PYTORCH_TEST_RERUN_DISABLED_TESTS \
 | 
			
		||||
            -e SKIP_SCCACHE_INITIALIZATION=1 \
 | 
			
		||||
            -e HUGGING_FACE_HUB_TOKEN \
 | 
			
		||||
            -e SCRIBE_GRAPHQL_ACCESS_TOKEN \
 | 
			
		||||
            -e DASHBOARD_TAG \
 | 
			
		||||
            --env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
 | 
			
		||||
            --security-opt seccomp=unconfined \
 | 
			
		||||
@ -342,7 +335,7 @@ jobs:
 | 
			
		||||
          path: ./**/core.[1-9]*
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      # NB: We are currently having an intermittent GPU-related issue on G5 runners with
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/_mac-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/_mac-build.yml
									
									
									
									
										vendored
									
									
								
							@ -71,11 +71,11 @@ jobs:
 | 
			
		||||
      test-matrix: ${{ steps.filter.outputs.test-matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Clean up disk space before running MacOS workflow
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Set xcode version
 | 
			
		||||
        env:
 | 
			
		||||
@ -87,7 +87,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        if: inputs.environment-file == ''
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -97,14 +97,14 @@ jobs:
 | 
			
		||||
      # environment even though the arch is x86-64
 | 
			
		||||
      - name: Setup miniconda using the provided environment file
 | 
			
		||||
        if: inputs.environment-file != ''
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: ${{ inputs.environment-file }}
 | 
			
		||||
          pip-requirements-file: .github/requirements/pip-requirements-${{ runner.os }}.txt
 | 
			
		||||
 | 
			
		||||
      - name: Install sccache (only for non-forked PRs, and pushes to trunk)
 | 
			
		||||
        uses: nick-fields/retry@v3.0.0
 | 
			
		||||
        uses: nick-fields/retry@v2.8.2
 | 
			
		||||
        if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
 | 
			
		||||
        with:
 | 
			
		||||
          timeout_minutes: 5
 | 
			
		||||
@ -139,7 +139,7 @@ jobs:
 | 
			
		||||
            else
 | 
			
		||||
              # The runner has access to the S3 bucket via IAM profile without the need
 | 
			
		||||
              # for any credential
 | 
			
		||||
              echo "SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2" >> "${GITHUB_ENV}"0
 | 
			
		||||
              echo "SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2" >> "${GITHUB_ENV}"
 | 
			
		||||
              echo "SCCACHE_S3_KEY_PREFIX=${GITHUB_WORKFLOW}" >> "${GITHUB_ENV}"
 | 
			
		||||
            fi
 | 
			
		||||
 | 
			
		||||
@ -207,4 +207,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_mac-test-mps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_mac-test-mps.yml
									
									
									
									
										vendored
									
									
								
							@ -41,7 +41,7 @@ jobs:
 | 
			
		||||
      reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
@ -82,7 +82,7 @@ jobs:
 | 
			
		||||
          use-gha: true
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -161,4 +161,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/_mac-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/_mac-test.yml
									
									
									
									
										vendored
									
									
								
							@ -74,11 +74,11 @@ jobs:
 | 
			
		||||
          done
 | 
			
		||||
 | 
			
		||||
      - name: Clean up disk space before running MacOS workflow
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
 | 
			
		||||
      - name: Download build artifacts
 | 
			
		||||
        uses: ./.github/actions/download-build-artifacts
 | 
			
		||||
@ -93,7 +93,7 @@ jobs:
 | 
			
		||||
          use-gha: true
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -217,4 +217,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.5
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user