mirror of
https://github.com/pytorch/pytorch.git
synced 2025-11-05 00:14:54 +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
|
manylinux_2_17
|
||||||
rocm6.2
|
rocm6.1
|
||||||
9be04068c3c0857a4cfd17d7e39e71d0423ebac2
|
7f07e8a1cb1f99627eb6d77f5c0e9295c775f3c7
|
||||||
3e9e1959d23b93d78a08fcc5f868125dc3854dece32fd9458be9ef4467982291
|
77c29fa3f3b614e187d7213d745e989a92708cee2bc6020419ab49019af399d1
|
||||||
|
|||||||
@ -92,7 +92,7 @@ _UCC_COMMIT=20eae37090a4ce1b32bcce6144ccad0b49943e0b
|
|||||||
# from scratch
|
# from scratch
|
||||||
case "$image" in
|
case "$image" in
|
||||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||||
CUDA_VERSION=12.4.1
|
CUDA_VERSION=12.4.0
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
ANACONDA_PYTHON_VERSION=3.10
|
ANACONDA_PYTHON_VERSION=3.10
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
@ -120,7 +120,7 @@ case "$image" in
|
|||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks)
|
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks)
|
||||||
CUDA_VERSION=12.4.1
|
CUDA_VERSION=12.4.0
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
ANACONDA_PYTHON_VERSION=3.10
|
ANACONDA_PYTHON_VERSION=3.10
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
@ -165,7 +165,7 @@ case "$image" in
|
|||||||
INDUCTOR_BENCHMARKS=yes
|
INDUCTOR_BENCHMARKS=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-cuda12.4-cudnn9-py3.12-gcc9-inductor-benchmarks)
|
pytorch-linux-focal-cuda12.4-cudnn9-py3.12-gcc9-inductor-benchmarks)
|
||||||
CUDA_VERSION=12.4.1
|
CUDA_VERSION=12.4.0
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
ANACONDA_PYTHON_VERSION=3.12
|
ANACONDA_PYTHON_VERSION=3.12
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
@ -194,7 +194,7 @@ case "$image" in
|
|||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||||
CUDA_VERSION=12.4.1
|
CUDA_VERSION=12.4.0
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
ANACONDA_PYTHON_VERSION=3.10
|
ANACONDA_PYTHON_VERSION=3.10
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
@ -222,7 +222,7 @@ case "$image" in
|
|||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9)
|
||||||
CUDA_VERSION=12.4.1
|
CUDA_VERSION=12.4.0
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
ANACONDA_PYTHON_VERSION=3.10
|
ANACONDA_PYTHON_VERSION=3.10
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
@ -236,7 +236,7 @@ case "$image" in
|
|||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-py3-clang10-onnx)
|
pytorch-linux-focal-py3-clang10-onnx)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
CLANG_VERSION=10
|
CLANG_VERSION=10
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -245,7 +245,7 @@ case "$image" in
|
|||||||
ONNX=yes
|
ONNX=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-py3-clang9-android-ndk-r21e)
|
pytorch-linux-focal-py3-clang9-android-ndk-r21e)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
CLANG_VERSION=9
|
CLANG_VERSION=9
|
||||||
LLVMDEV=yes
|
LLVMDEV=yes
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
@ -254,8 +254,8 @@ case "$image" in
|
|||||||
GRADLE_VERSION=6.8.3
|
GRADLE_VERSION=6.8.3
|
||||||
NINJA_VERSION=1.9.0
|
NINJA_VERSION=1.9.0
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-py3.9-clang10)
|
pytorch-linux-focal-py3.8-clang10)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
CLANG_VERSION=10
|
CLANG_VERSION=10
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -276,8 +276,8 @@ case "$image" in
|
|||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-py3.9-gcc9)
|
pytorch-linux-focal-py3.8-gcc9)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -286,7 +286,18 @@ case "$image" in
|
|||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-rocm-n-1-py3)
|
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
|
GCC_VERSION=9
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -296,19 +307,8 @@ case "$image" in
|
|||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
TRITON=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)
|
pytorch-linux-jammy-xpu-2024.0-py3)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
GCC_VERSION=11
|
GCC_VERSION=11
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -318,8 +318,8 @@ case "$image" in
|
|||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks)
|
pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
GCC_VERSION=11
|
GCC_VERSION=11
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
@ -330,8 +330,8 @@ case "$image" in
|
|||||||
DOCS=yes
|
DOCS=yes
|
||||||
INDUCTOR_BENCHMARKS=yes
|
INDUCTOR_BENCHMARKS=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-clang12)
|
pytorch-linux-jammy-cuda11.8-cudnn9-py3.8-clang12)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
CUDA_VERSION=11.8
|
CUDA_VERSION=11.8
|
||||||
CUDNN_VERSION=9
|
CUDNN_VERSION=9
|
||||||
CLANG_VERSION=12
|
CLANG_VERSION=12
|
||||||
@ -355,8 +355,8 @@ case "$image" in
|
|||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
VISION=yes
|
VISION=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-jammy-py3.9-gcc11)
|
pytorch-linux-jammy-py3.8-gcc11)
|
||||||
ANACONDA_PYTHON_VERSION=3.9
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
GCC_VERSION=11
|
GCC_VERSION=11
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
|
|||||||
@ -108,10 +108,10 @@ ENV CMAKE_C_COMPILER cc
|
|||||||
ENV CMAKE_CXX_COMPILER c++
|
ENV CMAKE_CXX_COMPILER c++
|
||||||
COPY ./common/install_triton.sh install_triton.sh
|
COPY ./common/install_triton.sh install_triton.sh
|
||||||
COPY ./common/common_utils.sh common_utils.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
|
COPY triton_version.txt triton_version.txt
|
||||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
|
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)
|
# Install AOTriton (Early fail)
|
||||||
COPY ./aotriton_version.txt aotriton_version.txt
|
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"
|
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
|
# This read command alwasy returns with exit code 1
|
||||||
read -d "\n" VER MANYLINUX ROCMBASE PINNED_COMMIT SHA256 < aotriton_version.txt || true
|
read -d "\n" VER MANYLINUX ROCMBASE PINNED_COMMIT SHA256 < aotriton_version.txt || true
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
AOTRITON_INSTALL_PREFIX="$1"
|
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}"
|
cd "${AOTRITON_INSTALL_PREFIX}"
|
||||||
# Must use -L to follow redirects
|
# Must use -L to follow redirects
|
||||||
|
|||||||
@ -5,22 +5,32 @@ set -ex
|
|||||||
# Optionally install conda
|
# Optionally install conda
|
||||||
if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
|
if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
|
||||||
BASE_URL="https://repo.anaconda.com/miniconda"
|
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)
|
MAJOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 1)
|
||||||
MINOR_PYTHON_VERSION=$(echo "$ANACONDA_PYTHON_VERSION" | cut -d . -f 2)
|
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
|
case "$MAJOR_PYTHON_VERSION" in
|
||||||
3);;
|
3)
|
||||||
|
CONDA_FILE="Miniforge3-Linux-aarch64.sh"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
|
echo "Unsupported ANACONDA_PYTHON_VERSION: $ANACONDA_PYTHON_VERSION"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
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
|
mkdir -p /opt/conda
|
||||||
chown jenkins:jenkins /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"
|
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
|
if [ "$ANACONDA_PYTHON_VERSION" = "3.8" ]; then
|
||||||
NUMPY_VERSION=1.24.4
|
conda_install numpy=1.24.4 ${CONDA_COMMON_DEPS}
|
||||||
else
|
else
|
||||||
NUMPY_VERSION=1.26.2
|
conda_install numpy=1.26.2 ${CONDA_COMMON_DEPS}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
CONDA_COMMON_DEPS="astunparse pyyaml mkl=2021.4.0 mkl-include=2021.4.0 setuptools"
|
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
|
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
|
else
|
||||||
NUMPY_VERSION=1.21.2
|
conda_install numpy=1.21.2 ${CONDA_COMMON_DEPS}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
conda_install ${CONDA_COMMON_DEPS}
|
|
||||||
|
|
||||||
# Install llvm-8 as it is required to compile llvmlite-0.30.0 from source
|
# Install llvm-8 as it is required to compile llvmlite-0.30.0 from source
|
||||||
# and libpython-static for torch deploy
|
# 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
|
# Install some other packages, including those needed for Python test reporting
|
||||||
pip_install -r /opt/conda/requirements-ci.txt
|
pip_install -r /opt/conda/requirements-ci.txt
|
||||||
pip_install numpy=="$NUMPY_VERSION"
|
|
||||||
pip_install -U scikit-learn
|
pip_install -U scikit-learn
|
||||||
|
|
||||||
if [ -n "$DOCS" ]; then
|
if [ -n "$DOCS" ]; then
|
||||||
|
|||||||
@ -58,8 +58,7 @@ function do_cpython_build {
|
|||||||
if [ -e ${prefix}/bin/pip3 ] && [ ! -e ${prefix}/bin/pip ]; then
|
if [ -e ${prefix}/bin/pip3 ] && [ ! -e ${prefix}/bin/pip ]; then
|
||||||
ln -s pip3 ${prefix}/bin/pip
|
ln -s pip3 ${prefix}/bin/pip
|
||||||
fi
|
fi
|
||||||
# install setuptools since python 3.12 is required to use distutils
|
${prefix}/bin/pip install wheel==0.34.2
|
||||||
${prefix}/bin/pip install wheel==0.34.2 setuptools==68.2.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()))")
|
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}
|
ln -s ${prefix} /opt/python/${abi_tag}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,17 +27,6 @@ function install_cusparselt_052 {
|
|||||||
rm -rf tmp_cusparselt
|
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 {
|
function install_118 {
|
||||||
echo "Installing CUDA 11.8 and cuDNN ${CUDNN_VERSION} and NCCL ${NCCL_VERSION} and cuSparseLt-0.4.0"
|
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
|
rm -rf /usr/local/cuda-11.8 /usr/local/cuda
|
||||||
@ -105,13 +94,13 @@ function install_121 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function install_124 {
|
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
|
rm -rf /usr/local/cuda-12.4 /usr/local/cuda
|
||||||
# install CUDA 12.4.1 in the same container
|
# install CUDA 12.4.0 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
|
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.1_550.54.15_linux.run
|
chmod +x cuda_12.4.0_550.54.14_linux.run
|
||||||
./cuda_12.4.1_550.54.15_linux.run --toolkit --silent
|
./cuda_12.4.0_550.54.14_linux.run --toolkit --silent
|
||||||
rm -f cuda_12.4.1_550.54.15_linux.run
|
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
|
rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
|
||||||
|
|
||||||
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
|
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
|
||||||
@ -132,7 +121,7 @@ function install_124 {
|
|||||||
cd ..
|
cd ..
|
||||||
rm -rf nccl
|
rm -rf nccl
|
||||||
|
|
||||||
install_cusparselt_062
|
install_cusparselt_052
|
||||||
|
|
||||||
ldconfig
|
ldconfig
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,13 +17,13 @@ function install_cusparselt_052 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function install_124 {
|
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
|
rm -rf /usr/local/cuda-12.4 /usr/local/cuda
|
||||||
# install CUDA 12.4.1 in the same container
|
# install CUDA 12.4.0 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
|
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.1_550.54.15_linux_sbsa.run
|
chmod +x cuda_12.4.0_550.54.14_linux_sbsa.run
|
||||||
./cuda_12.4.1_550.54.15_linux_sbsa.run --toolkit --silent
|
./cuda_12.4.0_550.54.14_linux_sbsa.run --toolkit --silent
|
||||||
rm -f cuda_12.4.1_550.54.15_linux_sbsa.run
|
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
|
rm -f /usr/local/cuda && ln -s /usr/local/cuda-12.4 /usr/local/cuda
|
||||||
|
|
||||||
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
|
# 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
|
# cuSPARSELt license: https://docs.nvidia.com/cuda/cusparselt/license.html
|
||||||
mkdir tmp_cusparselt && cd tmp_cusparselt
|
mkdir tmp_cusparselt && cd tmp_cusparselt
|
||||||
|
|
||||||
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[2-4]$ ]]; 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
|
|
||||||
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
|
|
||||||
arch_path='sbsa'
|
arch_path='sbsa'
|
||||||
export TARGETARCH=${TARGETARCH:-$(uname -m)}
|
export TARGETARCH=${TARGETARCH:-$(uname -m)}
|
||||||
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
|
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
|
||||||
|
|||||||
@ -10,21 +10,6 @@ if [[ -z $ROCM_VERSION ]]; then
|
|||||||
exit 1;
|
exit 1;
|
||||||
fi
|
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.
|
# To make version comparison easier, create an integer representation.
|
||||||
save_IFS="$IFS"
|
save_IFS="$IFS"
|
||||||
IFS=. ROCM_VERSION_ARRAY=(${ROCM_VERSION})
|
IFS=. ROCM_VERSION_ARRAY=(${ROCM_VERSION})
|
||||||
@ -72,9 +57,7 @@ MIOPEN_CMAKE_COMMON_FLAGS="
|
|||||||
-DMIOPEN_BUILD_DRIVER=OFF
|
-DMIOPEN_BUILD_DRIVER=OFF
|
||||||
"
|
"
|
||||||
# Pull MIOpen repo and set DMIOPEN_EMBED_DB based on ROCm version
|
# Pull MIOpen repo and set DMIOPEN_EMBED_DB based on ROCm version
|
||||||
if [[ $ROCM_INT -ge 60200 ]] && [[ $ROCM_INT -lt 60300 ]]; then
|
if [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
|
||||||
MIOPEN_BRANCH="release/rocm-rel-6.2-staging"
|
|
||||||
elif [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
|
|
||||||
echo "ROCm 6.1 MIOpen does not need any patches, do not build from source"
|
echo "ROCm 6.1 MIOpen does not need any patches, do not build from source"
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ $ROCM_INT -ge 60000 ]] && [[ $ROCM_INT -lt 60100 ]]; then
|
elif [[ $ROCM_INT -ge 60000 ]] && [[ $ROCM_INT -lt 60100 ]]; then
|
||||||
@ -107,21 +90,12 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
yum remove -y miopen-hip
|
||||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
|
||||||
apt-get remove -y miopen-hip
|
|
||||||
else
|
|
||||||
yum remove -y miopen-hip
|
|
||||||
fi
|
|
||||||
|
|
||||||
git clone https://github.com/ROCm/MIOpen -b ${MIOPEN_BRANCH}
|
git clone https://github.com/ROCm/MIOpen -b ${MIOPEN_BRANCH}
|
||||||
pushd MIOpen
|
pushd MIOpen
|
||||||
# remove .git to save disk space since CI runner was running out
|
# remove .git to save disk space since CI runner was running out
|
||||||
rm -rf .git
|
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
|
# Don't build MLIR to save docker build time
|
||||||
# since we are disabling MLIR backend for MIOpen anyway
|
# since we are disabling MLIR backend for MIOpen anyway
|
||||||
if [[ $ROCM_INT -ge 50400 ]] && [[ $ROCM_INT -lt 50500 ]]; then
|
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
|
# clean up since CI runner was running out of disk space
|
||||||
rm -rf /tmp/*
|
rm -rf /tmp/*
|
||||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
yum clean all
|
||||||
apt-get autoclean && apt-get clean
|
rm -rf /var/cache/yum
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/yum/yumdb
|
||||||
else
|
rm -rf /var/lib/yum/history
|
||||||
yum clean all
|
|
||||||
rm -rf /var/cache/yum
|
|
||||||
rm -rf /var/lib/yum/yumdb
|
|
||||||
rm -rf /var/lib/yum/history
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Build MIOpen
|
## Build MIOpen
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
@ -159,11 +128,7 @@ make -j $(nproc) package
|
|||||||
# clean up since CI runner was running out of disk space
|
# clean up since CI runner was running out of disk space
|
||||||
rm -rf /usr/local/cget
|
rm -rf /usr/local/cget
|
||||||
|
|
||||||
if [[ ${IS_UBUNTU} == 1 ]]; then
|
yum install -y miopen-*.rpm
|
||||||
sudo dpkg -i miopen-hip*.deb
|
|
||||||
else
|
|
||||||
yum install -y miopen-*.rpm
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd
|
popd
|
||||||
rm -rf MIOpen
|
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 \
|
flatbuffers==2.0 \
|
||||||
mock==5.0.1 \
|
mock==5.0.1 \
|
||||||
ninja==1.10.2 \
|
ninja==1.10.2 \
|
||||||
networkx==2.5 \
|
networkx==2.0 \
|
||||||
numpy==1.24.2
|
numpy==1.24.2
|
||||||
|
|
||||||
# ONNXRuntime should be installed before installing
|
# ONNXRuntime should be installed before installing
|
||||||
@ -30,9 +30,10 @@ pip_install \
|
|||||||
|
|
||||||
pip_install coloredlogs packaging
|
pip_install coloredlogs packaging
|
||||||
|
|
||||||
pip_install onnxruntime==1.18.1
|
pip_install onnxruntime==1.18
|
||||||
pip_install onnx==1.16.2
|
pip_install onnx==1.16.0
|
||||||
pip_install onnxscript==0.1.0.dev20240831 --no-deps
|
# pip_install "onnxscript@git+https://github.com/microsoft/onnxscript@3e869ef8ccf19b5ebd21c10d3e9c267c9a9fa729" --no-deps
|
||||||
|
pip_install onnxscript==0.1.0.dev20240613 --no-deps
|
||||||
# required by onnxscript
|
# required by onnxscript
|
||||||
pip_install ml_dtypes
|
pip_install ml_dtypes
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,10 @@ conda_reinstall() {
|
|||||||
as_jenkins conda install -q -n py_$ANACONDA_PYTHON_VERSION -y --force-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_REPO="https://github.com/intel/intel-xpu-backend-for-triton"
|
||||||
TRITON_TEXT_FILE="triton-xpu"
|
TRITON_TEXT_FILE="triton-xpu"
|
||||||
else
|
else
|
||||||
@ -38,33 +41,19 @@ if [ -z "${MAX_JOBS}" ]; then
|
|||||||
export MAX_JOBS=$(nproc)
|
export MAX_JOBS=$(nproc)
|
||||||
fi
|
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
|
if [ -n "${UBUNTU_VERSION}" ] && [ -n "${GCC_VERSION}" ] && [[ "${GCC_VERSION}" == "7" ]]; then
|
||||||
# Triton needs at least gcc-9 to build
|
# Triton needs at least gcc-9 to build
|
||||||
apt-get install -y g++-9
|
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
|
elif [ -n "${UBUNTU_VERSION}" ] && [ -n "${CLANG_VERSION}" ]; then
|
||||||
# Triton needs <filesystem> which surprisingly is not available with clang-9 toolchain
|
# Triton needs <filesystem> which surprisingly is not available with clang-9 toolchain
|
||||||
add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||||
apt-get install -y g++-9
|
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
|
else
|
||||||
pip_install -e .
|
pip_install "git+${TRITON_REPO}@${TRITON_PINNED_COMMIT}#subdirectory=python"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${CONDA_CMAKE}" ]; then
|
if [ -n "${CONDA_CMAKE}" ]; then
|
||||||
|
|||||||
@ -16,11 +16,11 @@ function install_ubuntu() {
|
|||||||
|
|
||||||
apt-get update -y
|
apt-get update -y
|
||||||
apt-get install -y gpg-agent wget
|
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 \
|
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key \
|
||||||
| gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
|
| gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
|
||||||
echo "deb [arch=amd64 signed-by=/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
|
| tee /etc/apt/sources.list.d/intel-gpu-${VERSION_CODENAME}.list
|
||||||
# To add the online network network package repository for the Intel Support Packages
|
# 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 \
|
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
|
apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
|
||||||
# Install Intel Support Packages
|
# Install Intel Support Packages
|
||||||
if [ -n "$XPU_VERSION" ]; then
|
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
|
else
|
||||||
apt-get install -y intel-for-pytorch-gpu-dev intel-pti-dev
|
apt-get install -y intel-for-pytorch-gpu-dev
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
@ -55,6 +55,52 @@ function install_ubuntu() {
|
|||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
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() {
|
function install_rhel() {
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
if [[ "${ID}" == "rhel" ]]; then
|
if [[ "${ID}" == "rhel" ]]; then
|
||||||
@ -68,9 +114,9 @@ function install_rhel() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dnf install -y 'dnf-command(config-manager)'
|
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 \
|
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
|
# 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
|
tee > /etc/yum.repos.d/intel-for-pytorch-gpu-dev.repo << EOF
|
||||||
[intel-for-pytorch-gpu-dev]
|
[intel-for-pytorch-gpu-dev]
|
||||||
@ -85,7 +131,7 @@ EOF
|
|||||||
# The xpu-smi packages
|
# The xpu-smi packages
|
||||||
dnf install -y xpu-smi
|
dnf install -y xpu-smi
|
||||||
# Compute and Media Runtimes
|
# Compute and Media Runtimes
|
||||||
dnf install --skip-broken -y \
|
dnf install -y \
|
||||||
intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
|
intel-opencl intel-media intel-mediasdk libmfxgen1 libvpl2\
|
||||||
level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
|
level-zero intel-level-zero-gpu mesa-dri-drivers mesa-vulkan-drivers \
|
||||||
mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
|
mesa-vdpau-drivers libdrm mesa-libEGL mesa-libgbm mesa-libGL \
|
||||||
@ -114,9 +160,9 @@ function install_sles() {
|
|||||||
exit
|
exit
|
||||||
fi
|
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 \
|
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
|
rpm --import https://repositories.intel.com/gpu/intel-graphics.key
|
||||||
# To add the online network network package repository for the Intel Support Packages
|
# 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
|
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
|
# The installation depends on the base OS
|
||||||
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
|
ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
|
||||||
@ -148,6 +188,9 @@ case "$ID" in
|
|||||||
ubuntu)
|
ubuntu)
|
||||||
install_ubuntu
|
install_ubuntu
|
||||||
;;
|
;;
|
||||||
|
centos)
|
||||||
|
install_centos
|
||||||
|
;;
|
||||||
rhel|almalinux)
|
rhel|almalinux)
|
||||||
install_rhel
|
install_rhel
|
||||||
;;
|
;;
|
||||||
|
|||||||
@ -89,7 +89,7 @@ RUN bash ./install_rocm_magma.sh && rm install_rocm_magma.sh
|
|||||||
|
|
||||||
# Install AOTriton
|
# Install AOTriton
|
||||||
COPY ./common/common_utils.sh common_utils.sh
|
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
|
COPY ./common/install_aotriton.sh install_aotriton.sh
|
||||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
||||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
|
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
|
||||||
|
|||||||
@ -196,7 +196,7 @@ RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
|
|||||||
|
|
||||||
# Install AOTriton
|
# Install AOTriton
|
||||||
COPY ./common/common_utils.sh common_utils.sh
|
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
|
COPY ./common/install_aotriton.sh install_aotriton.sh
|
||||||
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
RUN bash ./install_aotriton.sh /opt/rocm && rm install_aotriton.sh aotriton_version.txt
|
||||||
ENV AOTRITON_INSTALLED_PREFIX /opt/rocm/aotriton
|
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
|
RUN bash ./install_miopen.sh ${ROCM_VERSION} && rm install_miopen.sh
|
||||||
|
|
||||||
FROM cpu_final as xpu_final
|
FROM cpu_final as xpu_final
|
||||||
# XPU CD use rolling driver
|
|
||||||
ENV XPU_DRIVER_TYPE ROLLING
|
|
||||||
# cmake-3.28.4 from pip
|
# cmake-3.28.4 from pip
|
||||||
RUN python3 -m pip install --upgrade pip && \
|
RUN python3 -m pip install --upgrade pip && \
|
||||||
python3 -mpip install cmake==3.28.4
|
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
|
ADD ./common/install_xpu.sh install_xpu.sh
|
||||||
RUN bash ./install_xpu.sh && rm 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
|
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
|
ADD ./common/install_magma.sh install_magma.sh
|
||||||
RUN bash ./install_magma.sh ${BASE_CUDA_VERSION} && rm install_magma.sh
|
RUN bash ./install_magma.sh ${BASE_CUDA_VERSION} && rm install_magma.sh
|
||||||
|
|
||||||
FROM base as nvpl
|
FROM base as openblas
|
||||||
# Install nvpl
|
# Install openblas
|
||||||
ADD ./common/install_nvpl.sh install_nvpl.sh
|
ADD ./common/install_openblas.sh install_openblas.sh
|
||||||
RUN bash ./install_nvpl.sh && rm install_nvpl.sh
|
RUN bash ./install_openblas.sh && rm install_openblas.sh
|
||||||
|
|
||||||
FROM final as cuda_final
|
FROM final as cuda_final
|
||||||
ARG BASE_CUDA_VERSION
|
ARG BASE_CUDA_VERSION
|
||||||
RUN rm -rf /usr/local/cuda-${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=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=magma /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda-${BASE_CUDA_VERSION}
|
||||||
COPY --from=nvpl /opt/nvpl/lib/ /usr/local/lib/
|
COPY --from=openblas /opt/OpenBLAS/ /opt/OpenBLAS/
|
||||||
COPY --from=nvpl /opt/nvpl/include/ /usr/local/include/
|
|
||||||
RUN ln -sf /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda
|
RUN ln -sf /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda
|
||||||
ENV PATH=/usr/local/cuda/bin:$PATH
|
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
|
#Pinned versions: 0.3.7
|
||||||
#test that import: dynamo/test_replay_record.py test_dataloader.py test_datapipe.py test_serialization.py
|
#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
|
#Description: method for writing tests where test framework auto populates
|
||||||
# the expected output based on previous runs
|
# 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
|
#Pinned versions: 0.1.6
|
||||||
#test that import:
|
#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
|
#test that import: run_test.py, test_cpp_extensions_aot.py,test_determination.py
|
||||||
|
|
||||||
numba==0.49.0 ; python_version < "3.9"
|
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"
|
numba==0.55.2 ; python_version == "3.10"
|
||||||
#Description: Just-In-Time Compiler for Numerical Functions
|
#Description: Just-In-Time Compiler for Numerical Functions
|
||||||
#Pinned versions: 0.54.1, 0.49.0, <=0.49.1
|
#Pinned versions: 0.54.1, 0.49.0, <=0.49.1
|
||||||
@ -223,7 +218,7 @@ pygments==2.15.0
|
|||||||
#test that import:
|
#test that import:
|
||||||
|
|
||||||
scikit-image==0.19.3 ; python_version < "3.10"
|
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
|
#Description: image processing routines
|
||||||
#Pinned versions:
|
#Pinned versions:
|
||||||
#test that import: test_nn.py
|
#test that import: test_nn.py
|
||||||
@ -274,10 +269,6 @@ lintrunner==0.12.5
|
|||||||
#Pinned versions: 0.12.5
|
#Pinned versions: 0.12.5
|
||||||
#test that import:
|
#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
|
rockset==1.0.3
|
||||||
#Description: queries Rockset
|
#Description: queries Rockset
|
||||||
#Pinned versions: 1.0.3
|
#Pinned versions: 1.0.3
|
||||||
@ -321,19 +312,3 @@ lxml==5.0.0
|
|||||||
# Python-3.9 binaries
|
# Python-3.9 binaries
|
||||||
|
|
||||||
PyGithub==2.3.0
|
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 bash install_cusparselt.sh
|
||||||
RUN rm 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
|
# 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.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
|
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
|
COPY ./common/install_rocm_magma.sh install_rocm_magma.sh
|
||||||
RUN bash ./install_rocm_magma.sh
|
RUN bash ./install_rocm_magma.sh
|
||||||
RUN rm 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 ROCM_PATH /opt/rocm
|
||||||
ENV PATH /opt/rocm/bin:$PATH
|
ENV PATH /opt/rocm/bin:$PATH
|
||||||
ENV PATH /opt/rocm/hcc/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
|
# try to reach out to S3, which docker build runners don't have access
|
||||||
COPY ./common/install_triton.sh install_triton.sh
|
COPY ./common/install_triton.sh install_triton.sh
|
||||||
COPY ./common/common_utils.sh common_utils.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
|
COPY triton_version.txt triton_version.txt
|
||||||
RUN if [ -n "${TRITON}" ]; then bash ./install_triton.sh; fi
|
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
|
# Install AOTriton
|
||||||
COPY ./aotriton_version.txt aotriton_version.txt
|
COPY ./aotriton_version.txt aotriton_version.txt
|
||||||
@ -123,8 +121,5 @@ RUN bash ./install_cache.sh && rm install_cache.sh
|
|||||||
ARG BUILD_ENVIRONMENT
|
ARG BUILD_ENVIRONMENT
|
||||||
ENV BUILD_ENVIRONMENT ${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
|
USER jenkins
|
||||||
CMD ["bash"]
|
CMD ["bash"]
|
||||||
|
|||||||
@ -30,7 +30,6 @@ RUN bash ./install_docs_reqs.sh && rm install_docs_reqs.sh
|
|||||||
ARG ANACONDA_PYTHON_VERSION
|
ARG ANACONDA_PYTHON_VERSION
|
||||||
ARG CONDA_CMAKE
|
ARG CONDA_CMAKE
|
||||||
ARG DOCS
|
ARG DOCS
|
||||||
ARG BUILD_ENVIRONMENT
|
|
||||||
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
|
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
|
||||||
ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH
|
ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH
|
||||||
ENV DOCS=$DOCS
|
ENV DOCS=$DOCS
|
||||||
|
|||||||
@ -49,8 +49,13 @@ if [[ ${BUILD_ENVIRONMENT} == *"parallelnative"* ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Enable LLVM dependency for TensorExpr testing
|
# Enable LLVM dependency for TensorExpr testing
|
||||||
export USE_LLVM=/opt/llvm
|
if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
|
||||||
export LLVM_DIR=/opt/llvm/lib/cmake/llvm
|
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
|
if [[ "$BUILD_ENVIRONMENT" == *executorch* ]]; then
|
||||||
# To build test_edge_op_registration
|
# To build test_edge_op_registration
|
||||||
@ -171,8 +176,7 @@ fi
|
|||||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source /opt/intel/oneapi/compiler/latest/env/vars.sh
|
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_XPU=1
|
||||||
export USE_KINETO=0
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# sccache will fail for CUDA builds if all cores are used for compiling
|
# sccache will fail for CUDA builds if all cores are used for compiling
|
||||||
@ -280,8 +284,9 @@ else
|
|||||||
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
|
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
|
||||||
"$BUILD_ENVIRONMENT" != *xla* ]]; then
|
"$BUILD_ENVIRONMENT" != *xla* ]]; then
|
||||||
if [[ "$BUILD_ENVIRONMENT" != *py3.8* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" != *py3.8* ]]; then
|
||||||
# Install numpy-2.0.2 for builds which are backward compatible with 1.X
|
# Install numpy-2.0 release candidate for builds
|
||||||
python -mpip install --pre numpy==2.0.2
|
# Which should be backward compatible with Numpy-1.X
|
||||||
|
python -mpip install --pre numpy==2.0.0rc1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WERROR=1 python setup.py clean
|
WERROR=1 python setup.py clean
|
||||||
|
|||||||
@ -179,7 +179,7 @@ function install_torchvision() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function install_tlparse() {
|
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"
|
PATH="$(python -m site --user-base)/bin:$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ function install_torchrec_and_fbgemm() {
|
|||||||
|
|
||||||
function clone_pytorch_xla() {
|
function clone_pytorch_xla() {
|
||||||
if [[ ! -d ./xla ]]; then
|
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
|
pushd xla
|
||||||
# pin the xla hash so that we don't get broken by changes to 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)"
|
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
|
time python test/run_test.py --verbose -i distributed/test_device_mesh
|
||||||
|
|
||||||
# DTensor/TP tests
|
# 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_examples
|
||||||
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_random_state
|
time python test/run_test.py --verbose -i distributed/tensor/parallel/test_tp_random_state
|
||||||
|
|
||||||
# FSDP2 tests
|
# FSDP2 tests
|
||||||
time python test/run_test.py --verbose -i distributed/_composable/fsdp/test_fully_shard_training -- -k test_2d_mlp_with_nd_mesh
|
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
|
# 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_2d_composability
|
||||||
time python test/run_test.py --verbose -i distributed/_composable/test_composability/test_pp_composability
|
|
||||||
|
|
||||||
# Other tests
|
# Other tests
|
||||||
time python test/run_test.py --verbose -i test_cuda_primary_ctx
|
time python test/run_test.py --verbose -i test_cuda_primary_ctx
|
||||||
|
|||||||
@ -6,9 +6,6 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
# Suppress ANSI color escape sequences
|
|
||||||
export TERM=vt100
|
|
||||||
|
|
||||||
# shellcheck source=./common.sh
|
# shellcheck source=./common.sh
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
||||||
|
|
||||||
@ -169,7 +166,7 @@ fi
|
|||||||
|
|
||||||
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
|
||||||
# Source Intel oneAPI envrioment script to enable xpu runtime related libraries
|
# 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
|
# shellcheck disable=SC1091
|
||||||
source /opt/intel/oneapi/compiler/latest/env/vars.sh
|
source /opt/intel/oneapi/compiler/latest/env/vars.sh
|
||||||
# Check XPU status before testing
|
# 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 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/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/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/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_comm.py --verbose
|
||||||
python test/run_test.py -i distributed/_composable/fsdp/test_fully_shard_training.py -k test_train_parity_multi_group --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() {
|
test_inductor_aoti() {
|
||||||
# docker build uses bdist_wheel which does not work with test_aot_inductor
|
# docker build uses bdist_wheel which does not work with test_aot_inductor
|
||||||
# TODO: need a faster way to build
|
# TODO: need a faster way to build
|
||||||
if [[ "$BUILD_ENVIRONMENT" == *rocm* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" != *rocm* ]]; then
|
||||||
# We need to hipify before building again
|
BUILD_AOT_INDUCTOR_TEST=1 python setup.py develop
|
||||||
python3 tools/amd_build/build_amd.py
|
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
|
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() {
|
test_inductor_cpp_wrapper_abi_compatible() {
|
||||||
@ -395,22 +391,7 @@ test_inductor_cpp_wrapper_abi_compatible() {
|
|||||||
# .github/workflows/inductor-perf-test-nightly.yml
|
# .github/workflows/inductor-perf-test-nightly.yml
|
||||||
DYNAMO_BENCHMARK_FLAGS=()
|
DYNAMO_BENCHMARK_FLAGS=()
|
||||||
|
|
||||||
pr_time_benchmarks() {
|
if [[ "${TEST_CONFIG}" == *dynamo_eager* ]]; then
|
||||||
|
|
||||||
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
|
|
||||||
DYNAMO_BENCHMARK_FLAGS+=(--backend eager)
|
DYNAMO_BENCHMARK_FLAGS+=(--backend eager)
|
||||||
elif [[ "${TEST_CONFIG}" == *aot_eager* ]]; then
|
elif [[ "${TEST_CONFIG}" == *aot_eager* ]]; then
|
||||||
DYNAMO_BENCHMARK_FLAGS+=(--backend aot_eager)
|
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"
|
--output "$TEST_REPORTS_DIR/${backend}_with_cudagraphs_freezing_autotune_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
||||||
fi
|
fi
|
||||||
if [[ "$DASHBOARD_TAG" == *aotinductor-true* ]] && [[ "$mode" == "inference" ]]; then
|
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" \
|
TORCHINDUCTOR_ABI_COMPATIBLE=1 $TASKSET python "benchmarks/dynamo/$suite.py" \
|
||||||
"${target_flag[@]}" --"$mode" --"$dtype" --export-aot-inductor --disable-cudagraphs "$@" \
|
"${target_flag[@]}" --"$mode" --"$dtype" --export-aot-inductor --disable-cudagraphs "$@" \
|
||||||
--output "$TEST_REPORTS_DIR/${backend}_aot_inductor_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
--output "$TEST_REPORTS_DIR/${backend}_aot_inductor_${suite}_${dtype}_${mode}_${device}_${target}.csv"
|
||||||
@ -575,10 +550,7 @@ test_single_dynamo_benchmark() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${TEST_CONFIG}" == *_avx2* ]]; then
|
if [[ "${TEST_CONFIG}" == *_avx2* ]]; then
|
||||||
TEST_CONFIG=${TEST_CONFIG//_avx2/}
|
TEST_CONFIG=${TEST_CONFIG::-5}
|
||||||
fi
|
|
||||||
if [[ "${TEST_CONFIG}" == *_avx512* ]]; then
|
|
||||||
TEST_CONFIG=${TEST_CONFIG//_avx512/}
|
|
||||||
fi
|
fi
|
||||||
python "benchmarks/dynamo/$suite.py" \
|
python "benchmarks/dynamo/$suite.py" \
|
||||||
--ci --accuracy --timing --explain \
|
--ci --accuracy --timing --explain \
|
||||||
@ -596,9 +568,6 @@ test_single_dynamo_benchmark() {
|
|||||||
|
|
||||||
test_inductor_micro_benchmark() {
|
test_inductor_micro_benchmark() {
|
||||||
TEST_REPORTS_DIR=$(pwd)/test/test-reports
|
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"
|
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,
|
# 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,
|
# and thus we lower its threshold to reduce flakiness. If this continues to be a problem,
|
||||||
# we switch to use some other model.
|
# 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
|
# Check memory compression ratio for a few models
|
||||||
for test in hf_Albert timm_vision_transformer; do
|
for test in hf_Albert timm_vision_transformer; do
|
||||||
@ -692,7 +662,7 @@ test_inductor_torchbench_smoketest_perf() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test_inductor_get_core_number() {
|
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}')))"
|
echo "$(($(lscpu | grep 'Cluster(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per cluster:' | awk '{print $4}')))"
|
||||||
else
|
else
|
||||||
echo "$(($(lscpu | grep 'Socket(s):' | awk '{print $2}') * $(lscpu | grep 'Core(s) per socket:' | awk '{print $4}')))"
|
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(){
|
test_inductor_set_cpu_affinity(){
|
||||||
#set jemalloc
|
#set jemalloc
|
||||||
JEMALLOC_LIB="$(find /usr/lib -name libjemalloc.so.2)"
|
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"
|
export MALLOC_CONF="oversize_threshold:1,background_thread:true,metadata_thp:auto,dirty_decay_ms:-1,muzzy_decay_ms:-1"
|
||||||
|
export KMP_AFFINITY=granularity=fine,compact,1,0
|
||||||
if [[ "${TEST_CONFIG}" != *aarch64* ]]; then
|
export KMP_BLOCKTIME=1
|
||||||
# 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
|
|
||||||
cores=$(test_inductor_get_core_number)
|
cores=$(test_inductor_get_core_number)
|
||||||
export OMP_NUM_THREADS=$cores
|
export OMP_NUM_THREADS=$cores
|
||||||
end_core=$((cores-1))
|
end_core=$((cores-1))
|
||||||
@ -1482,7 +1447,9 @@ elif [[ "${TEST_CONFIG}" == *inductor* ]]; then
|
|||||||
install_torchvision
|
install_torchvision
|
||||||
test_inductor_shard "${SHARD_NUMBER}"
|
test_inductor_shard "${SHARD_NUMBER}"
|
||||||
if [[ "${SHARD_NUMBER}" == 1 ]]; then
|
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
|
test_inductor_distributed
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -24,12 +24,6 @@ call %INSTALLER_DIR%\install_sccache.bat
|
|||||||
if errorlevel 1 goto fail
|
if errorlevel 1 goto fail
|
||||||
if not errorlevel 0 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.
|
:: Miniconda has been installed as part of the Windows AMI with all the dependencies.
|
||||||
:: We just need to activate it here
|
:: We just need to activate it here
|
||||||
call %INSTALLER_DIR%\activate_miniconda3.bat
|
call %INSTALLER_DIR%\activate_miniconda3.bat
|
||||||
@ -49,16 +43,6 @@ if "%VC_VERSION%" == "" (
|
|||||||
)
|
)
|
||||||
if errorlevel 1 goto fail
|
if errorlevel 1 goto fail
|
||||||
if not errorlevel 0 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
|
@echo on
|
||||||
popd
|
popd
|
||||||
|
|
||||||
@ -81,6 +65,13 @@ set CUDA_PATH_V%VERSION_SUFFIX%=%CUDA_PATH%
|
|||||||
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
set CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
||||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
||||||
set CUDNN_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%
|
set PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
|
||||||
|
|
||||||
:cuda_build_end
|
: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 CUDNN_LIB_DIR=%CUDA_PATH%\lib\x64
|
||||||
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
set CUDA_TOOLKIT_ROOT_DIR=%CUDA_PATH%
|
||||||
set CUDNN_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 PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%
|
||||||
set NUMBAPRO_CUDALIB=%CUDA_PATH%\bin
|
set NUMBAPRO_CUDALIB=%CUDA_PATH%\bin
|
||||||
set NUMBAPRO_LIBDEVICE=%CUDA_PATH%\nvvm\libdevice
|
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.
|
:: Run tests C++-side and load the exported script module.
|
||||||
cd build
|
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
|
test_custom_backend.exe model.pt
|
||||||
if ERRORLEVEL 1 exit /b 1
|
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.
|
:: Run tests C++-side and load the exported script module.
|
||||||
cd build
|
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
|
test_custom_ops.exe model.pt
|
||||||
if ERRORLEVEL 1 exit /b 1
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|||||||
@ -5,7 +5,7 @@ if errorlevel 1 exit /b 1
|
|||||||
set CWD=%cd%
|
set CWD=%cd%
|
||||||
|
|
||||||
set CPP_TESTS_DIR=%TMP_DIR_WIN%\build\torch\bin
|
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
|
set TORCH_CPP_TEST_MNIST_PATH=%CWD%\test\cpp\api\mnist
|
||||||
python tools\download_mnist.py --quiet -d %TORCH_CPP_TEST_MNIST_PATH%
|
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.
|
# Install Z3 optional dependency for Windows builds.
|
||||||
python -m pip install z3-solver==4.12.2.0
|
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_tests() {
|
||||||
# Run nvidia-smi if available
|
# Run nvidia-smi if available
|
||||||
for path in '/c/Program Files/NVIDIA Corporation/NVSMI/nvidia-smi.exe' /c/Windows/System32/nvidia-smi.exe; do
|
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
|
cd /tmp/libtorch
|
||||||
fi
|
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
|
# Test the package
|
||||||
/builder/check_binary.sh
|
/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
|
# Clean temp files
|
||||||
cd /builder && git clean -ffdx
|
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'"
|
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
|
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
||||||
# Only linux Python < 3.13 are supported wheels for triton
|
# 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
|
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.txt)
|
||||||
TRITON_REQUIREMENT="pytorch-triton==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
|
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
|
if [[ "$PACKAGE_TYPE" =~ .*wheel.* && -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*rocm.* && $(uname) == "Linux" ]]; then
|
||||||
TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
|
TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
|
||||||
if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
|
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}"
|
TRITON_REQUIREMENT="pytorch-triton-rocm==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
|
||||||
fi
|
fi
|
||||||
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
||||||
@ -102,10 +102,10 @@ fi
|
|||||||
|
|
||||||
# Set triton via PYTORCH_EXTRA_INSTALL_REQUIREMENTS for triton xpu package
|
# 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
|
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
|
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_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
|
fi
|
||||||
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
if [[ -z "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
|
||||||
export PYTORCH_EXTRA_INSTALL_REQUIREMENTS="${TRITON_REQUIREMENT}"
|
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 SCCACHE_IGNORE_SERVER_IO_ERROR=1
|
||||||
export VC_YEAR=2019
|
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:"
|
echo "Free space on filesystem before build:"
|
||||||
df -h
|
df -h
|
||||||
|
|
||||||
|
|||||||
@ -6,10 +6,6 @@ source "${BINARY_ENV_FILE:-/c/w/env}"
|
|||||||
export CUDA_VERSION="${DESIRED_CUDA/cu/}"
|
export CUDA_VERSION="${DESIRED_CUDA/cu/}"
|
||||||
export VC_YEAR=2019
|
export VC_YEAR=2019
|
||||||
|
|
||||||
if [[ "$DESIRED_CUDA" == 'xpu' ]]; then
|
|
||||||
export VC_YEAR=2022
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd "$BUILDER_ROOT"
|
pushd "$BUILDER_ROOT"
|
||||||
|
|
||||||
./windows/internal/smoke_test.bat
|
./windows/internal/smoke_test.bat
|
||||||
|
|||||||
2
.flake8
2
.flake8
@ -57,7 +57,7 @@ per-file-ignores =
|
|||||||
torch/distributed/_tensor/_collective_utils.py: TOR901
|
torch/distributed/_tensor/_collective_utils.py: TOR901
|
||||||
# This is a full package that happen to live within the test
|
# This is a full package that happen to live within the test
|
||||||
# folder, so ok to skip
|
# 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
|
optional-ascii-coding = True
|
||||||
exclude =
|
exclude =
|
||||||
./.git,
|
./.git,
|
||||||
|
|||||||
10
.github/actionlint.yaml
vendored
10
.github/actionlint.yaml
vendored
@ -3,20 +3,18 @@ self-hosted-runner:
|
|||||||
# GitHub hosted x86 Linux runners
|
# GitHub hosted x86 Linux runners
|
||||||
- linux.20_04.4x
|
- linux.20_04.4x
|
||||||
- linux.20_04.16x
|
- linux.20_04.16x
|
||||||
|
# Repo-specific LF hosted ARC runners
|
||||||
|
- linux.large.arc
|
||||||
# Organization-wide AWS Linux Runners
|
# Organization-wide AWS Linux Runners
|
||||||
- linux.large
|
- linux.large
|
||||||
- linux.2xlarge
|
- linux.2xlarge
|
||||||
- linux.4xlarge
|
- linux.4xlarge
|
||||||
- linux.9xlarge.ephemeral
|
- linux.9xlarge.ephemeral
|
||||||
- am2.linux.9xlarge.ephemeral
|
|
||||||
- linux.12xlarge
|
- linux.12xlarge
|
||||||
- linux.12xlarge.ephemeral
|
- linux.12xlarge.ephemeral
|
||||||
- linux.24xlarge
|
- linux.24xlarge
|
||||||
- linux.24xlarge.ephemeral
|
|
||||||
- linux.arm64.2xlarge
|
- linux.arm64.2xlarge
|
||||||
- linux.arm64.2xlarge.ephemeral
|
|
||||||
- linux.arm64.m7g.4xlarge
|
- linux.arm64.m7g.4xlarge
|
||||||
- linux.arm64.m7g.4xlarge.ephemeral
|
|
||||||
- linux.4xlarge.nvidia.gpu
|
- linux.4xlarge.nvidia.gpu
|
||||||
- linux.8xlarge.nvidia.gpu
|
- linux.8xlarge.nvidia.gpu
|
||||||
- linux.16xlarge.nvidia.gpu
|
- linux.16xlarge.nvidia.gpu
|
||||||
@ -40,7 +38,6 @@ self-hosted-runner:
|
|||||||
- amz2023.linux.24xlarge
|
- amz2023.linux.24xlarge
|
||||||
- amz2023.linux.arm64.2xlarge
|
- amz2023.linux.arm64.2xlarge
|
||||||
- amz2023.linux.arm64.m7g.4xlarge
|
- amz2023.linux.arm64.m7g.4xlarge
|
||||||
- amz2023.linux.arm64.m7g.4xlarge.ephemeral
|
|
||||||
- amz2023.linux.4xlarge.nvidia.gpu
|
- amz2023.linux.4xlarge.nvidia.gpu
|
||||||
- amz2023.linux.8xlarge.nvidia.gpu
|
- amz2023.linux.8xlarge.nvidia.gpu
|
||||||
- amz2023.linux.16xlarge.nvidia.gpu
|
- amz2023.linux.16xlarge.nvidia.gpu
|
||||||
@ -59,9 +56,6 @@ self-hosted-runner:
|
|||||||
# Repo-specific IBM hosted S390x runner
|
# Repo-specific IBM hosted S390x runner
|
||||||
- linux.s390x
|
- linux.s390x
|
||||||
# Organization wide AWS Windows runners
|
# Organization wide AWS Windows runners
|
||||||
- windows.g4dn.xlarge
|
|
||||||
- windows.g4dn.xlarge.nonephemeral
|
|
||||||
- windows.4xlarge
|
|
||||||
- windows.4xlarge.nonephemeral
|
- windows.4xlarge.nonephemeral
|
||||||
- windows.8xlarge.nvidia.gpu
|
- windows.8xlarge.nvidia.gpu
|
||||||
- windows.8xlarge.nvidia.gpu.nonephemeral
|
- windows.8xlarge.nvidia.gpu.nonephemeral
|
||||||
|
|||||||
@ -57,7 +57,7 @@ outputs:
|
|||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- uses: nick-fields/retry@v3.0.0
|
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
name: Setup dependencies
|
name: Setup dependencies
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ inputs.github-token }}
|
GITHUB_TOKEN: ${{ inputs.github-token }}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- uses: nick-fields/retry@v3.0.0
|
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
name: Setup dependencies
|
name: Setup dependencies
|
||||||
with:
|
with:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@ -24,7 +24,7 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- uses: nick-fields/retry@v3.0.0
|
- uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
name: Setup dependencies
|
name: Setup dependencies
|
||||||
with:
|
with:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
9
.github/actions/setup-linux/action.yml
vendored
9
.github/actions/setup-linux/action.yml
vendored
@ -44,7 +44,7 @@ runs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Log in to ECR
|
- name: Log in to ECR
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
env:
|
env:
|
||||||
AWS_RETRY_MODE: standard
|
AWS_RETRY_MODE: standard
|
||||||
AWS_MAX_ATTEMPTS: "5"
|
AWS_MAX_ATTEMPTS: "5"
|
||||||
@ -59,13 +59,6 @@ runs:
|
|||||||
aws ecr get-login-password --region "$AWS_DEFAULT_REGION" | docker login --username AWS \
|
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"
|
--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
|
- name: Preserve github env variables for use in docker
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
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
|
# retry this step several time similar to how checkout-pytorch GHA does
|
||||||
- name: Cleanup workspace
|
- name: Cleanup workspace
|
||||||
if: always()
|
if: always()
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@v2.8.2
|
||||||
env:
|
env:
|
||||||
EXTRA_DELETE_DIR: ${{ inputs.extra-delete-dir }}
|
EXTRA_DELETE_DIR: ${{ inputs.extra-delete-dir }}
|
||||||
with:
|
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
|
# Use this to auto apply labels based on other labels. Applies to both PRs and
|
||||||
# issues. Currently only supports any and all
|
# issues. Currently only supports any and all
|
||||||
- any:
|
- any:
|
||||||
- "module: opcheck"
|
- "module: custom operators"
|
||||||
then:
|
|
||||||
- "module: custom-operators"
|
|
||||||
- any:
|
|
||||||
- "module: custom-operators"
|
|
||||||
- "module: functionalization"
|
|
||||||
- "module: aotdispatch"
|
- "module: aotdispatch"
|
||||||
- "module: higher order operators"
|
|
||||||
- "module: fakeTensor"
|
|
||||||
- "module: ProxyTensor"
|
|
||||||
- "module: library"
|
|
||||||
- "module: reinplacing"
|
|
||||||
then:
|
then:
|
||||||
- "module: pt2-dispatcher"
|
- "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:
|
- any:
|
||||||
- "module: dynamo"
|
- "module: dynamo"
|
||||||
- "module: pt2-dispatcher"
|
- "module: pt2-dispatcher"
|
||||||
- "module: inductor"
|
- "module: inductor"
|
||||||
- "module: aotinductor"
|
|
||||||
- "module: cudagraphs"
|
|
||||||
- "oncall: export"
|
|
||||||
- "module: startup-tracing-compile"
|
|
||||||
- "module: compiled autograd"
|
|
||||||
- "module: flex attention"
|
|
||||||
- "module: dynamic shapes"
|
|
||||||
then:
|
then:
|
||||||
- "oncall: pt2"
|
- "oncall: pt2"
|
||||||
|
|||||||
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@ -29,6 +29,7 @@
|
|||||||
- torch/fx/experimental/recording.py
|
- torch/fx/experimental/recording.py
|
||||||
- torch/fx/experimental/sym_node.py
|
- torch/fx/experimental/sym_node.py
|
||||||
- torch/fx/experimental/validator.py
|
- torch/fx/experimental/validator.py
|
||||||
|
- torch/fx/experimental/_sym_dispatch_mode.py
|
||||||
- torch/fx/experimental/proxy_tensor.py
|
- torch/fx/experimental/proxy_tensor.py
|
||||||
- test/distributed/_tensor/test_dtensor_compile.py
|
- test/distributed/_tensor/test_dtensor_compile.py
|
||||||
- test/distributed/tensor/parallel/test_fsdp_2d_parallel.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
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.c.linux.10xlarge.avx2:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: m4.10xlarge
|
instance_type: m4.10xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 450
|
max_available: 450
|
||||||
os: linux
|
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:
|
lf.c.linux.24xl.spr-metal:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c7i.metal-24xl
|
instance_type: c7i.metal-24xl
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.c.linux.16xlarge.spr:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c7i.16xlarge
|
instance_type: c7i.16xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.c.linux.9xlarge.ephemeral:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c5.9xlarge
|
instance_type: c5.9xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 50
|
max_available: 20
|
||||||
os: linux
|
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:
|
lf.c.linux.12xlarge.ephemeral:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c5.12xlarge
|
instance_type: c5.12xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
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:
|
lf.c.linux.16xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.16xlarge
|
instance_type: g3.16xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.c.linux.24xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.24xlarge
|
instance_type: c5.24xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 500
|
max_available: 250
|
||||||
os: linux
|
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:
|
lf.c.linux.2xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.2xlarge
|
instance_type: c5.2xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 3120
|
max_available: 3120
|
||||||
os: linux
|
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:
|
lf.c.linux.4xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.4xlarge
|
instance_type: c5.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.c.linux.4xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.4xlarge
|
instance_type: g3.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.c.linux.8xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.8xlarge
|
instance_type: g3.8xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 400
|
max_available: 400
|
||||||
os: linux
|
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:
|
lf.c.linux.g4dn.12xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g4dn.12xlarge
|
instance_type: g4dn.12xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 250
|
max_available: 250
|
||||||
os: linux
|
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:
|
lf.c.linux.g4dn.metal.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g4dn.metal
|
instance_type: g4dn.metal
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
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:
|
lf.c.linux.g5.48xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.48xlarge
|
instance_type: g5.48xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.c.linux.g5.12xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.12xlarge
|
instance_type: g5.12xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.c.linux.g5.4xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.4xlarge
|
instance_type: g5.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 2400
|
max_available: 2400
|
||||||
os: linux
|
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:
|
lf.c.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g6.4xlarge
|
instance_type: g6.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 50
|
max_available: 30
|
||||||
os: linux
|
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:
|
lf.c.linux.large:
|
||||||
max_available: 1200
|
max_available: 1200
|
||||||
disk_size: 15
|
disk_size: 15
|
||||||
instance_type: c5.large
|
instance_type: c5.large
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
os: linux
|
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:
|
lf.c.linux.arm64.2xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: t4g.2xlarge
|
instance_type: t4g.2xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.c.linux.arm64.m7g.4xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.4xlarge
|
instance_type: m7g.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.c.linux.arm64.m7g.metal:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.metal
|
instance_type: m7g.metal
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 100
|
max_available: 100
|
||||||
os: linux
|
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:
|
lf.c.windows.4xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: c5d.4xlarge
|
instance_type: c5d.4xlarge
|
||||||
@ -367,3 +187,159 @@ runner_types:
|
|||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 250
|
max_available: 250
|
||||||
os: windows
|
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
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.linux.10xlarge.avx2:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: m4.10xlarge
|
instance_type: m4.10xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 450
|
max_available: 450
|
||||||
os: linux
|
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:
|
lf.linux.24xl.spr-metal:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c7i.metal-24xl
|
instance_type: c7i.metal-24xl
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.linux.16xlarge.spr:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c7i.16xlarge
|
instance_type: c7i.16xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.linux.9xlarge.ephemeral:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c5.9xlarge
|
instance_type: c5.9xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 50
|
max_available: 20
|
||||||
os: linux
|
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:
|
lf.linux.12xlarge.ephemeral:
|
||||||
disk_size: 200
|
disk_size: 200
|
||||||
instance_type: c5.12xlarge
|
instance_type: c5.12xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
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:
|
lf.linux.16xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.16xlarge
|
instance_type: g3.16xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.linux.24xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.24xlarge
|
instance_type: c5.24xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 500
|
max_available: 250
|
||||||
os: linux
|
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:
|
lf.linux.2xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.2xlarge
|
instance_type: c5.2xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 3120
|
max_available: 3120
|
||||||
os: linux
|
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:
|
lf.linux.4xlarge:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.4xlarge
|
instance_type: c5.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.linux.4xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.4xlarge
|
instance_type: g3.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
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:
|
lf.linux.8xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g3.8xlarge
|
instance_type: g3.8xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 400
|
max_available: 400
|
||||||
os: linux
|
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:
|
lf.linux.g4dn.12xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g4dn.12xlarge
|
instance_type: g4dn.12xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 250
|
max_available: 250
|
||||||
os: linux
|
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:
|
lf.linux.g4dn.metal.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g4dn.metal
|
instance_type: g4dn.metal
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
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:
|
lf.linux.g5.48xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.48xlarge
|
instance_type: g5.48xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.linux.g5.12xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.12xlarge
|
instance_type: g5.12xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 150
|
max_available: 150
|
||||||
os: linux
|
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:
|
lf.linux.g5.4xlarge.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g5.4xlarge
|
instance_type: g5.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 2400
|
max_available: 2400
|
||||||
os: linux
|
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:
|
lf.linux.g6.4xlarge.experimental.nvidia.gpu:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: g6.4xlarge
|
instance_type: g6.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 50
|
max_available: 30
|
||||||
os: linux
|
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:
|
lf.linux.large:
|
||||||
max_available: 1200
|
max_available: 1200
|
||||||
disk_size: 15
|
disk_size: 15
|
||||||
instance_type: c5.large
|
instance_type: c5.large
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
os: linux
|
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:
|
lf.linux.arm64.2xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: t4g.2xlarge
|
instance_type: t4g.2xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.linux.arm64.m7g.4xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.4xlarge
|
instance_type: m7g.4xlarge
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
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:
|
lf.linux.arm64.m7g.metal:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.metal
|
instance_type: m7g.metal
|
||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 100
|
max_available: 100
|
||||||
os: linux
|
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:
|
lf.windows.4xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: c5d.4xlarge
|
instance_type: c5d.4xlarge
|
||||||
@ -367,3 +187,159 @@ runner_types:
|
|||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 250
|
max_available: 250
|
||||||
os: windows
|
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:
|
mandatory_checks_name:
|
||||||
- EasyCLA
|
- EasyCLA
|
||||||
- Lint
|
- Lint
|
||||||
- pull / linux-focal-py3_9-clang9-xla / build
|
- pull / linux-focal-py3_8-clang9-xla / build
|
||||||
- pull / linux-focal-py3_9-clang9-xla / test (xla, 1, 1, linux.12xlarge)
|
- pull / linux-focal-py3_8-clang9-xla / test (xla, 1, 1, linux.12xlarge)
|
||||||
|
|
||||||
- name: Documentation
|
- name: Documentation
|
||||||
patterns:
|
patterns:
|
||||||
@ -282,11 +282,9 @@
|
|||||||
- torch/_C/_distributed*
|
- torch/_C/_distributed*
|
||||||
- torch/csrc/distributed/**
|
- torch/csrc/distributed/**
|
||||||
- torch/testing/_internal/distributed/**
|
- torch/testing/_internal/distributed/**
|
||||||
- torch/multiprocessing/**
|
|
||||||
- test/distributed/**
|
- test/distributed/**
|
||||||
- test/cpp/dist_autograd/**
|
- test/cpp/dist_autograd/**
|
||||||
- test/cpp/rpc/**
|
- test/cpp/rpc/**
|
||||||
- test/*multiprocessing*
|
|
||||||
approved_by:
|
approved_by:
|
||||||
- wconstab
|
- wconstab
|
||||||
- mrshenli
|
- 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-rocm
|
||||||
- ciflow/inductor-perf-compare
|
- ciflow/inductor-perf-compare
|
||||||
- ciflow/inductor-micro-benchmark
|
- ciflow/inductor-micro-benchmark
|
||||||
- ciflow/inductor-micro-benchmark-cpu-x86
|
|
||||||
- ciflow/inductor-cu124
|
- ciflow/inductor-cu124
|
||||||
- ciflow/linux-aarch64
|
- ciflow/linux-aarch64
|
||||||
- ciflow/mps
|
- 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
|
numpy=1.23.3
|
||||||
pyyaml=6.0
|
pyyaml=6.0
|
||||||
setuptools=68.2.2
|
setuptools=68.2.2
|
||||||
typing-extensions=4.11.0
|
typing-extensions=4.9.0
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
boto3==1.19.12
|
boto3==1.19.12
|
||||||
hypothesis==6.56.4
|
hypothesis==6.56.4
|
||||||
expecttest==0.2.1
|
expecttest==0.1.6
|
||||||
fbscribelogger==0.1.6
|
|
||||||
librosa>=0.6.2
|
librosa>=0.6.2
|
||||||
mpmath==1.3.0
|
mpmath==1.3.0
|
||||||
networkx==2.8.7
|
networkx==2.8.7
|
||||||
@ -19,7 +18,7 @@ pytest-rerunfailures==10.3
|
|||||||
pytest-flakefinder==1.1.0
|
pytest-flakefinder==1.1.0
|
||||||
scipy==1.10.1
|
scipy==1.10.1
|
||||||
sympy==1.12.1 ; python_version == "3.8"
|
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
|
unittest-xml-reporting<=3.2.0,>=2.0.0
|
||||||
xdoctest==1.1.0
|
xdoctest==1.1.0
|
||||||
filelock==3.6.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:
|
def read_triton_pin(device: str = "cuda") -> str:
|
||||||
triton_file = "triton.txt"
|
triton_file = "triton.txt"
|
||||||
if device == "xpu":
|
if device == "rocm":
|
||||||
|
triton_file = "triton-rocm.txt"
|
||||||
|
elif device == "xpu":
|
||||||
triton_file = "triton-xpu.txt"
|
triton_file = "triton-xpu.txt"
|
||||||
with open(REPO_DIR / ".ci" / "docker" / "ci_commit_pins" / triton_file) as f:
|
with open(REPO_DIR / ".ci" / "docker" / "ci_commit_pins" / triton_file) as f:
|
||||||
return f.read().strip()
|
return f.read().strip()
|
||||||
@ -48,25 +50,6 @@ def patch_init_py(
|
|||||||
f.write(orig)
|
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(
|
def build_triton(
|
||||||
*,
|
*,
|
||||||
version: str,
|
version: str,
|
||||||
@ -108,9 +91,6 @@ def build_triton(
|
|||||||
else:
|
else:
|
||||||
check_call(["git", "checkout", commit_hash], cwd=triton_basedir)
|
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:
|
if build_conda:
|
||||||
with open(triton_basedir / "meta.yaml", "w") as meta:
|
with open(triton_basedir / "meta.yaml", "w") as meta:
|
||||||
print(
|
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 = ArgumentParser("Check PR labels")
|
||||||
parser.add_argument("pr_num", type=int)
|
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()
|
return parser.parse_args()
|
||||||
|
|
||||||
@ -47,13 +41,10 @@ def main() -> None:
|
|||||||
if not has_required_labels(pr):
|
if not has_required_labels(pr):
|
||||||
print(LABEL_ERR_MSG)
|
print(LABEL_ERR_MSG)
|
||||||
add_label_err_comment(pr)
|
add_label_err_comment(pr)
|
||||||
if args.exit_non_zero:
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
else:
|
||||||
delete_all_label_err_comments(pr)
|
delete_all_label_err_comments(pr)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if args.exit_non_zero:
|
pass
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
sys.exit(0)
|
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)
|
repo.create_branch_and_checkout(branch=cherry_pick_branch)
|
||||||
|
|
||||||
# We might want to support ghstack later
|
# We might want to support ghstack later
|
||||||
# We don't want to resolve conflicts here.
|
repo._run_git("cherry-pick", "-x", "-X", "theirs", commit_sha)
|
||||||
repo._run_git("cherry-pick", "-x", commit_sha)
|
|
||||||
repo.push(branch=cherry_pick_branch, dry_run=False)
|
repo.push(branch=cherry_pick_branch, dry_run=False)
|
||||||
|
|
||||||
return cherry_pick_branch
|
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
|
# 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
|
# 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
|
# Some constants used to handle disabled and unstable jobs
|
||||||
JOB_NAME_SEP = "/"
|
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 = ["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"}
|
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"]
|
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'"
|
"nvidia-nvtx-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64'"
|
||||||
),
|
),
|
||||||
"12.4": (
|
"12.4": (
|
||||||
"nvidia-cuda-nvrtc-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.127; 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.127; 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-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-cublas-cu12==12.4.2.65; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||||
"nvidia-cufft-cu12==11.2.1.3; 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.147; 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.1.9; 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.1.170; 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-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-nvtx-cu12==12.4.99; platform_system == 'Linux' and platform_machine == 'x86_64' | "
|
||||||
"nvidia-nvjitlink-cu12==12.4.127; 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,
|
os: str,
|
||||||
arches: Optional[List[str]] = None,
|
arches: Optional[List[str]] = None,
|
||||||
python_versions: Optional[List[str]] = None,
|
python_versions: Optional[List[str]] = None,
|
||||||
use_split_build: bool = False,
|
|
||||||
) -> List[Dict[str, str]]:
|
) -> List[Dict[str, str]]:
|
||||||
package_type = "wheel"
|
package_type = "wheel"
|
||||||
if os == "linux" or os == "linux-aarch64" or os == "linux-s390x":
|
if os == "linux" or os == "linux-aarch64" or os == "linux-s390x":
|
||||||
@ -341,7 +340,7 @@ def generate_wheels_matrix(
|
|||||||
if os == "linux":
|
if os == "linux":
|
||||||
arches += CPU_CXX11_ABI_ARCH + CUDA_ARCHES + ROCM_ARCHES + XPU_ARCHES
|
arches += CPU_CXX11_ABI_ARCH + CUDA_ARCHES + ROCM_ARCHES + XPU_ARCHES
|
||||||
elif os == "windows":
|
elif os == "windows":
|
||||||
arches += CUDA_ARCHES + XPU_ARCHES
|
arches += CUDA_ARCHES
|
||||||
elif os == "linux-aarch64":
|
elif os == "linux-aarch64":
|
||||||
# Only want the one arch as the CPU type is different and
|
# Only want the one arch as the CPU type is different and
|
||||||
# uses different build/test scripts
|
# uses different build/test scripts
|
||||||
@ -366,23 +365,13 @@ def generate_wheels_matrix(
|
|||||||
else arch_version
|
else arch_version
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: Enable python 3.13 on rocm, aarch64, windows
|
# TODO: Enable python 3.13 on rocm, xpu, aarch64, windows
|
||||||
if (
|
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":
|
) and python_version == "3.13":
|
||||||
continue
|
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
|
# 12.1 linux wheels require PYTORCH_EXTRA_INSTALL_REQUIREMENTS to install
|
||||||
|
|
||||||
if (
|
if (
|
||||||
arch_version in ["12.4", "12.1", "11.8"]
|
arch_version in ["12.4", "12.1", "11.8"]
|
||||||
and os == "linux"
|
and os == "linux"
|
||||||
@ -396,7 +385,6 @@ def generate_wheels_matrix(
|
|||||||
"desired_cuda": translate_desired_cuda(
|
"desired_cuda": translate_desired_cuda(
|
||||||
gpu_arch_type, gpu_arch_version
|
gpu_arch_type, gpu_arch_version
|
||||||
),
|
),
|
||||||
"use_split_build": "True" if use_split_build else "False",
|
|
||||||
"devtoolset": (
|
"devtoolset": (
|
||||||
"cxx11-abi" if arch_version == "cuda-aarch64" else ""
|
"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 arch_version != "cuda-aarch64":
|
||||||
if python_version == "3.10" and arch_version == "12.1":
|
|
||||||
ret.append(
|
ret.append(
|
||||||
{
|
{
|
||||||
"python_version": python_version,
|
"python_version": python_version,
|
||||||
@ -422,16 +409,40 @@ def generate_wheels_matrix(
|
|||||||
"desired_cuda": translate_desired_cuda(
|
"desired_cuda": translate_desired_cuda(
|
||||||
gpu_arch_type, gpu_arch_version
|
gpu_arch_type, gpu_arch_version
|
||||||
),
|
),
|
||||||
"use_split_build": "True" if use_split_build else "False",
|
"use_split_build": "True",
|
||||||
"devtoolset": "",
|
"devtoolset": "",
|
||||||
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
||||||
"package_type": package_type,
|
"package_type": package_type,
|
||||||
"pytorch_extra_install_requirements": "",
|
"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[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:
|
else:
|
||||||
ret.append(
|
ret.append(
|
||||||
{
|
{
|
||||||
@ -441,9 +452,10 @@ def generate_wheels_matrix(
|
|||||||
"desired_cuda": translate_desired_cuda(
|
"desired_cuda": translate_desired_cuda(
|
||||||
gpu_arch_type, gpu_arch_version
|
gpu_arch_type, gpu_arch_version
|
||||||
),
|
),
|
||||||
"use_split_build": "True" if use_split_build else "False",
|
|
||||||
"devtoolset": (
|
"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],
|
"container_image": WHEEL_CONTAINER_IMAGES[arch_version],
|
||||||
"package_type": package_type,
|
"package_type": package_type,
|
||||||
@ -452,12 +464,11 @@ def generate_wheels_matrix(
|
|||||||
),
|
),
|
||||||
"pytorch_extra_install_requirements": (
|
"pytorch_extra_install_requirements": (
|
||||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS["12.1"] # fmt: skip
|
PYTORCH_EXTRA_INSTALL_REQUIREMENTS["12.1"] # fmt: skip
|
||||||
if os != "linux" and gpu_arch_type != "xpu"
|
if os != "linux"
|
||||||
else ""
|
else ""
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return ret
|
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
|
# Mainly for macos
|
||||||
cross_compile_arm64: bool = False
|
cross_compile_arm64: bool = False
|
||||||
macos_runner: str = "macos-14-xlarge"
|
macos_runner: str = "macos-14-xlarge"
|
||||||
use_split_build: bool = False
|
|
||||||
|
|
||||||
def __post_init__(self) -> None:
|
def __post_init__(self) -> None:
|
||||||
if self.abi_version:
|
if self.abi_version:
|
||||||
@ -76,11 +75,6 @@ class BinaryBuildWorkflow:
|
|||||||
GITHUB_DIR
|
GITHUB_DIR
|
||||||
/ f"workflows/generated-{self.build_environment}-{self.branches}.yml"
|
/ 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:
|
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
|
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"])
|
output_file.writelines([f"# @{GENERATED} DO NOT EDIT MANUALLY\n"])
|
||||||
@ -116,20 +110,6 @@ LINUX_BINARY_BUILD_WORFKLOWS = [
|
|||||||
isolated_workflow=True,
|
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(
|
BinaryBuildWorkflow(
|
||||||
os=OperatingSystem.LINUX,
|
os=OperatingSystem.LINUX,
|
||||||
package_type="conda",
|
package_type="conda",
|
||||||
@ -178,25 +158,10 @@ LINUX_BINARY_SMOKE_WORKFLOWS = [
|
|||||||
build_configs=generate_binary_build_matrix.generate_wheels_matrix(
|
build_configs=generate_binary_build_matrix.generate_wheels_matrix(
|
||||||
OperatingSystem.LINUX,
|
OperatingSystem.LINUX,
|
||||||
arches=["11.8", "12.1", "12.4"],
|
arches=["11.8", "12.1", "12.4"],
|
||||||
python_versions=["3.9"],
|
python_versions=["3.8"],
|
||||||
),
|
),
|
||||||
branches="main",
|
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(
|
BinaryBuildWorkflow(
|
||||||
os=OperatingSystem.LINUX,
|
os=OperatingSystem.LINUX,
|
||||||
package_type="libtorch",
|
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:
|
with urlopen(Request(url, headers=headers, data=data_, method=method)) as conn:
|
||||||
return conn.headers, reader(conn)
|
return conn.headers, reader(conn)
|
||||||
except HTTPError as err:
|
except HTTPError as err:
|
||||||
if (
|
if err.code == 403 and all(
|
||||||
err.code == 403
|
key in err.headers for key in ["X-RateLimit-Limit", "X-RateLimit-Used"]
|
||||||
and all(
|
|
||||||
key in err.headers
|
|
||||||
for key in ["X-RateLimit-Limit", "X-RateLimit-Remaining"]
|
|
||||||
)
|
|
||||||
and int(err.headers["X-RateLimit-Remaining"]) == 0
|
|
||||||
):
|
):
|
||||||
print(
|
print(
|
||||||
f"""{url}
|
f"""Rate limit exceeded:
|
||||||
Rate limit exceeded:
|
|
||||||
Used: {err.headers['X-RateLimit-Used']}
|
Used: {err.headers['X-RateLimit-Used']}
|
||||||
Limit: {err.headers['X-RateLimit-Limit']}
|
Limit: {err.headers['X-RateLimit-Limit']}
|
||||||
Remaining: {err.headers['X-RateLimit-Remaining']}
|
Remaining: {err.headers['X-RateLimit-Remaining']}
|
||||||
Resets at: {err.headers['x-RateLimit-Reset']}"""
|
Resets at: {err.headers['x-RateLimit-Reset']}"""
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
print(f"Error fetching {url} {err}")
|
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
.github/scripts/gitutils.py
vendored
1
.github/scripts/gitutils.py
vendored
@ -445,6 +445,7 @@ def retries_decorator(
|
|||||||
print(
|
print(
|
||||||
f'Attempt {idx} of {num_retries} to call {f.__name__} failed with "{e}"'
|
f'Attempt {idx} of {num_retries} to call {f.__name__} failed with "{e}"'
|
||||||
)
|
)
|
||||||
|
pass
|
||||||
return cast(T, rc)
|
return cast(T, rc)
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|||||||
131
.github/scripts/runner_determinator.py
vendored
131
.github/scripts/runner_determinator.py
vendored
@ -1,29 +1,5 @@
|
|||||||
# flake8: noqa: G004
|
# 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 logging
|
||||||
import os
|
import os
|
||||||
from argparse import ArgumentParser
|
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 = "lf." # use runners from the linux foundation
|
||||||
WORKFLOW_LABEL_LF_CANARY = "lf.c." # use canary 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", "")
|
GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT", "")
|
||||||
GH_OUTPUT_KEY_AMI = "runner-ami"
|
|
||||||
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
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(
|
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:
|
) -> str:
|
||||||
# If the trigger was a new tag added by a bot, this is a ciflow case
|
# 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
|
# Fetch the actual username from the original PR. The PR number is
|
||||||
# embedded in the tag name: ciflow/<name>/<pr-number>
|
# embedded in the tag name: ciflow/<name>/<pr-number>
|
||||||
|
|
||||||
gh = get_gh_client(github_token)
|
|
||||||
|
|
||||||
if username == "pytorch-bot[bot]" and ref_type == "tag":
|
if username == "pytorch-bot[bot]" and ref_type == "tag":
|
||||||
split_tag = ref_name.split("/")
|
split_tag = ref_name.split("/")
|
||||||
if (
|
if (
|
||||||
@ -166,32 +135,22 @@ def get_potential_pr_author(
|
|||||||
|
|
||||||
|
|
||||||
def is_exception_branch(branch: str) -> bool:
|
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"}
|
return branch.split("/")[0] in {"main", "nightly", "release", "landchecks"}
|
||||||
|
|
||||||
|
|
||||||
def get_fleet(rollout_state: str, workflow_requestors: Iterable[str]) -> str:
|
def get_workflow_type(issue: Issue, 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.
|
|
||||||
"""
|
|
||||||
|
|
||||||
try:
|
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.")
|
log.info("LF Workflows are disabled for everyone. Using meta runners.")
|
||||||
return WORKFLOW_LABEL_META
|
return WORKFLOW_LABEL_META
|
||||||
elif rollout_state[0] == "*":
|
elif first_comment[0] == "*":
|
||||||
log.info("LF Workflows are enabled for everyone. Using LF runners.")
|
log.info("LF Workflows are enabled for everyone. Using LF runners.")
|
||||||
return WORKFLOW_LABEL_LF
|
return WORKFLOW_LABEL_LF
|
||||||
else:
|
else:
|
||||||
all_opted_in_users = {
|
all_opted_in_users = {
|
||||||
usr_raw.strip("\n\t@ ").split(",")[0]
|
usr_raw.strip("\n\t@ ") for usr_raw in first_comment.split()
|
||||||
for usr_raw in rollout_state.split()
|
|
||||||
}
|
}
|
||||||
opted_in_requestors = {
|
opted_in_requestors = {
|
||||||
usr for usr in workflow_requestors if usr in all_opted_in_users
|
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
|
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:
|
def main() -> None:
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
|
|
||||||
if args.github_ref_type == "branch" and is_exception_branch(args.github_branch):
|
if args.github_ref_type == "branch" and is_exception_branch(args.github_branch):
|
||||||
log.info(f"Exception branch: '{args.github_branch}', using meta runners")
|
log.info(f"Exception branch: '{args.github_branch}', using meta runners")
|
||||||
label_type = WORKFLOW_LABEL_META
|
label_type = WORKFLOW_LABEL_META
|
||||||
runner_ami = RUNNER_AMI_LEGACY
|
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
rollout_state = get_rollout_state_from_issue(
|
gh = get_gh_client(args.github_token)
|
||||||
args.github_token, args.github_issue_repo, args.github_issue
|
# 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(
|
username = get_potential_pr_author(
|
||||||
args.github_token,
|
gh,
|
||||||
args.github_repo,
|
args.github_repo,
|
||||||
args.github_actor,
|
args.github_actor,
|
||||||
args.github_ref_type,
|
args.github_ref_type,
|
||||||
args.github_branch,
|
args.github_branch,
|
||||||
)
|
)
|
||||||
|
label_type = get_workflow_type(
|
||||||
label_type = get_fleet(
|
issue,
|
||||||
rollout_state,
|
|
||||||
(
|
(
|
||||||
args.github_issue_owner,
|
args.github_issue_owner,
|
||||||
username,
|
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:
|
except Exception as e:
|
||||||
log.error(
|
log.error(
|
||||||
f"Failed to get issue. Falling back to meta runners. Exception: {e}"
|
f"Failed to get issue. Falling back to meta runners. Exception: {e}"
|
||||||
)
|
)
|
||||||
label_type = WORKFLOW_LABEL_META
|
label_type = WORKFLOW_LABEL_META
|
||||||
runner_ami = RUNNER_AMI_LEGACY
|
|
||||||
|
|
||||||
# For Canary builds use canary runners
|
# For Canary builds use canary runners
|
||||||
if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
|
if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
|
||||||
label_type = WORKFLOW_LABEL_LF_CANARY
|
label_type = WORKFLOW_LABEL_LF_CANARY
|
||||||
|
|
||||||
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
|
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
|
||||||
set_github_output(GH_OUTPUT_KEY_AMI, runner_ami)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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.
|
## Install prerequisites.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sudo dnf install podman podman-docker jq
|
$ sudo dnf install docker
|
||||||
```
|
```
|
||||||
|
|
||||||
## Add services.
|
## Add services.
|
||||||
@ -27,48 +27,23 @@ $ sudo systemctl enable --now qemu-user-static
|
|||||||
|
|
||||||
## Rebuild the image
|
## Rebuild the image
|
||||||
|
|
||||||
First build s390x builder image `docker.io/pytorch/manylinuxs390x-builder`,
|
In order to build or update the `iiilinuxibmcom/actions-runner` image, e.g. to get the
|
||||||
using following commands:
|
latest OS security fixes, use the 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:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cd self-hosted-builder
|
$ cd self-hosted-builder
|
||||||
$ sudo docker build \
|
$ sudo docker build \
|
||||||
|
--build-arg repo=<owner>/<name> \
|
||||||
|
--build-arg token=<***> \
|
||||||
--pull \
|
--pull \
|
||||||
-f actions-runner.Dockerfile \
|
-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`.
|
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.
|
## Autostart the runner.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
# Self-Hosted IBM Z Github Actions Runner.
|
# Self-Hosted IBM Z Github Actions Runner.
|
||||||
|
|
||||||
# Temporary image: amd64 dependencies.
|
# 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
|
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.
|
# Main image.
|
||||||
FROM docker.io/s390x/ubuntu:23.10
|
FROM docker.io/s390x/ubuntu:22.04
|
||||||
|
|
||||||
# Packages for pytorch building and testing.
|
# Packages for pytorch building and testing.
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -16,7 +16,6 @@ RUN apt-get update && apt-get -y install \
|
|||||||
gcc \
|
gcc \
|
||||||
git \
|
git \
|
||||||
jq \
|
jq \
|
||||||
zip \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
@ -44,28 +43,24 @@ COPY fs/ /
|
|||||||
|
|
||||||
RUN chmod +x /usr/bin/actions-runner /usr/bin/entrypoint
|
RUN chmod +x /usr/bin/actions-runner /usr/bin/entrypoint
|
||||||
|
|
||||||
# install podman
|
|
||||||
RUN apt -y install podman podman-docker
|
|
||||||
|
|
||||||
# amd64 Github Actions Runner.
|
# amd64 Github Actions Runner.
|
||||||
RUN useradd -m actions-runner
|
RUN useradd -m actions-runner
|
||||||
USER actions-runner
|
USER actions-runner
|
||||||
WORKDIR /home/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.
|
# repository
|
||||||
# build workflows use "python -m pip install ...",
|
ARG repo
|
||||||
# and it doesn't work for non-root user
|
|
||||||
RUN virtualenv --system-site-packages venv
|
|
||||||
|
|
||||||
# copy prebuilt manywheel docker image for builds and tests
|
# repository token
|
||||||
# build command is:
|
ARG token
|
||||||
# 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
|
|
||||||
|
|
||||||
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"]
|
ENTRYPOINT ["/usr/bin/entrypoint"]
|
||||||
CMD ["/usr/bin/actions-runner"]
|
CMD ["/usr/bin/actions-runner"]
|
||||||
|
|||||||
@ -8,16 +8,12 @@ StartLimitIntervalSec=0
|
|||||||
Type=simple
|
Type=simple
|
||||||
Restart=always
|
Restart=always
|
||||||
ExecStartPre=-/usr/bin/docker rm --force actions-runner.%i
|
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 \
|
ExecStart=/usr/bin/docker run \
|
||||||
--env-file=/etc/actions-runner/%i/env \
|
|
||||||
--env-file=/etc/actions-runner/%i/ghtoken.env \
|
|
||||||
--init \
|
--init \
|
||||||
--interactive \
|
--interactive \
|
||||||
--name=actions-runner.%i \
|
--name=actions-runner.%i \
|
||||||
--rm \
|
--rm \
|
||||||
--privileged \
|
iiilinuxibmcom/actions-runner
|
||||||
iiilinuxibmcom/actions-runner.%i
|
|
||||||
ExecStop=/bin/sh -c "docker exec actions-runner.%i kill -INT -- -1"
|
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 wait actions-runner.%i"
|
||||||
ExecStop=/bin/sh -c "docker rm actions-runner.%i"
|
ExecStop=/bin/sh -c "docker rm actions-runner.%i"
|
||||||
|
|||||||
@ -2,45 +2,5 @@
|
|||||||
|
|
||||||
set -e -u
|
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 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:
|
class Object:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.pr_num = 76123
|
self.pr_num = 76123
|
||||||
self.exit_non_zero = False
|
|
||||||
|
|
||||||
return Object()
|
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 = self.get_title() + f" (#{self.pr_num})\n\n"
|
||||||
msg += msg_body
|
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"\nPull Request resolved: {self.get_pr_url()}\n"
|
||||||
msg += f"Approved by: {approved_by_urls}\n"
|
msg += f"Approved by: {approved_by_urls}\n"
|
||||||
if ghstack_deps:
|
if ghstack_deps:
|
||||||
msg += f"ghstack dependencies: {', '.join([f'#{pr.pr_num}' for pr in ghstack_deps])}\n"
|
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
|
return msg
|
||||||
|
|
||||||
def add_numbered_label(self, label_base: str, dry_run: bool) -> None:
|
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 upload_artifact_s3_action = "seemethere/upload-artifact-s3@v5" -%}
|
||||||
{%- set download_artifact_s3_action = "seemethere/download-artifact-s3@v4" -%}
|
{%- set download_artifact_s3_action = "seemethere/download-artifact-s3@v4" -%}
|
||||||
{%- set upload_artifact_action = "actions/upload-artifact@v4.4.0" -%}
|
{%- set upload_artifact_action = "actions/upload-artifact@v3" -%}
|
||||||
{%- set download_artifact_action = "actions/download-artifact@v4.1.7" -%}
|
{%- set download_artifact_action = "actions/download-artifact@v3" -%}
|
||||||
|
|
||||||
{%- set timeout_minutes = 240 -%}
|
{%- set timeout_minutes = 240 -%}
|
||||||
|
|
||||||
# NOTE: If testing pytorch/builder changes you can change this variable to change what pytorch/builder reference
|
# NOTE: If testing pytorch/builder changes you can change this variable to change what pytorch/builder reference
|
||||||
# the binary builds will check out
|
# the binary builds will check out
|
||||||
{%- set builder_repo = "pytorch/builder" -%}
|
{%- set builder_repo = "pytorch/builder" -%}
|
||||||
{%- set builder_branch = "release/2.5" -%}
|
{%- set builder_branch = "main" -%}
|
||||||
|
|
||||||
{%- macro concurrency(build_environment) -%}
|
{%- macro concurrency(build_environment) -%}
|
||||||
concurrency:
|
concurrency:
|
||||||
@ -36,7 +36,7 @@ concurrency:
|
|||||||
{%- macro setup_ec2_windows() -%}
|
{%- macro setup_ec2_windows() -%}
|
||||||
!{{ display_ec2_information() }}
|
!{{ display_ec2_information() }}
|
||||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
- 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
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@ -52,32 +52,19 @@ env:
|
|||||||
!{{ common.concurrency(build_environment) }}
|
!{{ common.concurrency(build_environment) }}
|
||||||
|
|
||||||
jobs:
|
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 %}
|
{%- for config in build_configs %}
|
||||||
!{{ config["build_name"] }}-build:
|
!{{ config["build_name"] }}-build:
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
uses: ./.github/workflows/_binary-build-linux.yml
|
uses: ./.github/workflows/_binary-build-linux.yml
|
||||||
needs: get-label-type
|
|
||||||
with:!{{ upload.binary_env_as_input(config) }}
|
with:!{{ upload.binary_env_as_input(config) }}
|
||||||
{%- if "aarch64" in build_environment %}
|
{%- if "aarch64" in build_environment %}
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
{%- elif "s390x" in build_environment %}
|
{%- elif "s390x" in build_environment %}
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
{%- elif "conda" in build_environment and config["gpu_arch_type"] == "cuda" %}
|
{%- elif "conda" in build_environment and config["gpu_arch_type"] == "cuda" %}
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
runs_on: linux.24xlarge
|
||||||
runs_on: linux.24xlarge.ephemeral
|
|
||||||
{%- else %}
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
build_name: !{{ config["build_name"] }}
|
build_name: !{{ config["build_name"] }}
|
||||||
build_environment: !{{ build_environment }}
|
build_environment: !{{ build_environment }}
|
||||||
@ -93,9 +80,7 @@ jobs:
|
|||||||
{%- if config["gpu_arch_type"] != "cuda-aarch64" %}
|
{%- if config["gpu_arch_type"] != "cuda-aarch64" %}
|
||||||
!{{ config["build_name"] }}-test: # Testing
|
!{{ config["build_name"] }}-test: # Testing
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
needs:
|
needs: !{{ config["build_name"] }}-build
|
||||||
- !{{ config["build_name"] }}-build
|
|
||||||
- get-label-type
|
|
||||||
{%- if config["gpu_arch_type"] not in ["rocm", "xpu"] %}
|
{%- if config["gpu_arch_type"] not in ["rocm", "xpu"] %}
|
||||||
uses: ./.github/workflows/_binary-test-linux.yml
|
uses: ./.github/workflows/_binary-test-linux.yml
|
||||||
with:!{{ upload.binary_env_as_input(config) }}
|
with:!{{ upload.binary_env_as_input(config) }}
|
||||||
@ -110,10 +95,8 @@ jobs:
|
|||||||
{%- elif config["gpu_arch_type"] == "rocm" %}
|
{%- elif config["gpu_arch_type"] == "rocm" %}
|
||||||
runs_on: linux.rocm.gpu
|
runs_on: linux.rocm.gpu
|
||||||
{%- elif config["gpu_arch_type"] == "cuda" %}
|
{%- elif config["gpu_arch_type"] == "cuda" %}
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runs_on: linux.4xlarge.nvidia.gpu
|
runs_on: linux.4xlarge.nvidia.gpu
|
||||||
{%- else %}
|
{%- else %}
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runs_on: linux.4xlarge
|
runs_on: linux.4xlarge
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
secrets:
|
secrets:
|
||||||
@ -142,10 +125,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: !{{ config["build_name"] }}
|
name: !{{ config["build_name"] }}
|
||||||
path: "${{ runner.temp }}/artifacts/"
|
path: "${{ runner.temp }}/artifacts/"
|
||||||
!{{ common.checkout(deep_clone=False, directory="pytorch", 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, checkout_pr_head=False) }}
|
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: !{{ config["container_image"] }}
|
docker-image: !{{ config["container_image"] }}
|
||||||
- name: Test Pytorch binary
|
- name: Test Pytorch binary
|
||||||
@ -164,13 +147,13 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: !{{ config["build_name"] }}
|
name: !{{ config["build_name"] }}
|
||||||
path: "${{ runner.temp }}/artifacts/"
|
path: "${{ runner.temp }}/artifacts/"
|
||||||
!{{ common.checkout(deep_clone=False, directory="pytorch", 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, checkout_pr_head=False) }}
|
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||||
- name: ROCm set GPU_FLAG
|
- name: ROCm set GPU_FLAG
|
||||||
run: |
|
run: |
|
||||||
echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
|
echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: !{{ config["container_image"] }}
|
docker-image: !{{ config["container_image"] }}
|
||||||
- name: Test Pytorch binary
|
- 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 %}
|
{%- 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 }}
|
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: !{{ config.pytorch_extra_install_requirements }}
|
||||||
{%- endif %}
|
{%- 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:
|
steps:
|
||||||
!{{ set_runner_specific_vars() }}
|
!{{ set_runner_specific_vars() }}
|
||||||
- name: Install conda and dependencies
|
- name: Install conda and dependencies
|
||||||
@ -78,10 +81,10 @@ jobs:
|
|||||||
elif [ -d "/Applications/Xcode_13.3.1.app" ]; then
|
elif [ -d "/Applications/Xcode_13.3.1.app" ]; then
|
||||||
echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
|
echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
|
||||||
fi
|
fi
|
||||||
!{{ common.checkout(deep_clone=False, directory="pytorch", 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, checkout_pr_head=False) }}
|
!{{ 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)
|
- 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 }}
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 5
|
timeout_minutes: 5
|
||||||
@ -101,7 +104,7 @@ jobs:
|
|||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_macos_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: !{{ config["build_name"] }}
|
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 %}
|
{%- if is_windows %}
|
||||||
# This is a dummy value for libtorch to work correctly with our batch scripts
|
# 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
|
# without this value pip does not get installed for some reason
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.8"
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- else %}
|
{%- else %}
|
||||||
|
|||||||
@ -53,24 +53,10 @@ env:
|
|||||||
!{{ common.concurrency(build_environment) }}
|
!{{ common.concurrency(build_environment) }}
|
||||||
|
|
||||||
jobs:
|
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 %}
|
{%- for config in build_configs %}
|
||||||
!{{ config["build_name"] }}-build:
|
!{{ config["build_name"] }}-build:
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
needs: get-label-type
|
runs-on: windows.4xlarge.nonephemeral
|
||||||
{%- 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 %}
|
|
||||||
timeout-minutes: !{{ common.timeout_minutes }}
|
timeout-minutes: !{{ common.timeout_minutes }}
|
||||||
!{{ upload.binary_env(config, True) }}
|
!{{ upload.binary_env(config, True) }}
|
||||||
{%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0 %}
|
{%- if config.pytorch_extra_install_requirements is defined and config.pytorch_extra_install_requirements|d('')|length > 0 %}
|
||||||
@ -79,8 +65,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
!{{ common.setup_ec2_windows() }}
|
!{{ common.setup_ec2_windows() }}
|
||||||
!{{ set_runner_specific_vars() }}
|
!{{ set_runner_specific_vars() }}
|
||||||
!{{ common.checkout(deep_clone=False, directory="pytorch", 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, checkout_pr_head=False) }}
|
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||||
- name: Populate binary env
|
- name: Populate binary env
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@ -99,17 +85,15 @@ jobs:
|
|||||||
!{{ common.wait_and_kill_ssh_windows('pytorch') }}
|
!{{ common.wait_and_kill_ssh_windows('pytorch') }}
|
||||||
!{{ config["build_name"] }}-test: # Testing
|
!{{ config["build_name"] }}-test: # Testing
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
needs:
|
needs: !{{ config["build_name"] }}-build
|
||||||
- !{{ config["build_name"] }}-build
|
|
||||||
- get-label-type
|
|
||||||
{%- if config["gpu_arch_type"] == "cuda" %}
|
{%- if config["gpu_arch_type"] == "cuda" %}
|
||||||
{%- if branches == "nightly" %}
|
{%- if branches == "nightly" %}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: windows.8xlarge.nvidia.gpu
|
||||||
{%- else %}
|
{%- else %}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge.nonephemeral"
|
runs-on: windows.8xlarge.nvidia.gpu.nonephemeral
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
|
runs-on: windows.4xlarge.nonephemeral
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
timeout-minutes: !{{ common.timeout_minutes }}
|
timeout-minutes: !{{ common.timeout_minutes }}
|
||||||
!{{ upload.binary_env(config, True) }}
|
!{{ upload.binary_env(config, True) }}
|
||||||
@ -121,8 +105,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: !{{ config["build_name"] }}
|
name: !{{ config["build_name"] }}
|
||||||
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
|
||||||
!{{ common.checkout(deep_clone=False, directory="pytorch", 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, checkout_pr_head=False) }}
|
!{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
|
||||||
- name: Populate binary env
|
- name: Populate binary env
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
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 }}
|
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
submodules: false
|
submodules: false
|
||||||
@ -59,25 +59,25 @@ jobs:
|
|||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
# [see note: pytorch repo ref]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image-name }}
|
docker-image-name: ${{ inputs.docker-image-name }}
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -141,5 +141,5 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
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 }}
|
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
submodules: false
|
submodules: false
|
||||||
@ -59,25 +59,25 @@ jobs:
|
|||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
# [see note: pytorch repo ref]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image-name }}
|
docker-image-name: ${{ inputs.docker-image-name }}
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -186,5 +186,5 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
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 }}
|
reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
submodules: false
|
submodules: false
|
||||||
@ -69,25 +69,25 @@ jobs:
|
|||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
# [see note: pytorch repo ref]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image-name }}
|
docker-image-name: ${{ inputs.docker-image-name }}
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
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"
|
run: echo "IN_ARC_RUNNER=$([ -f /.inarc ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
- 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' }}
|
if: ${{ inputs.cuda-version != 'cpu' && steps.check_arc_runner.outputs.IN_ARC_RUNNER == 'false' }}
|
||||||
|
|
||||||
- name: Output disk space left
|
- name: Output disk space left
|
||||||
@ -206,5 +206,5 @@ jobs:
|
|||||||
file-suffix: bazel-${{ github.job }}_${{ steps.get-job-id.outputs.job-id }}
|
file-suffix: bazel-${{ github.job }}_${{ steps.get-job-id.outputs.job-id }}
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
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
|
required: true
|
||||||
type: string
|
type: string
|
||||||
description: The build environment
|
description: The build environment
|
||||||
runner_prefix:
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
type: string
|
|
||||||
description: prefix for runner label
|
|
||||||
runs_on:
|
runs_on:
|
||||||
required: false
|
required: false
|
||||||
default: linux.12xlarge.ephemeral
|
default: linux.12xlarge
|
||||||
type: string
|
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:
|
timeout-minutes:
|
||||||
required: false
|
required: false
|
||||||
default: 210
|
default: 210
|
||||||
@ -94,7 +89,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
|
runs-on: ${{ inputs.runs_on }}
|
||||||
timeout-minutes: ${{ inputs.timeout-minutes }}
|
timeout-minutes: ${{ inputs.timeout-minutes }}
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
||||||
@ -159,13 +154,13 @@ jobs:
|
|||||||
|
|
||||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
if: inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
github-secret: ${{ secrets.github-token }}
|
github-secret: ${{ secrets.github-token }}
|
||||||
|
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
|
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
|
- name: Checkout PyTorch to pytorch dir
|
||||||
uses: malfet/checkout@silent-checkout
|
uses: malfet/checkout@silent-checkout
|
||||||
with:
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
path: pytorch
|
path: pytorch
|
||||||
quiet-checkout: true
|
quiet-checkout: true
|
||||||
@ -208,7 +204,7 @@ jobs:
|
|||||||
- name: Checkout pytorch/builder to builder dir
|
- name: Checkout pytorch/builder to builder dir
|
||||||
uses: malfet/checkout@silent-checkout
|
uses: malfet/checkout@silent-checkout
|
||||||
with:
|
with:
|
||||||
ref: release/2.5
|
ref: main
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
repository: pytorch/builder
|
repository: pytorch/builder
|
||||||
path: builder
|
path: builder
|
||||||
@ -234,7 +230,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Pull Docker image
|
- name: Pull Docker image
|
||||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
|
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:
|
with:
|
||||||
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
||||||
|
|
||||||
@ -282,7 +278,7 @@ jobs:
|
|||||||
# Ensure the working directory gets chowned back to the current user
|
# 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)" .
|
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' }}
|
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.build_name }}
|
name: ${{ inputs.build_name }}
|
||||||
@ -292,7 +288,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Teardown Linux
|
- name: Teardown Linux
|
||||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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
|
- name: Chown workspace
|
||||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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
|
required: false
|
||||||
type: string
|
type: string
|
||||||
description: Desired python version
|
description: Desired python version
|
||||||
runner_prefix:
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
type: string
|
|
||||||
description: prefix for runner label
|
|
||||||
runs_on:
|
runs_on:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -82,7 +77,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
runs-on: ${{ inputs.runner_prefix}}${{ inputs.runs_on }}
|
runs-on: ${{ inputs.runs_on }}
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
|
||||||
@ -142,14 +137,14 @@ jobs:
|
|||||||
|
|
||||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||||
if: inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
github-secret: ${{ secrets.github-token }}
|
github-secret: ${{ secrets.github-token }}
|
||||||
|
|
||||||
# Setup the environment
|
# Setup the environment
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' || inputs.build_environment == 'linux-s390x-binary-manywheel' }}
|
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
|
- name: Checkout PyTorch to pytorch dir
|
||||||
uses: malfet/checkout@silent-checkout
|
uses: malfet/checkout@silent-checkout
|
||||||
with:
|
with:
|
||||||
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
path: pytorch
|
path: pytorch
|
||||||
|
|
||||||
@ -184,7 +180,7 @@ jobs:
|
|||||||
- name: Checkout pytorch/builder to builder dir
|
- name: Checkout pytorch/builder to builder dir
|
||||||
uses: malfet/checkout@silent-checkout
|
uses: malfet/checkout@silent-checkout
|
||||||
with:
|
with:
|
||||||
ref: release/2.5
|
ref: main
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
repository: pytorch/builder
|
repository: pytorch/builder
|
||||||
path: builder
|
path: builder
|
||||||
@ -209,18 +205,18 @@ jobs:
|
|||||||
|
|
||||||
- name: Download Build Artifacts
|
- name: Download Build Artifacts
|
||||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||||
uses: actions/download-artifact@v4.1.7
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.build_name }}
|
name: ${{ inputs.build_name }}
|
||||||
path: "${{ runner.temp }}/artifacts/"
|
path: "${{ runner.temp }}/artifacts/"
|
||||||
|
|
||||||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
- 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' }}
|
if: ${{ inputs.GPU_ARCH_TYPE == 'cuda' && steps.filter.outputs.is-test-matrix-empty == 'False' }}
|
||||||
|
|
||||||
- name: Pull Docker image
|
- name: Pull Docker image
|
||||||
if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' && inputs.build_environment != 'linux-s390x-binary-manywheel' }}
|
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:
|
with:
|
||||||
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
docker-image: ${{ inputs.DOCKER_IMAGE }}
|
||||||
|
|
||||||
@ -230,7 +226,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Teardown Linux
|
- name: Teardown Linux
|
||||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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
|
- name: Chown workspace
|
||||||
if: always() && inputs.build_environment != 'linux-s390x-binary-manywheel'
|
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 }}
|
USE_SPLIT_BUILD: ${{ inputs.use_split_build }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
no-sudo: true
|
no-sudo: true
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ jobs:
|
|||||||
# NB: When the previous build job is skipped, there won't be any artifacts and
|
# 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
|
# this step will fail. Binary build jobs can only be skipped on CI, not nightly
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
uses: actions/download-artifact@v4.1.7
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.build_name }}
|
name: ${{ inputs.build_name }}
|
||||||
path: "${{ runner.temp }}/artifacts/"
|
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
|
type: string
|
||||||
description: |
|
description: |
|
||||||
A JSON description of what configs to run later on.
|
A JSON description of what configs to run later on.
|
||||||
runner_prefix:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
description: |
|
|
||||||
Prefix for runner label
|
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@ -21,14 +16,14 @@ defaults:
|
|||||||
jobs:
|
jobs:
|
||||||
filter:
|
filter:
|
||||||
if: github.repository_owner == 'pytorch'
|
if: github.repository_owner == 'pytorch'
|
||||||
runs-on: [self-hosted, "${{ inputs.runner_prefix }}linux.large"]
|
runs-on: [self-hosted, linux.large]
|
||||||
outputs:
|
outputs:
|
||||||
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
||||||
is-test-matrix-empty: ${{ steps.filter.outputs.is-test-matrix-empty }}
|
is-test-matrix-empty: ${{ steps.filter.outputs.is-test-matrix-empty }}
|
||||||
keep-going: ${{ steps.filter.outputs.keep-going }}
|
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
submodules: false
|
submodules: false
|
||||||
@ -49,7 +44,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- 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
|
- name: Set up JDK 8
|
||||||
uses: actions/setup-java@v3
|
uses: actions/setup-java@v3
|
||||||
@ -58,13 +53,13 @@ jobs:
|
|||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
|
|
||||||
- name: Setup miniconda
|
- name: Setup miniconda
|
||||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
|
uses: pytorch/test-infra/.github/actions/setup-miniconda@main
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||||
|
|
||||||
- name: Install Buck
|
- name: Install Buck
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 10
|
timeout_minutes: 10
|
||||||
max_attempts: 5
|
max_attempts: 5
|
||||||
@ -74,7 +69,7 @@ jobs:
|
|||||||
sudo apt install ./buck.2021.01.12.01_all.deb
|
sudo apt install ./buck.2021.01.12.01_all.deb
|
||||||
|
|
||||||
- name: Download third party libraries and generate wrappers
|
- name: Download third party libraries and generate wrappers
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@3e91a01664abd3c5cd539100d10d33b9c5b68482
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 10
|
timeout_minutes: 10
|
||||||
max_attempts: 5
|
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 }}
|
name: build-docs-${{ matrix.docs_type }}-${{ inputs.push }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
instructions: |
|
instructions: |
|
||||||
@ -95,7 +95,7 @@ jobs:
|
|||||||
|
|
||||||
# [see note: pytorch repo ref]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
@ -110,12 +110,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image }}
|
docker-image-name: ${{ inputs.docker-image }}
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -222,5 +222,5 @@ jobs:
|
|||||||
s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}/functorchdocs
|
s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}/functorchdocs
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
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 }}
|
keep-going: ${{ steps.filter.outputs.keep-going }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
submodules: false
|
submodules: false
|
||||||
@ -80,7 +80,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
# [see note: pytorch repo ref]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- 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
|
- name: Populate CI build options
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -92,7 +92,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Install brew dependencies
|
- name: Install brew dependencies
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@v2.8.2
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 5
|
timeout_minutes: 5
|
||||||
max_attempts: 3
|
max_attempts: 3
|
||||||
@ -102,14 +102,14 @@ jobs:
|
|||||||
brew install libtool
|
brew install libtool
|
||||||
|
|
||||||
- name: Setup miniconda for iOS
|
- 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:
|
with:
|
||||||
python-version: "3.9"
|
python-version: "3.9"
|
||||||
environment-file: .github/requirements/conda-env-iOS.txt
|
environment-file: .github/requirements/conda-env-iOS.txt
|
||||||
pip-requirements-file: .github/requirements/pip-requirements-iOS.txt
|
pip-requirements-file: .github/requirements/pip-requirements-iOS.txt
|
||||||
|
|
||||||
- name: Setup Fastlane
|
- name: Setup Fastlane
|
||||||
uses: nick-fields/retry@v3.0.0
|
uses: nick-fields/retry@v2.8.2
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 5
|
timeout_minutes: 5
|
||||||
max_attempts: 3
|
max_attempts: 3
|
||||||
@ -292,7 +292,7 @@ jobs:
|
|||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Download arm64 artifacts
|
- name: Download arm64 artifacts
|
||||||
uses: actions/download-artifact@v4.1.7
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: pytorch-ios-build-artifacts-arm64
|
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"
|
default: "5.2"
|
||||||
description: |
|
description: |
|
||||||
List of CUDA architectures CI build should target.
|
List of CUDA architectures CI build should target.
|
||||||
runner_prefix:
|
|
||||||
required: false
|
|
||||||
default: ""
|
|
||||||
type: string
|
|
||||||
description: Prefix for runner label
|
|
||||||
runner:
|
runner:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -82,10 +77,6 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
description: |
|
description: |
|
||||||
HF Auth token to avoid rate limits when downloading models or datasets from hub
|
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:
|
outputs:
|
||||||
@ -98,17 +89,16 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
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
|
# Don't run on forked repos
|
||||||
if: github.repository_owner == 'pytorch'
|
if: github.repository_owner == 'pytorch'
|
||||||
runs-on: ${{ inputs.runner_prefix}}${{ inputs.runner }}
|
runs-on: ${{ inputs.runner }}
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
outputs:
|
outputs:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
@ -117,7 +107,7 @@ jobs:
|
|||||||
# checkout because when we run this action we don't *have* a local
|
# checkout because when we run this action we don't *have* a local
|
||||||
# checkout. In other cases you should prefer a local checkout.
|
# checkout. In other cases you should prefer a local checkout.
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
@ -132,7 +122,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image-name }}
|
docker-image-name: ${{ inputs.docker-image-name }}
|
||||||
|
|
||||||
@ -146,7 +136,7 @@ jobs:
|
|||||||
echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
|
echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -199,7 +189,6 @@ jobs:
|
|||||||
DEBUG: ${{ inputs.build-with-debug && '1' || '0' }}
|
DEBUG: ${{ inputs.build-with-debug && '1' || '0' }}
|
||||||
OUR_GITHUB_JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
|
OUR_GITHUB_JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
|
||||||
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
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 }}
|
USE_SPLIT_BUILD: ${{ inputs.use_split_build }}
|
||||||
run: |
|
run: |
|
||||||
# detached container should get cleaned up by teardown_ec2_linux
|
# detached container should get cleaned up by teardown_ec2_linux
|
||||||
@ -269,5 +258,5 @@ jobs:
|
|||||||
s3-bucket: ${{ inputs.s3-bucket }}
|
s3-bucket: ${{ inputs.s3-bucket }}
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
if: always()
|
||||||
|
|||||||
19
.github/workflows/_linux-test.yml
vendored
19
.github/workflows/_linux-test.yml
vendored
@ -52,10 +52,6 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
description: |
|
description: |
|
||||||
HF Auth token to avoid rate limits when downloading models or datasets from hub
|
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:
|
env:
|
||||||
GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
||||||
@ -67,12 +63,11 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix: ${{ fromJSON(inputs.test-matrix) }}
|
matrix: ${{ fromJSON(inputs.test-matrix) }}
|
||||||
fail-fast: false
|
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 }}
|
runs-on: ${{ matrix.runner }}
|
||||||
timeout-minutes: ${{ matrix.mem_leak_check == 'mem_leak_check' && 600 || inputs.timeout-minutes }}
|
timeout-minutes: ${{ matrix.mem_leak_check == 'mem_leak_check' && 600 || inputs.timeout-minutes }}
|
||||||
steps:
|
steps:
|
||||||
- name: Setup SSH (Click me for login details)
|
- 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') }}
|
if: ${{ !contains(matrix.runner, 'gcp.a100') }}
|
||||||
with:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -81,7 +76,7 @@ jobs:
|
|||||||
docker exec -it $(docker container ps --format '{{.ID}}') bash
|
docker exec -it $(docker container ps --format '{{.ID}}') bash
|
||||||
|
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
@ -96,7 +91,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Calculate docker image
|
- name: Calculate docker image
|
||||||
id: 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:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image }}
|
docker-image-name: ${{ inputs.docker-image }}
|
||||||
|
|
||||||
@ -110,7 +105,7 @@ jobs:
|
|||||||
echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
|
echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
|
||||||
|
|
||||||
- name: Pull 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:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -121,7 +116,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
- name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
||||||
id: install-nvidia-driver
|
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' }}
|
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
|
- name: Lock NVIDIA A100 40GB Frequency
|
||||||
@ -217,7 +212,6 @@ jobs:
|
|||||||
PYTORCH_TEST_RERUN_DISABLED_TESTS: ${{ matrix.rerun_disabled_tests && '1' || '0' }}
|
PYTORCH_TEST_RERUN_DISABLED_TESTS: ${{ matrix.rerun_disabled_tests && '1' || '0' }}
|
||||||
DASHBOARD_TAG: ${{ inputs.dashboard-tag }}
|
DASHBOARD_TAG: ${{ inputs.dashboard-tag }}
|
||||||
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
||||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
|
||||||
|
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
@ -272,7 +266,6 @@ jobs:
|
|||||||
-e PYTORCH_TEST_RERUN_DISABLED_TESTS \
|
-e PYTORCH_TEST_RERUN_DISABLED_TESTS \
|
||||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||||
-e HUGGING_FACE_HUB_TOKEN \
|
-e HUGGING_FACE_HUB_TOKEN \
|
||||||
-e SCRIBE_GRAPHQL_ACCESS_TOKEN \
|
|
||||||
-e DASHBOARD_TAG \
|
-e DASHBOARD_TAG \
|
||||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||||
--security-opt seccomp=unconfined \
|
--security-opt seccomp=unconfined \
|
||||||
@ -342,7 +335,7 @@ jobs:
|
|||||||
path: ./**/core.[1-9]*
|
path: ./**/core.[1-9]*
|
||||||
|
|
||||||
- name: Teardown Linux
|
- 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()
|
if: always()
|
||||||
|
|
||||||
# NB: We are currently having an intermittent GPU-related issue on G5 runners with
|
# 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 }}
|
test-matrix: ${{ steps.filter.outputs.test-matrix }}
|
||||||
steps:
|
steps:
|
||||||
- name: Clean up disk space before running MacOS workflow
|
- 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]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- 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
|
- name: Set xcode version
|
||||||
env:
|
env:
|
||||||
@ -87,7 +87,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Setup miniconda
|
- name: Setup miniconda
|
||||||
if: inputs.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:
|
with:
|
||||||
python-version: ${{ inputs.python-version }}
|
python-version: ${{ inputs.python-version }}
|
||||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||||
@ -97,14 +97,14 @@ jobs:
|
|||||||
# environment even though the arch is x86-64
|
# environment even though the arch is x86-64
|
||||||
- name: Setup miniconda using the provided environment file
|
- name: Setup miniconda using the provided environment file
|
||||||
if: inputs.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:
|
with:
|
||||||
python-version: ${{ inputs.python-version }}
|
python-version: ${{ inputs.python-version }}
|
||||||
environment-file: ${{ inputs.environment-file }}
|
environment-file: ${{ inputs.environment-file }}
|
||||||
pip-requirements-file: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
pip-requirements-file: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
||||||
|
|
||||||
- name: Install sccache (only for non-forked PRs, and pushes to trunk)
|
- 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 }}
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
with:
|
with:
|
||||||
timeout_minutes: 5
|
timeout_minutes: 5
|
||||||
@ -139,7 +139,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
# The runner has access to the S3 bucket via IAM profile without the need
|
# The runner has access to the S3 bucket via IAM profile without the need
|
||||||
# for any credential
|
# 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}"
|
echo "SCCACHE_S3_KEY_PREFIX=${GITHUB_WORKFLOW}" >> "${GITHUB_ENV}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -207,4 +207,4 @@ jobs:
|
|||||||
- name: Clean up disk space
|
- name: Clean up disk space
|
||||||
if: always()
|
if: always()
|
||||||
continue-on-error: true
|
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 }}
|
reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.5
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
with:
|
||||||
submodules: false
|
submodules: false
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ jobs:
|
|||||||
use-gha: true
|
use-gha: true
|
||||||
|
|
||||||
- name: Setup miniconda
|
- name: Setup miniconda
|
||||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
|
uses: pytorch/test-infra/.github/actions/setup-miniconda@main
|
||||||
with:
|
with:
|
||||||
python-version: ${{ inputs.python-version }}
|
python-version: ${{ inputs.python-version }}
|
||||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||||
@ -161,4 +161,4 @@ jobs:
|
|||||||
- name: Clean up disk space
|
- name: Clean up disk space
|
||||||
if: always()
|
if: always()
|
||||||
continue-on-error: true
|
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
|
done
|
||||||
|
|
||||||
- name: Clean up disk space before running MacOS workflow
|
- 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]
|
# [see note: pytorch repo ref]
|
||||||
- name: Checkout PyTorch
|
- 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
|
- name: Download build artifacts
|
||||||
uses: ./.github/actions/download-build-artifacts
|
uses: ./.github/actions/download-build-artifacts
|
||||||
@ -93,7 +93,7 @@ jobs:
|
|||||||
use-gha: true
|
use-gha: true
|
||||||
|
|
||||||
- name: Setup miniconda
|
- name: Setup miniconda
|
||||||
uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.5
|
uses: pytorch/test-infra/.github/actions/setup-miniconda@main
|
||||||
with:
|
with:
|
||||||
python-version: ${{ inputs.python-version }}
|
python-version: ${{ inputs.python-version }}
|
||||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||||
@ -217,4 +217,4 @@ jobs:
|
|||||||
- name: Clean up disk space
|
- name: Clean up disk space
|
||||||
if: always()
|
if: always()
|
||||||
continue-on-error: true
|
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