mirror of
https://github.com/pytorch/pytorch.git
synced 2025-11-06 09:17:11 +08:00
Compare commits
1 Commits
cslpull89
...
mlazos/dat
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fd3a2cf43 |
@ -1,5 +1,5 @@
|
|||||||
0.7b
|
0.6b
|
||||||
manylinux_2_17
|
manylinux_2_17
|
||||||
rocm6.2
|
rocm6.2
|
||||||
9be04068c3c0857a4cfd17d7e39e71d0423ebac2
|
7f07e8a1cb1f99627eb6d77f5c0e9295c775f3c7
|
||||||
3e9e1959d23b93d78a08fcc5f868125dc3854dece32fd9458be9ef4467982291
|
e4ab195d2bd19e939c675a13280c29714c6ef9f2cf420690da150fa0cac043b1
|
||||||
|
|||||||
@ -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,23 +286,23 @@ 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
|
GCC_VERSION=9
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
VISION=yes
|
VISION=yes
|
||||||
ROCM_VERSION=6.1
|
ROCM_VERSION=6.0
|
||||||
NINJA_VERSION=1.9.0
|
NINJA_VERSION=1.9.0
|
||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
TRITON=yes
|
TRITON=yes
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-rocm-n-py3)
|
pytorch-linux-focal-rocm-n-py3)
|
||||||
ANACONDA_PYTHON_VERSION=3.10
|
ANACONDA_PYTHON_VERSION=3.8
|
||||||
GCC_VERSION=9
|
GCC_VERSION=9
|
||||||
PROTOBUF=yes
|
PROTOBUF=yes
|
||||||
DB=yes
|
DB=yes
|
||||||
VISION=yes
|
VISION=yes
|
||||||
ROCM_VERSION=6.2
|
ROCM_VERSION=6.1
|
||||||
NINJA_VERSION=1.9.0
|
NINJA_VERSION=1.9.0
|
||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
TRITON=yes
|
TRITON=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
|
||||||
@ -379,7 +379,6 @@ case "$image" in
|
|||||||
GCC_VERSION=11
|
GCC_VERSION=11
|
||||||
CONDA_CMAKE=yes
|
CONDA_CMAKE=yes
|
||||||
HALIDE=yes
|
HALIDE=yes
|
||||||
TRITON=yes
|
|
||||||
;;
|
;;
|
||||||
pytorch-linux-focal-linter)
|
pytorch-linux-focal-linter)
|
||||||
# TODO: Use 3.9 here because of this issue https://github.com/python/mypy/issues/13627.
|
# TODO: Use 3.9 here because of this issue https://github.com/python/mypy/issues/13627.
|
||||||
|
|||||||
@ -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
|
69472e5c43481324ad923ceb29392ab72830acee
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
461c12871f336fe6f57b55d6a297f13ef209161b
|
340136fec6d3ebc73e7a19eba1663e9b0ba8ab2d
|
||||||
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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -7,7 +7,7 @@ PYTHON_DOWNLOAD_GITHUB_BRANCH=https://github.com/python/cpython/archive/refs/hea
|
|||||||
GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py
|
GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py
|
||||||
|
|
||||||
# Python versions to be installed in /opt/$VERSION_NO
|
# Python versions to be installed in /opt/$VERSION_NO
|
||||||
CPYTHON_VERSIONS=${CPYTHON_VERSIONS:-"3.8.1 3.9.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.0t"}
|
CPYTHON_VERSIONS=${CPYTHON_VERSIONS:-"3.8.1 3.9.0 3.10.1 3.11.0 3.12.0 3.13.0"}
|
||||||
|
|
||||||
function check_var {
|
function check_var {
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
@ -22,13 +22,6 @@ function do_cpython_build {
|
|||||||
check_var $py_ver
|
check_var $py_ver
|
||||||
check_var $py_folder
|
check_var $py_folder
|
||||||
tar -xzf Python-$py_ver.tgz
|
tar -xzf Python-$py_ver.tgz
|
||||||
|
|
||||||
local additional_flags=""
|
|
||||||
if [ "$py_ver" == "3.13.0t" ]; then
|
|
||||||
additional_flags=" --disable-gil"
|
|
||||||
mv cpython-3.13/ cpython-3.13t/
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd $py_folder
|
pushd $py_folder
|
||||||
|
|
||||||
local prefix="/opt/_internal/cpython-${py_ver}"
|
local prefix="/opt/_internal/cpython-${py_ver}"
|
||||||
@ -44,10 +37,8 @@ function do_cpython_build {
|
|||||||
local openssl_flags="--with-openssl=${WITH_OPENSSL} --with-openssl-rpath=auto"
|
local openssl_flags="--with-openssl=${WITH_OPENSSL} --with-openssl-rpath=auto"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# -Wformat added for https://bugs.python.org/issue17547 on Python 2.6
|
# -Wformat added for https://bugs.python.org/issue17547 on Python 2.6
|
||||||
CFLAGS="-Wformat" ./configure --prefix=${prefix} ${openssl_flags} ${shared_flags} ${additional_flags} > /dev/null
|
CFLAGS="-Wformat" ./configure --prefix=${prefix} ${openssl_flags} ${shared_flags} > /dev/null
|
||||||
|
|
||||||
make -j40 > /dev/null
|
make -j40 > /dev/null
|
||||||
make install > /dev/null
|
make install > /dev/null
|
||||||
@ -78,14 +69,7 @@ function build_cpython {
|
|||||||
check_var $py_ver
|
check_var $py_ver
|
||||||
check_var $PYTHON_DOWNLOAD_URL
|
check_var $PYTHON_DOWNLOAD_URL
|
||||||
local py_ver_folder=$py_ver
|
local py_ver_folder=$py_ver
|
||||||
|
if [ "$py_ver" = "3.13.0" ]; then
|
||||||
if [ "$py_ver" = "3.13.0t" ]; then
|
|
||||||
PY_VER_SHORT="3.13"
|
|
||||||
PYT_VER_SHORT="3.13t"
|
|
||||||
check_var $PYTHON_DOWNLOAD_GITHUB_BRANCH
|
|
||||||
wget $PYTHON_DOWNLOAD_GITHUB_BRANCH/$PY_VER_SHORT.tar.gz -O Python-$py_ver.tgz
|
|
||||||
do_cpython_build $py_ver cpython-$PYT_VER_SHORT
|
|
||||||
elif [ "$py_ver" = "3.13.0" ]; then
|
|
||||||
PY_VER_SHORT="3.13"
|
PY_VER_SHORT="3.13"
|
||||||
check_var $PYTHON_DOWNLOAD_GITHUB_BRANCH
|
check_var $PYTHON_DOWNLOAD_GITHUB_BRANCH
|
||||||
wget $PYTHON_DOWNLOAD_GITHUB_BRANCH/$PY_VER_SHORT.tar.gz -O Python-$py_ver.tgz
|
wget $PYTHON_DOWNLOAD_GITHUB_BRANCH/$PY_VER_SHORT.tar.gz -O Python-$py_ver.tgz
|
||||||
|
|||||||
@ -5,7 +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-6]$ ]]; then
|
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[2-4]$ ]]; 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,11 +57,9 @@ 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 60300 ]]; then
|
if [[ $ROCM_INT -ge 60200 ]] && [[ $ROCM_INT -lt 60300 ]]; then
|
||||||
echo "ROCm 6.3+ MIOpen does not need any patches, do not build from source"
|
echo "ROCm 6.2 MIOpen does not need any patches, do not build from source"
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ $ROCM_INT -ge 60200 ]] && [[ $ROCM_INT -lt 60300 ]]; then
|
|
||||||
MIOPEN_BRANCH="release/rocm-rel-6.2-staging"
|
|
||||||
elif [[ $ROCM_INT -ge 60100 ]] && [[ $ROCM_INT -lt 60200 ]]; then
|
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
|
||||||
@ -110,21 +93,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
|
||||||
@ -137,15 +111,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
|
||||||
@ -162,11 +131,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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -37,12 +37,6 @@ esac
|
|||||||
|
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
# TODO: Remove LimitNOFILE=1048576 patch once https://github.com/pytorch/test-infra/issues/5712
|
|
||||||
# is resolved. This patch is required in order to fix timing out of Docker build on Amazon Linux 2023.
|
|
||||||
sudo sed -i s/LimitNOFILE=infinity/LimitNOFILE=1048576/ /usr/lib/systemd/system/docker.service
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl restart docker
|
|
||||||
|
|
||||||
docker build \
|
docker build \
|
||||||
--target final \
|
--target final \
|
||||||
--progress plain \
|
--progress plain \
|
||||||
|
|||||||
@ -10,7 +10,6 @@ ENV LANG en_US.UTF-8
|
|||||||
ENV LANGUAGE en_US.UTF-8
|
ENV LANGUAGE en_US.UTF-8
|
||||||
|
|
||||||
ARG DEVTOOLSET_VERSION=9
|
ARG DEVTOOLSET_VERSION=9
|
||||||
|
|
||||||
# Note: This is required patch since CentOS have reached EOL
|
# Note: This is required patch since CentOS have reached EOL
|
||||||
# otherwise any yum install setp will fail
|
# otherwise any yum install setp will fail
|
||||||
RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
|
RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
|
||||||
|
|||||||
@ -124,14 +124,7 @@ if [[ -n ${MANY_LINUX_VERSION} && -z ${DOCKERFILE_SUFFIX} ]]; then
|
|||||||
fi
|
fi
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
|
DOCKER_BUILDKIT=1 docker build \
|
||||||
# TODO: Remove LimitNOFILE=1048576 patch once https://github.com/pytorch/test-infra/issues/5712
|
|
||||||
# is resolved. This patch is required in order to fix timing out of Docker build on Amazon Linux 2023.
|
|
||||||
sudo sed -i s/LimitNOFILE=infinity/LimitNOFILE=1048576/ /usr/lib/systemd/system/docker.service
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl restart docker
|
|
||||||
|
|
||||||
DOCKER_BUILDKIT=1 docker build \
|
|
||||||
${DOCKER_GPU_BUILD_ARG} \
|
${DOCKER_GPU_BUILD_ARG} \
|
||||||
--build-arg "GPU_IMAGE=${GPU_IMAGE}" \
|
--build-arg "GPU_IMAGE=${GPU_IMAGE}" \
|
||||||
--target "${TARGET}" \
|
--target "${TARGET}" \
|
||||||
|
|||||||
@ -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:
|
||||||
|
|
||||||
@ -90,7 +85,7 @@ librosa>=0.6.2 ; python_version < "3.11"
|
|||||||
#Pinned versions:
|
#Pinned versions:
|
||||||
#test that import:
|
#test that import:
|
||||||
|
|
||||||
mypy==1.11.2
|
mypy==1.10.0
|
||||||
# Pin MyPy version because new errors are likely to appear with each release
|
# Pin MyPy version because new errors are likely to appear with each release
|
||||||
#Description: linter
|
#Description: linter
|
||||||
#Pinned versions: 1.10.0
|
#Pinned versions: 1.10.0
|
||||||
@ -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
|
||||||
@ -337,8 +332,3 @@ onnxscript==0.1.0.dev20240817
|
|||||||
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
|
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
|
||||||
#Pinned versions:
|
#Pinned versions:
|
||||||
#test that import:
|
#test that import:
|
||||||
|
|
||||||
parameterized==0.8.1
|
|
||||||
#Description: Parameterizes unittests, both the tests themselves and the entire testing class
|
|
||||||
#Pinned versions:
|
|
||||||
#test that import:
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
3.1.0
|
3.0.0
|
||||||
|
|||||||
@ -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"]
|
||||||
|
|||||||
@ -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
|
||||||
@ -232,7 +237,7 @@ fi
|
|||||||
|
|
||||||
# Do not change workspace permissions for ROCm CI jobs
|
# Do not change workspace permissions for ROCm CI jobs
|
||||||
# as it can leave workspace with bad permissions for cancelled jobs
|
# as it can leave workspace with bad permissions for cancelled jobs
|
||||||
if [[ "$BUILD_ENVIRONMENT" != *rocm* && "$BUILD_ENVIRONMENT" != *s390x* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" != *rocm* ]]; then
|
||||||
# Workaround for dind-rootless userid mapping (https://github.com/pytorch/ci-infra/issues/96)
|
# Workaround for dind-rootless userid mapping (https://github.com/pytorch/ci-infra/issues/96)
|
||||||
WORKSPACE_ORIGINAL_OWNER_ID=$(stat -c '%u' "/var/lib/jenkins/workspace")
|
WORKSPACE_ORIGINAL_OWNER_ID=$(stat -c '%u' "/var/lib/jenkins/workspace")
|
||||||
cleanup_workspace() {
|
cleanup_workspace() {
|
||||||
@ -278,11 +283,11 @@ else
|
|||||||
# set only when building other architectures
|
# set only when building other architectures
|
||||||
# or building non-XLA tests.
|
# or building non-XLA tests.
|
||||||
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
|
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
|
||||||
"$BUILD_ENVIRONMENT" != *s390x* &&
|
|
||||||
"$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
|
||||||
@ -341,11 +346,11 @@ else
|
|||||||
CUSTOM_OP_BUILD="${CUSTOM_TEST_ARTIFACT_BUILD_DIR}/custom-op-build"
|
CUSTOM_OP_BUILD="${CUSTOM_TEST_ARTIFACT_BUILD_DIR}/custom-op-build"
|
||||||
CUSTOM_OP_TEST="$PWD/test/custom_operator"
|
CUSTOM_OP_TEST="$PWD/test/custom_operator"
|
||||||
python --version
|
python --version
|
||||||
SITE_PACKAGES="$(python -c 'import site; print(";".join([x for x in site.getsitepackages()] + [x + "/torch" for x in site.getsitepackages()]))')"
|
SITE_PACKAGES="$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')"
|
||||||
|
|
||||||
mkdir -p "$CUSTOM_OP_BUILD"
|
mkdir -p "$CUSTOM_OP_BUILD"
|
||||||
pushd "$CUSTOM_OP_BUILD"
|
pushd "$CUSTOM_OP_BUILD"
|
||||||
cmake "$CUSTOM_OP_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
cmake "$CUSTOM_OP_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES/torch;$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
||||||
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
||||||
make VERBOSE=1
|
make VERBOSE=1
|
||||||
popd
|
popd
|
||||||
@ -355,10 +360,10 @@ else
|
|||||||
JIT_HOOK_BUILD="${CUSTOM_TEST_ARTIFACT_BUILD_DIR}/jit-hook-build"
|
JIT_HOOK_BUILD="${CUSTOM_TEST_ARTIFACT_BUILD_DIR}/jit-hook-build"
|
||||||
JIT_HOOK_TEST="$PWD/test/jit_hooks"
|
JIT_HOOK_TEST="$PWD/test/jit_hooks"
|
||||||
python --version
|
python --version
|
||||||
SITE_PACKAGES="$(python -c 'import site; print(";".join([x for x in site.getsitepackages()] + [x + "/torch" for x in site.getsitepackages()]))')"
|
SITE_PACKAGES="$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')"
|
||||||
mkdir -p "$JIT_HOOK_BUILD"
|
mkdir -p "$JIT_HOOK_BUILD"
|
||||||
pushd "$JIT_HOOK_BUILD"
|
pushd "$JIT_HOOK_BUILD"
|
||||||
cmake "$JIT_HOOK_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
cmake "$JIT_HOOK_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES/torch;$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
||||||
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
||||||
make VERBOSE=1
|
make VERBOSE=1
|
||||||
popd
|
popd
|
||||||
@ -370,7 +375,7 @@ else
|
|||||||
python --version
|
python --version
|
||||||
mkdir -p "$CUSTOM_BACKEND_BUILD"
|
mkdir -p "$CUSTOM_BACKEND_BUILD"
|
||||||
pushd "$CUSTOM_BACKEND_BUILD"
|
pushd "$CUSTOM_BACKEND_BUILD"
|
||||||
cmake "$CUSTOM_BACKEND_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
cmake "$CUSTOM_BACKEND_TEST" -DCMAKE_PREFIX_PATH="$SITE_PACKAGES/torch;$SITE_PACKAGES" -DPython_EXECUTABLE="$(which python)" \
|
||||||
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
-DCMAKE_MODULE_PATH="$CUSTOM_TEST_MODULE_PATH" -DUSE_ROCM="$CUSTOM_TEST_USE_ROCM"
|
||||||
make VERBOSE=1
|
make VERBOSE=1
|
||||||
popd
|
popd
|
||||||
@ -403,6 +408,6 @@ fi
|
|||||||
|
|
||||||
# snadampal: skipping it till sccache support added for aarch64
|
# snadampal: skipping it till sccache support added for aarch64
|
||||||
# https://github.com/pytorch/pytorch/issues/121559
|
# https://github.com/pytorch/pytorch/issues/121559
|
||||||
if [[ "$BUILD_ENVIRONMENT" != *aarch64* && "$BUILD_ENVIRONMENT" != *s390x* ]]; then
|
if [[ "$BUILD_ENVIRONMENT" != *aarch64* ]]; then
|
||||||
print_sccache_stats
|
print_sccache_stats
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
|
|
||||||
from cryptography import x509
|
from cryptography import x509
|
||||||
@ -42,10 +42,10 @@ def create_cert(path, C, ST, L, O, key):
|
|||||||
.issuer_name(issuer)
|
.issuer_name(issuer)
|
||||||
.public_key(key.public_key())
|
.public_key(key.public_key())
|
||||||
.serial_number(x509.random_serial_number())
|
.serial_number(x509.random_serial_number())
|
||||||
.not_valid_before(datetime.now(timezone.utc))
|
.not_valid_before(datetime.utcnow())
|
||||||
.not_valid_after(
|
.not_valid_after(
|
||||||
# Our certificate will be valid for 10 days
|
# Our certificate will be valid for 10 days
|
||||||
datetime.now(timezone.utc)
|
datetime.utcnow()
|
||||||
+ timedelta(days=10)
|
+ timedelta(days=10)
|
||||||
)
|
)
|
||||||
.add_extension(
|
.add_extension(
|
||||||
@ -88,10 +88,10 @@ def sign_certificate_request(path, csr_cert, ca_cert, private_ca_key):
|
|||||||
.issuer_name(ca_cert.subject)
|
.issuer_name(ca_cert.subject)
|
||||||
.public_key(csr_cert.public_key())
|
.public_key(csr_cert.public_key())
|
||||||
.serial_number(x509.random_serial_number())
|
.serial_number(x509.random_serial_number())
|
||||||
.not_valid_before(datetime.now(timezone.utc))
|
.not_valid_before(datetime.utcnow())
|
||||||
.not_valid_after(
|
.not_valid_after(
|
||||||
# Our certificate will be valid for 10 days
|
# Our certificate will be valid for 10 days
|
||||||
datetime.now(timezone.utc)
|
datetime.utcnow()
|
||||||
+ timedelta(days=10)
|
+ timedelta(days=10)
|
||||||
# Sign our certificate with our private key
|
# Sign our certificate with our private key
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,13 +9,15 @@ if [[ -n "$CONDA_ENV" ]]; then
|
|||||||
export PATH="$CONDA_ENV/bin":$PATH
|
export PATH="$CONDA_ENV/bin":$PATH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test that OpenMP is enabled
|
# Test that OpenMP is enabled for non-arm64 build
|
||||||
pushd test
|
if [[ ${BUILD_ENVIRONMENT} != *arm64* ]]; then
|
||||||
if [[ ! $(python -c "import torch; print(int(torch.backends.openmp.is_available()))") == "1" ]]; then
|
pushd test
|
||||||
echo "Build should have OpenMP enabled, but torch.backends.openmp.is_available() is False"
|
if [[ ! $(python -c "import torch; print(int(torch.backends.openmp.is_available()))") == "1" ]]; then
|
||||||
exit 1
|
echo "Build should have OpenMP enabled, but torch.backends.openmp.is_available() is False"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
popd
|
||||||
fi
|
fi
|
||||||
popd
|
|
||||||
|
|
||||||
setup_test_python() {
|
setup_test_python() {
|
||||||
# The CircleCI worker hostname doesn't resolve to an address.
|
# The CircleCI worker hostname doesn't resolve to an address.
|
||||||
@ -25,9 +27,8 @@ setup_test_python() {
|
|||||||
echo "Ninja version: $(ninja --version)"
|
echo "Ninja version: $(ninja --version)"
|
||||||
echo "Python version: $(which python) ($(python --version))"
|
echo "Python version: $(which python) ($(python --version))"
|
||||||
|
|
||||||
# Set the limit on open file handles to 16384
|
# Increase default limit on open file handles from 256 to 1024
|
||||||
# might help with intermittent compiler test failures
|
ulimit -n 1024
|
||||||
ulimit -n 16384
|
|
||||||
}
|
}
|
||||||
|
|
||||||
test_python_all() {
|
test_python_all() {
|
||||||
|
|||||||
@ -375,8 +375,9 @@ test_inductor_cpp_wrapper_abi_compatible() {
|
|||||||
mkdir -p "$TEST_REPORTS_DIR"
|
mkdir -p "$TEST_REPORTS_DIR"
|
||||||
|
|
||||||
echo "Testing Inductor cpp wrapper mode with TORCHINDUCTOR_ABI_COMPATIBLE=1"
|
echo "Testing Inductor cpp wrapper mode with TORCHINDUCTOR_ABI_COMPATIBLE=1"
|
||||||
|
# cpu stack allocation causes segfault and needs more investigation
|
||||||
PYTORCH_TESTING_DEVICE_ONLY_FOR="" python test/run_test.py --include inductor/test_cpu_cpp_wrapper
|
PYTORCH_TESTING_DEVICE_ONLY_FOR="" python test/run_test.py --include inductor/test_cpu_cpp_wrapper
|
||||||
python test/run_test.py --include inductor/test_cuda_cpp_wrapper inductor/test_cpu_repro
|
python test/run_test.py --include inductor/test_cuda_cpp_wrapper
|
||||||
|
|
||||||
TORCHINDUCTOR_CPP_WRAPPER=1 python benchmarks/dynamo/timm_models.py --device cuda --accuracy --amp \
|
TORCHINDUCTOR_CPP_WRAPPER=1 python benchmarks/dynamo/timm_models.py --device cuda --accuracy --amp \
|
||||||
--training --inductor --disable-cudagraphs --only vit_base_patch16_224 \
|
--training --inductor --disable-cudagraphs --only vit_base_patch16_224 \
|
||||||
@ -400,9 +401,9 @@ pr_time_benchmarks() {
|
|||||||
|
|
||||||
TEST_REPORTS_DIR=$(pwd)/test/test-reports
|
TEST_REPORTS_DIR=$(pwd)/test/test-reports
|
||||||
mkdir -p "$TEST_REPORTS_DIR"
|
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_results.csv" "benchmarks/dynamo/pr_time_benchmarks/benchmarks"
|
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: "
|
echo "benchmark results on current PR: "
|
||||||
cat "$TEST_REPORTS_DIR/pr_time_benchmarks_results.csv"
|
cat "$TEST_REPORTS_DIR/pr_time_benchmarks_after.txt"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -595,9 +596,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"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1382,16 +1380,14 @@ test_executorch() {
|
|||||||
assert_git_not_dirty
|
assert_git_not_dirty
|
||||||
}
|
}
|
||||||
|
|
||||||
test_linux_aarch64() {
|
test_linux_aarch64(){
|
||||||
python test/run_test.py --include test_modules test_mkldnn test_mkldnn_fusion test_openmp test_torch test_dynamic_shapes \
|
python test/run_test.py --include test_modules test_mkldnn test_mkldnn_fusion test_openmp test_torch test_dynamic_shapes \
|
||||||
test_transformers test_multiprocessing test_numpy_interop \
|
test_transformers test_multiprocessing test_numpy_interop --verbose
|
||||||
--shard "$SHARD_NUMBER" "$NUM_TEST_SHARDS" --verbose
|
|
||||||
|
|
||||||
# Dynamo tests
|
# Dynamo tests
|
||||||
python test/run_test.py --include dynamo/test_compile dynamo/test_backends dynamo/test_comptime dynamo/test_config \
|
python test/run_test.py --include dynamo/test_compile dynamo/test_backends dynamo/test_comptime dynamo/test_config \
|
||||||
dynamo/test_functions dynamo/test_fx_passes_pre_grad dynamo/test_interop dynamo/test_model_output dynamo/test_modules \
|
dynamo/test_functions dynamo/test_fx_passes_pre_grad dynamo/test_interop dynamo/test_model_output dynamo/test_modules \
|
||||||
dynamo/test_optimizers dynamo/test_recompile_ux dynamo/test_recompiles \
|
dynamo/test_optimizers dynamo/test_recompile_ux dynamo/test_recompiles --verbose
|
||||||
--shard "$SHARD_NUMBER" "$NUM_TEST_SHARDS" --verbose
|
|
||||||
|
|
||||||
# Inductor tests
|
# Inductor tests
|
||||||
python test/run_test.py --include inductor/test_torchinductor inductor/test_benchmark_fusion inductor/test_codecache \
|
python test/run_test.py --include inductor/test_torchinductor inductor/test_benchmark_fusion inductor/test_codecache \
|
||||||
@ -1401,8 +1397,7 @@ test_linux_aarch64() {
|
|||||||
inductor/test_max_autotune inductor/test_memory_planning inductor/test_metrics inductor/test_multi_kernel inductor/test_pad_mm \
|
inductor/test_max_autotune inductor/test_memory_planning inductor/test_metrics inductor/test_multi_kernel inductor/test_pad_mm \
|
||||||
inductor/test_pattern_matcher inductor/test_perf inductor/test_profiler inductor/test_select_algorithm inductor/test_smoke \
|
inductor/test_pattern_matcher inductor/test_perf inductor/test_profiler inductor/test_select_algorithm inductor/test_smoke \
|
||||||
inductor/test_split_cat_fx_passes inductor/test_standalone_compile inductor/test_torchinductor \
|
inductor/test_split_cat_fx_passes inductor/test_standalone_compile inductor/test_torchinductor \
|
||||||
inductor/test_torchinductor_codegen_dynamic_shapes inductor/test_torchinductor_dynamic_shapes inductor/test_memory \
|
inductor/test_torchinductor_codegen_dynamic_shapes inductor/test_torchinductor_dynamic_shapes --verbose
|
||||||
--shard "$SHARD_NUMBER" "$NUM_TEST_SHARDS" --verbose
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! [[ "${BUILD_ENVIRONMENT}" == *libtorch* || "${BUILD_ENVIRONMENT}" == *-bazel-* ]]; then
|
if ! [[ "${BUILD_ENVIRONMENT}" == *libtorch* || "${BUILD_ENVIRONMENT}" == *-bazel-* ]]; then
|
||||||
@ -1484,7 +1479,7 @@ 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
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
@ -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,12 +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
|
|
||||||
|
|
||||||
# Install parameterized
|
|
||||||
python -m pip install parameterized==0.8.1
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@ -119,11 +119,6 @@ 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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
26
.github/actionlint.yaml
vendored
26
.github/actionlint.yaml
vendored
@ -3,6 +3,8 @@ 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
|
||||||
@ -32,6 +34,30 @@ self-hosted-runner:
|
|||||||
- lf.linux.8xlarge.nvidia.gpu
|
- lf.linux.8xlarge.nvidia.gpu
|
||||||
- lf.linux.16xlarge.nvidia.gpu
|
- lf.linux.16xlarge.nvidia.gpu
|
||||||
- lf.linux.g5.4xlarge.nvidia.gpu
|
- lf.linux.g5.4xlarge.nvidia.gpu
|
||||||
|
# Organization-wide AWS Linux Runners with new Amazon 2023 AMI
|
||||||
|
- amz2023.linux.large
|
||||||
|
- amz2023.linux.2xlarge
|
||||||
|
- amz2023.linux.4xlarge
|
||||||
|
- amz2023.linux.12xlarge
|
||||||
|
- amz2023.linux.24xlarge
|
||||||
|
- amz2023.linux.arm64.2xlarge
|
||||||
|
- amz2023.linux.arm64.m7g.4xlarge
|
||||||
|
- amz2023.linux.arm64.m7g.4xlarge.ephemeral
|
||||||
|
- amz2023.linux.4xlarge.nvidia.gpu
|
||||||
|
- amz2023.linux.8xlarge.nvidia.gpu
|
||||||
|
- amz2023.linux.16xlarge.nvidia.gpu
|
||||||
|
- amz2023.linux.g5.4xlarge.nvidia.gpu
|
||||||
|
# Pytorch/pytorch AWS Linux Runners with the new Amazon 2023 AMI on Linux Foundation account
|
||||||
|
- amz2023.lf.linux.large
|
||||||
|
- amz2023.lf.linux.2xlarge
|
||||||
|
- amz2023.lf.linux.4xlarge
|
||||||
|
- amz2023.lf.linux.12xlarge
|
||||||
|
- amz2023.lf.linux.24xlarge
|
||||||
|
- amz2023.lf.linux.arm64.2xlarge
|
||||||
|
- amz2023.lf.linux.4xlarge.nvidia.gpu
|
||||||
|
- amz2023.lf.linux.8xlarge.nvidia.gpu
|
||||||
|
- amz2023.lf.linux.16xlarge.nvidia.gpu
|
||||||
|
- amz2023.lf.linux.g5.4xlarge.nvidia.gpu
|
||||||
# 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
|
||||||
|
|||||||
2
.github/ci_commit_pins/audio.txt
vendored
2
.github/ci_commit_pins/audio.txt
vendored
@ -1 +1 @@
|
|||||||
ba696ea3dfec4cbe693bf06a84c75dc196077f5b
|
97ed7b36b7a741253d4e41e4da3c901d83294503
|
||||||
|
|||||||
4
.github/label_to_label.yml
vendored
4
.github/label_to_label.yml
vendored
@ -31,10 +31,6 @@
|
|||||||
- "module: flex attention"
|
- "module: flex attention"
|
||||||
then:
|
then:
|
||||||
- "module: higher order operators"
|
- "module: higher order operators"
|
||||||
- any:
|
|
||||||
- "module: aotinductor"
|
|
||||||
then:
|
|
||||||
- "oncall: export"
|
|
||||||
- any:
|
- any:
|
||||||
- "module: dynamo"
|
- "module: dynamo"
|
||||||
- "module: pt2-dispatcher"
|
- "module: pt2-dispatcher"
|
||||||
|
|||||||
182
.github/lf-canary-scale-config.yml
vendored
182
.github/lf-canary-scale-config.yml
vendored
@ -7,14 +7,10 @@
|
|||||||
# runners. Runners listed here will be available as self hosted
|
# runners. Runners listed here will be available as self hosted
|
||||||
# runners, configuration is directly pulled from the main branch.
|
# runners, configuration is directly pulled from the main branch.
|
||||||
#
|
#
|
||||||
|
# NOTE (Apr, 5, 2021): Linux runners are currently all an amazonlinux2
|
||||||
#
|
#
|
||||||
# NOTES:
|
# NOTE (Jan 5, 2021): Linux runners are all non-ephemeral to reduce the amount of CreateInstaces calls
|
||||||
# - Linux runners are by default non-ephemeral to reduce the amount of CreateInstaces calls
|
# to avoid RequestLimitExceeded issues
|
||||||
# to avoid RequestLimitExceeded issues
|
|
||||||
# - When updating this file, run the following command to validate the YAML and to generate
|
|
||||||
# corresponding versions of scale-config for the pytorch/pytorch repo and merge the
|
|
||||||
# pytorch/pytorch changes before merging these changes.
|
|
||||||
# `python .github/scripts/validate_scale_config.py --test-infra-repo-root [path_to_test-infra_root] --pytorch-repo-root [path_to_pytorch_root]``
|
|
||||||
#
|
#
|
||||||
# TODO: Add some documentation on how the auto-scaling works
|
# TODO: Add some documentation on how the auto-scaling works
|
||||||
#
|
#
|
||||||
@ -35,36 +31,58 @@ runner_types:
|
|||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 50
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||||
variants:
|
variants:
|
||||||
|
amz2023:
|
||||||
|
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||||
am2:
|
am2:
|
||||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||||
lf.c.linux.12xlarge.ephemeral:
|
lf.c.linux.12xlarge.ephemeral:
|
||||||
@ -73,140 +91,240 @@ runner_types:
|
|||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 500
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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:
|
lf.c.linux.24xlarge.ephemeral:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.24xlarge
|
instance_type: c5.24xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 50
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-arm64
|
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.202*-kernel-6.1-arm64
|
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:
|
lf.c.linux.arm64.2xlarge.ephemeral:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: t4g.2xlarge
|
instance_type: t4g.2xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-arm64
|
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:
|
lf.c.linux.arm64.m7g.4xlarge.ephemeral:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.4xlarge
|
instance_type: m7g.4xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-arm64
|
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.202*-kernel-6.1-arm64
|
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:
|
lf.c.windows.g4dn.xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: g4dn.xlarge
|
instance_type: g4dn.xlarge
|
||||||
|
|||||||
182
.github/lf-scale-config.yml
vendored
182
.github/lf-scale-config.yml
vendored
@ -7,14 +7,10 @@
|
|||||||
# runners. Runners listed here will be available as self hosted
|
# runners. Runners listed here will be available as self hosted
|
||||||
# runners, configuration is directly pulled from the main branch.
|
# runners, configuration is directly pulled from the main branch.
|
||||||
#
|
#
|
||||||
|
# NOTE (Apr, 5, 2021): Linux runners are currently all an amazonlinux2
|
||||||
#
|
#
|
||||||
# NOTES:
|
# NOTE (Jan 5, 2021): Linux runners are all non-ephemeral to reduce the amount of CreateInstaces calls
|
||||||
# - Linux runners are by default non-ephemeral to reduce the amount of CreateInstaces calls
|
# to avoid RequestLimitExceeded issues
|
||||||
# to avoid RequestLimitExceeded issues
|
|
||||||
# - When updating this file, run the following command to validate the YAML and to generate
|
|
||||||
# corresponding versions of scale-config for the pytorch/pytorch repo and merge the
|
|
||||||
# pytorch/pytorch changes before merging these changes.
|
|
||||||
# `python .github/scripts/validate_scale_config.py --test-infra-repo-root [path_to_test-infra_root] --pytorch-repo-root [path_to_pytorch_root]``
|
|
||||||
#
|
#
|
||||||
# TODO: Add some documentation on how the auto-scaling works
|
# TODO: Add some documentation on how the auto-scaling works
|
||||||
#
|
#
|
||||||
@ -35,36 +31,58 @@ runner_types:
|
|||||||
is_ephemeral: false
|
is_ephemeral: false
|
||||||
max_available: 1000
|
max_available: 1000
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 50
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||||
variants:
|
variants:
|
||||||
|
amz2023:
|
||||||
|
ami: al2023-ami-2023.5.20240701.0-kernel-6.1-x86_64
|
||||||
am2:
|
am2:
|
||||||
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
ami: amzn2-ami-hvm-2.0.20240306.2-x86_64-ebs
|
||||||
lf.linux.12xlarge.ephemeral:
|
lf.linux.12xlarge.ephemeral:
|
||||||
@ -73,140 +91,240 @@ runner_types:
|
|||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 300
|
max_available: 300
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 500
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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:
|
lf.linux.24xlarge.ephemeral:
|
||||||
disk_size: 150
|
disk_size: 150
|
||||||
instance_type: c5.24xlarge
|
instance_type: c5.24xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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: 50
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-x86_64
|
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.202*-kernel-6.1-arm64
|
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.202*-kernel-6.1-arm64
|
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:
|
lf.linux.arm64.2xlarge.ephemeral:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: t4g.2xlarge
|
instance_type: t4g.2xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-arm64
|
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:
|
lf.linux.arm64.m7g.4xlarge.ephemeral:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: m7g.4xlarge
|
instance_type: m7g.4xlarge
|
||||||
is_ephemeral: true
|
is_ephemeral: true
|
||||||
max_available: 200
|
max_available: 200
|
||||||
os: linux
|
os: linux
|
||||||
ami: al2023-ami-2023.5.202*-kernel-6.1-arm64
|
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.202*-kernel-6.1-arm64
|
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:
|
lf.windows.g4dn.xlarge:
|
||||||
disk_size: 256
|
disk_size: 256
|
||||||
instance_type: g4dn.xlarge
|
instance_type: g4dn.xlarge
|
||||||
|
|||||||
17
.github/merge_rules.yaml
vendored
17
.github/merge_rules.yaml
vendored
@ -86,18 +86,6 @@
|
|||||||
- pull
|
- pull
|
||||||
- inductor
|
- inductor
|
||||||
|
|
||||||
- name: OSS CI / pytorchbot / slow tests
|
|
||||||
patterns:
|
|
||||||
- test/slow_tests.json
|
|
||||||
approved_by:
|
|
||||||
- pytorchbot
|
|
||||||
ignore_flaky_failures: false
|
|
||||||
mandatory_checks_name:
|
|
||||||
- EasyCLA
|
|
||||||
- Lint
|
|
||||||
- pull
|
|
||||||
- slow
|
|
||||||
|
|
||||||
- name: OSS CI /pytorchbot / Executorch
|
- name: OSS CI /pytorchbot / Executorch
|
||||||
patterns:
|
patterns:
|
||||||
- .ci/docker/ci_commit_pins/executorch.txt
|
- .ci/docker/ci_commit_pins/executorch.txt
|
||||||
@ -119,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:
|
||||||
@ -544,7 +532,6 @@
|
|||||||
- anijain2305
|
- anijain2305
|
||||||
- bdhirsh
|
- bdhirsh
|
||||||
- zou3519
|
- zou3519
|
||||||
- isuruf
|
|
||||||
mandatory_checks_name:
|
mandatory_checks_name:
|
||||||
- EasyCLA
|
- EasyCLA
|
||||||
- Lint
|
- Lint
|
||||||
|
|||||||
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
|
||||||
|
|||||||
@ -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
|
||||||
@ -31,4 +30,3 @@ optree==0.12.1
|
|||||||
# NB: test_hparams_* from test_tensorboard is failing with protobuf 5.26.0 in
|
# NB: test_hparams_* from test_tensorboard is failing with protobuf 5.26.0 in
|
||||||
# which the stringify metadata is wrong when escaping double quote
|
# which the stringify metadata is wrong when escaping double quote
|
||||||
protobuf==3.20.2
|
protobuf==3.20.2
|
||||||
parameterized==0.8.1
|
|
||||||
|
|||||||
4
.github/scripts/build_triton_wheel.py
vendored
4
.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()
|
||||||
|
|||||||
51
.github/scripts/generate_binary_build_matrix.py
vendored
51
.github/scripts/generate_binary_build_matrix.py
vendored
@ -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
|
||||||
@ -372,17 +371,7 @@ def generate_wheels_matrix(
|
|||||||
) 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.11 for 12.1 CUDA
|
if arch_version != "cuda-aarch64":
|
||||||
if python_version == "3.11" 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,7 +452,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 == "cpu-cxx11-abi" else ""
|
"cxx11-abi" if arch_version == "cpu-cxx11-abi" else ""
|
||||||
),
|
),
|
||||||
@ -452,12 +462,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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
33
.github/scripts/generate_ci_workflows.py
vendored
33
.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:
|
||||||
@ -70,9 +69,6 @@ class BinaryBuildWorkflow:
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.build_environment = f"{self.os}-binary-{self.package_type}"
|
self.build_environment = f"{self.os}-binary-{self.package_type}"
|
||||||
if self.use_split_build:
|
|
||||||
# added to distinguish concurrency groups
|
|
||||||
self.build_environment += "-split"
|
|
||||||
|
|
||||||
def generate_workflow_file(self, workflow_template: jinja2.Template) -> None:
|
def generate_workflow_file(self, workflow_template: jinja2.Template) -> None:
|
||||||
output_file_path = (
|
output_file_path = (
|
||||||
@ -114,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",
|
||||||
@ -180,21 +162,6 @@ LINUX_BINARY_SMOKE_WORKFLOWS = [
|
|||||||
),
|
),
|
||||||
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",
|
||||||
|
|||||||
22
.github/scripts/github_utils.py
vendored
22
.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
|
||||||
|
|
||||||
|
|
||||||
@ -168,14 +160,6 @@ def gh_post_commit_comment(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def gh_close_pr(org: str, repo: str, pr_num: int, dry_run: bool = False) -> None:
|
|
||||||
url = f"{GITHUB_API_URL}/repos/{org}/{repo}/pulls/{pr_num}"
|
|
||||||
if dry_run:
|
|
||||||
print(f"Dry run closing PR {pr_num}")
|
|
||||||
else:
|
|
||||||
gh_fetch_url(url, method="PATCH", data={"state": "closed"})
|
|
||||||
|
|
||||||
|
|
||||||
def gh_delete_comment(org: str, repo: str, comment_id: int) -> None:
|
def gh_delete_comment(org: str, repo: str, comment_id: int) -> None:
|
||||||
url = f"{GITHUB_API_URL}/repos/{org}/{repo}/issues/comments/{comment_id}"
|
url = f"{GITHUB_API_URL}/repos/{org}/{repo}/issues/comments/{comment_id}"
|
||||||
gh_fetch_url(url, method="DELETE")
|
gh_fetch_url(url, method="DELETE")
|
||||||
|
|||||||
7
.github/scripts/lintrunner.sh
vendored
7
.github/scripts/lintrunner.sh
vendored
@ -17,11 +17,6 @@ if [[ -d "${CACHE_DIRECTORY}" ]]; then
|
|||||||
cp -r "${CACHE_DIRECTORY}" . || true
|
cp -r "${CACHE_DIRECTORY}" . || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if lintrunner is not installed, install it
|
|
||||||
if ! command -v lintrunner &> /dev/null; then
|
|
||||||
python3 -m pip install lintrunner==0.12.5
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This has already been cached in the docker image
|
# This has already been cached in the docker image
|
||||||
lintrunner init 2> /dev/null
|
lintrunner init 2> /dev/null
|
||||||
|
|
||||||
@ -38,7 +33,7 @@ python3 torch/utils/data/datapipes/gen_pyi.py
|
|||||||
|
|
||||||
RC=0
|
RC=0
|
||||||
# Run lintrunner on all files
|
# Run lintrunner on all files
|
||||||
if ! lintrunner --force-color --tee-json=lint.json ${ADDITIONAL_LINTRUNNER_ARGS} 2> /dev/null; then
|
if ! lintrunner --force-color --all-files --tee-json=lint.json ${ADDITIONAL_LINTRUNNER_ARGS} 2> /dev/null; then
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "\e[1m\e[36mYou can reproduce these results locally by using \`lintrunner -m origin/main\`. (If you don't get the same results, run \'lintrunner init\' to update your local linter)\e[0m"
|
echo -e "\e[1m\e[36mYou can reproduce these results locally by using \`lintrunner -m origin/main\`. (If you don't get the same results, run \'lintrunner init\' to update your local linter)\e[0m"
|
||||||
echo -e "\e[1m\e[36mSee https://github.com/pytorch/pytorch/wiki/lintrunner for setup instructions.\e[0m"
|
echo -e "\e[1m\e[36mSee https://github.com/pytorch/pytorch/wiki/lintrunner for setup instructions.\e[0m"
|
||||||
|
|||||||
367
.github/scripts/runner_determinator.py
vendored
367
.github/scripts/runner_determinator.py
vendored
@ -3,94 +3,49 @@
|
|||||||
"""
|
"""
|
||||||
This runner determinator is used to determine which set of runners to run a
|
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
|
GitHub job on. It uses the first comment of a GitHub issue (by default
|
||||||
https://github.com/pytorch/test-infra/issues/5132) to define the configuration
|
https://github.com/pytorch/test-infra/issues/5132) as a user list to determine
|
||||||
of which runners should be used to run which job.
|
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
|
||||||
The configuration has two parts, the settings and a list of opted-in users,
|
user could be opted in to.
|
||||||
separated by a line containing "---". If the line is not present, the
|
|
||||||
settings are considered to be empty with only the second part, the user
|
|
||||||
list, defined.
|
|
||||||
|
|
||||||
The first part is a YAML block that defines the rollout settings. This can be
|
|
||||||
used to define any settings that are needed to determine which runners to use.
|
|
||||||
It's fields are defined by the RolloutSettings class below.
|
|
||||||
|
|
||||||
The second part is a list of users who are explicitly opted in to the LF fleet.
|
|
||||||
The 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:
|
The user list has the following rules:
|
||||||
|
|
||||||
- Users are GitHub usernames, which must start with the @ prefix
|
- 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
|
- Each user is also a comma-separated list of features/experiments to enable
|
||||||
- A "#" prefix opts the user out of all experiments
|
- A "#" prefix indicates the user is opted out of the new runners but is opting
|
||||||
|
into features/experiments.
|
||||||
|
|
||||||
Example config:
|
Example user list:
|
||||||
# A list of experiments that can be opted into.
|
|
||||||
# This defines the behavior they'll induce when opted into.
|
|
||||||
# Expected syntax is:
|
|
||||||
# [experiment_name]: # Name of the experiment. Also used for the label prefix.
|
|
||||||
# rollout_perc: [int] # % of workflows to run with this experiment when users are not opted in.
|
|
||||||
|
|
||||||
experiments:
|
@User1
|
||||||
lf:
|
@User2,amz2023
|
||||||
rollout_percent: 25
|
#@UserOptOutOfNewRunner,amz2023
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Opt-ins:
|
|
||||||
# Users can opt into the LF fleet by adding their GitHub username to this list
|
|
||||||
# and specifying experiments to enable in a comma-separated list.
|
|
||||||
# Experiments should be from the above list.
|
|
||||||
|
|
||||||
@User1,lf,split_build
|
|
||||||
@User2,lf
|
|
||||||
@User3,split_build
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import random
|
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from logging import LogRecord
|
from logging import LogRecord
|
||||||
from typing import Any, Dict, Iterable, List, NamedTuple, Tuple
|
from typing import Any, Iterable
|
||||||
|
|
||||||
import yaml
|
|
||||||
from github import Auth, Github
|
from github import Auth, Github
|
||||||
from github.Issue import Issue
|
from github.Issue import Issue
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_LABEL_PREFIX = "" # use meta runners
|
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_AMI = "runner-ami"
|
||||||
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
||||||
|
|
||||||
|
|
||||||
SETTING_EXPERIMENTS = "experiments"
|
|
||||||
|
|
||||||
LF_FLEET_EXPERIMENT = "lf"
|
|
||||||
CANARY_FLEET_SUFFIX = ".c"
|
|
||||||
|
|
||||||
|
|
||||||
class Experiment(NamedTuple):
|
|
||||||
rollout_perc: float = (
|
|
||||||
0 # Percentage of workflows to experiment on when user is not opted-in.
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add more fields as needed
|
|
||||||
|
|
||||||
|
|
||||||
class Settings(NamedTuple):
|
|
||||||
"""
|
|
||||||
Settings for the experiments that can be opted into.
|
|
||||||
"""
|
|
||||||
|
|
||||||
experiments: Dict[str, Experiment] = {}
|
|
||||||
|
|
||||||
|
|
||||||
class ColorFormatter(logging.Formatter):
|
class ColorFormatter(logging.Formatter):
|
||||||
"""Color codes the log messages based on the log level"""
|
"""Color codes the log messages based on the log level"""
|
||||||
|
|
||||||
@ -182,14 +137,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 (
|
||||||
@ -211,233 +163,126 @@ 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 load_yaml(yaml_text: str) -> Any:
|
def get_workflow_type(issue: Issue, workflow_requestors: Iterable[str]) -> str:
|
||||||
try:
|
try:
|
||||||
data = yaml.safe_load(yaml_text)
|
first_comment = issue.get_comments()[0].body.strip("\n\t ")
|
||||||
return data
|
|
||||||
except yaml.YAMLError as exc:
|
|
||||||
log.exception("Error loading YAML")
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
if first_comment[0] == "!":
|
||||||
def extract_settings_user_opt_in_from_text(rollout_state: str) -> Tuple[str, str]:
|
log.info("LF Workflows are disabled for everyone. Using meta runners.")
|
||||||
"""
|
return WORKFLOW_LABEL_META
|
||||||
Extracts the text with settings, if any, and the opted in users from the rollout state.
|
elif first_comment[0] == "*":
|
||||||
|
log.info("LF Workflows are enabled for everyone. Using LF runners.")
|
||||||
If the issue body contains "---" then the text above that is the settings
|
return WORKFLOW_LABEL_LF
|
||||||
and the text below is the list of opted in users.
|
else:
|
||||||
|
all_opted_in_users = {
|
||||||
If it doesn't contain "---" then the settings are empty and the rest is the users.
|
usr_raw.strip("\n\t@ ").split(",")[0]
|
||||||
"""
|
for usr_raw in first_comment.split()
|
||||||
rollout_state_parts = rollout_state.split("---")
|
}
|
||||||
if len(rollout_state_parts) >= 2:
|
opted_in_requestors = {
|
||||||
return rollout_state_parts[0], rollout_state_parts[1]
|
usr for usr in workflow_requestors if usr in all_opted_in_users
|
||||||
else:
|
}
|
||||||
return "", rollout_state
|
if opted_in_requestors:
|
||||||
|
|
||||||
|
|
||||||
class UserOptins(Dict[str, List[str]]):
|
|
||||||
"""
|
|
||||||
Dictionary of users with a list of features they have opted into
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def parse_user_opt_in_from_text(user_optin_text: str) -> UserOptins:
|
|
||||||
"""
|
|
||||||
Parse the user opt-in text into a key value pair of username and the list of features they have opted into
|
|
||||||
|
|
||||||
Users are GitHub usernames with the @ prefix. Each user is also a comma-separated list of features/experiments to enable.
|
|
||||||
- Example line: "@User1,lf,split_build"
|
|
||||||
- A "#" prefix indicates the user is opted out of all experiments
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
optins = UserOptins()
|
|
||||||
for user in user_optin_text.split("\n"):
|
|
||||||
user = user.strip("\r\n\t -")
|
|
||||||
if not user or not user.startswith("@"):
|
|
||||||
# Not a valid user. Skip
|
|
||||||
continue
|
|
||||||
|
|
||||||
if user:
|
|
||||||
usr_name = user.split(",")[0].strip("@")
|
|
||||||
optins[usr_name] = [exp.strip(" ") for exp in user.split(",")[1:]]
|
|
||||||
|
|
||||||
return optins
|
|
||||||
|
|
||||||
|
|
||||||
def parse_settings_from_text(settings_text: str) -> Settings:
|
|
||||||
"""
|
|
||||||
Parse the experiments from the issue body into a list of ExperimentSettings
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
if settings_text:
|
|
||||||
# Escape the backtick as well so that we can have the settings in a code block on the GH issue
|
|
||||||
# for easy reading
|
|
||||||
# Note: Using ascii for the backtick so that the cat step in _runner-determinator.yml doesn't choke on
|
|
||||||
# the backtick character in shell commands.
|
|
||||||
backtick = chr(96) # backtick character
|
|
||||||
settings_text = settings_text.strip(f"\r\n\t{backtick} ")
|
|
||||||
settings = load_yaml(settings_text)
|
|
||||||
|
|
||||||
# For now we just load experiments. We can expand this if/when we add more settings
|
|
||||||
experiments = {}
|
|
||||||
|
|
||||||
for exp_name, exp_settings in settings.get(SETTING_EXPERIMENTS).items():
|
|
||||||
valid_settings = {}
|
|
||||||
for setting in exp_settings:
|
|
||||||
if setting not in Experiment._fields:
|
|
||||||
log.warning(
|
|
||||||
f"Unexpected setting in experiment: {setting} = {exp_settings[setting]}"
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
valid_settings[setting] = exp_settings[setting]
|
|
||||||
|
|
||||||
experiments[exp_name] = Experiment(**valid_settings)
|
|
||||||
return Settings(experiments)
|
|
||||||
|
|
||||||
except Exception:
|
|
||||||
log.exception("Failed to parse settings")
|
|
||||||
|
|
||||||
return Settings()
|
|
||||||
|
|
||||||
|
|
||||||
def parse_settings(rollout_state: str) -> Settings:
|
|
||||||
"""
|
|
||||||
Parse settings, if any, from the rollout state.
|
|
||||||
|
|
||||||
If the issue body contains "---" then the text above that is the settings
|
|
||||||
and the text below is the list of opted in users.
|
|
||||||
|
|
||||||
If it doesn't contain "---" then the settings are empty and the default values are used.
|
|
||||||
"""
|
|
||||||
settings_text, _ = extract_settings_user_opt_in_from_text(rollout_state)
|
|
||||||
return parse_settings_from_text(settings_text)
|
|
||||||
|
|
||||||
|
|
||||||
def parse_users(rollout_state: str) -> UserOptins:
|
|
||||||
"""
|
|
||||||
Parse users from the rollout state.
|
|
||||||
|
|
||||||
"""
|
|
||||||
_, users_text = extract_settings_user_opt_in_from_text(rollout_state)
|
|
||||||
return parse_user_opt_in_from_text(users_text)
|
|
||||||
|
|
||||||
|
|
||||||
def is_user_opted_in(user: str, user_optins: UserOptins, experiment_name: str) -> bool:
|
|
||||||
"""
|
|
||||||
Check if a user is opted into an experiment
|
|
||||||
"""
|
|
||||||
return experiment_name in user_optins.get(user, [])
|
|
||||||
|
|
||||||
|
|
||||||
def get_runner_prefix(
|
|
||||||
rollout_state: str, workflow_requestors: Iterable[str], is_canary: bool = False
|
|
||||||
) -> str:
|
|
||||||
settings = parse_settings(rollout_state)
|
|
||||||
user_optins = parse_users(rollout_state)
|
|
||||||
|
|
||||||
fleet_prefix = ""
|
|
||||||
prefixes = []
|
|
||||||
for experiment_name, experiment_settings in settings.experiments.items():
|
|
||||||
enabled = False
|
|
||||||
|
|
||||||
# Is any workflow_requestor opted in to this experiment?
|
|
||||||
opted_in_users = [
|
|
||||||
requestor
|
|
||||||
for requestor in workflow_requestors
|
|
||||||
if is_user_opted_in(requestor, user_optins, experiment_name)
|
|
||||||
]
|
|
||||||
|
|
||||||
if opted_in_users:
|
|
||||||
log.info(
|
|
||||||
f"{', '.join(opted_in_users)} have opted into experiment {experiment_name}."
|
|
||||||
)
|
|
||||||
enabled = True
|
|
||||||
elif experiment_settings.rollout_perc:
|
|
||||||
# If no user is opted in, then we randomly enable the experiment based on the rollout percentage
|
|
||||||
if random.uniform(0, 100) <= experiment_settings.rollout_perc:
|
|
||||||
log.info(
|
log.info(
|
||||||
f"Based on rollout percentage of {experiment_settings.rollout_perc}%, enabling experiment {experiment_name}."
|
f"LF Workflows are enabled for {', '.join(opted_in_requestors)}. Using LF runners."
|
||||||
)
|
)
|
||||||
enabled = True
|
return WORKFLOW_LABEL_LF
|
||||||
|
|
||||||
if enabled:
|
|
||||||
label = experiment_name
|
|
||||||
if experiment_name == LF_FLEET_EXPERIMENT:
|
|
||||||
# We give some special treatment to the "lf" experiment since determines the fleet we use
|
|
||||||
# - If it's enabled, then we always list it's prefix first
|
|
||||||
# - If we're in the canary branch, then we append ".c" to the lf prefix
|
|
||||||
if is_canary:
|
|
||||||
label += CANARY_FLEET_SUFFIX
|
|
||||||
fleet_prefix = label
|
|
||||||
else:
|
else:
|
||||||
prefixes.append(label)
|
log.info(
|
||||||
|
f"LF Workflows are disabled for {', '.join(workflow_requestors)}. Using meta runners."
|
||||||
|
)
|
||||||
|
return WORKFLOW_LABEL_META
|
||||||
|
|
||||||
if len(prefixes) > 1:
|
except Exception as e:
|
||||||
log.error(
|
log.error(
|
||||||
f"Only a fleet and one other experiment can be enabled for a job at any time. Enabling {prefixes[0]} and ignoring the rest, which are {', '.join(prefixes[1:])}"
|
f"Failed to get determine workflow type. Falling back to meta runners. Exception: {e}"
|
||||||
)
|
)
|
||||||
prefixes = prefixes[:1]
|
return WORKFLOW_LABEL_META
|
||||||
|
|
||||||
# Fleet always comes first
|
|
||||||
if fleet_prefix:
|
|
||||||
prefixes.insert(0, fleet_prefix)
|
|
||||||
|
|
||||||
return ".".join(prefixes) + "." if prefixes else ""
|
|
||||||
|
|
||||||
|
|
||||||
def get_rollout_state_from_issue(github_token: str, repo: str, issue_num: int) -> str:
|
def get_optin_feature(
|
||||||
"""
|
issue: Issue, workflow_requestors: Iterable[str], feature: str, fallback: str
|
||||||
Gets the first comment of the issue, which contains the desired rollout state.
|
) -> str:
|
||||||
|
try:
|
||||||
|
first_comment = issue.get_comments()[0].body.strip("\n\t ")
|
||||||
|
userlist = {u.lstrip("#").strip("\n\t@ ") for u in first_comment.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
|
||||||
|
}
|
||||||
|
|
||||||
The default issue we use - https://github.com/pytorch/test-infra/issues/5132
|
if opted_in_requestors:
|
||||||
"""
|
log.info(
|
||||||
gh = get_gh_client(github_token)
|
f"Feature {feature} is enabled for {', '.join(opted_in_requestors)}. Using feature {feature}."
|
||||||
issue = get_issue(gh, repo, issue_num)
|
)
|
||||||
return str(issue.get_comments()[0].body.strip("\n\t "))
|
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 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(
|
log.info(f"Exception branch: '{args.github_branch}', using meta runners")
|
||||||
f"Exception branch: '{args.github_branch}', using Meta runners and no experiments."
|
label_type = WORKFLOW_LABEL_META
|
||||||
)
|
runner_ami = RUNNER_AMI_LEGACY
|
||||||
runner_label_prefix = DEFAULT_LABEL_PREFIX
|
|
||||||
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(
|
||||||
is_canary = args.github_repo == "pytorch/pytorch-canary"
|
issue,
|
||||||
|
(
|
||||||
runner_label_prefix = get_runner_prefix(
|
args.github_issue_owner,
|
||||||
rollout_state, (args.github_issue_owner, username), is_canary
|
username,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
runner_ami = get_optin_feature(
|
||||||
|
issue=issue,
|
||||||
|
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. Defaulting to Meta runners and no experiments. Exception: {e}"
|
f"Failed to get issue. Falling back to meta runners. Exception: {e}"
|
||||||
)
|
)
|
||||||
|
label_type = WORKFLOW_LABEL_META
|
||||||
|
runner_ami = RUNNER_AMI_LEGACY
|
||||||
|
|
||||||
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, runner_label_prefix)
|
# For Canary builds use canary runners
|
||||||
|
if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
|
||||||
|
label_type = WORKFLOW_LABEL_LF_CANARY
|
||||||
|
|
||||||
|
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
|
||||||
|
set_github_output(GH_OUTPUT_KEY_AMI, runner_ami)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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}"
|
|
||||||
35
.github/scripts/sync_distributed_folder_prototype.sh
vendored
Executable file
35
.github/scripts/sync_distributed_folder_prototype.sh
vendored
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eoux pipefail
|
||||||
|
|
||||||
|
SYNC_BRANCH=pytorch-stable-prototype
|
||||||
|
|
||||||
|
git config user.email "fake@example.com"
|
||||||
|
git config user.name "PyTorch Stable Bot"
|
||||||
|
|
||||||
|
git fetch origin main
|
||||||
|
git fetch origin "$SYNC_BRANCH"
|
||||||
|
git checkout "$SYNC_BRANCH"
|
||||||
|
|
||||||
|
# Using a hardcoded SHA here is a massive speedup as we can skip the entire history of the pytorch GitHub repo.
|
||||||
|
# This specific SHA was chosen as it was before the "branch point" of the stable branch
|
||||||
|
for SHA in $(git log ba3b05fdf37ddbc3c301294d6a560a816335e717..origin/main --pretty="%h" -- torch/distributed torch/csrc/distributed test/distributed test/cpp/c10d benchmarks/distributed)
|
||||||
|
do
|
||||||
|
# `git merge-base --is-ancestor` exits with code 0 if the given SHA is an ancestor, and non-0 otherwise
|
||||||
|
if git merge-base --is-ancestor $SHA HEAD || [[ $(git log --grep="(cherry picked from commit $SHA") ]]
|
||||||
|
then
|
||||||
|
echo "Skipping $SHA"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Copying $SHA"
|
||||||
|
git cherry-pick -x "$SHA" -X theirs
|
||||||
|
git reset --soft HEAD~1
|
||||||
|
git add torch/distributed torch/csrc/distributed test/distributed test/cpp/c10d benchmarks/distributed
|
||||||
|
git checkout .
|
||||||
|
git commit --reuse-message=HEAD@{1}
|
||||||
|
git clean -f
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${WITH_PUSH}" == true ]]; then
|
||||||
|
git push
|
||||||
|
fi
|
||||||
@ -51,8 +51,6 @@ def main() -> None:
|
|||||||
|
|
||||||
for platform_image in platform_images: # type: ignore[attr-defined]
|
for platform_image in platform_images: # type: ignore[attr-defined]
|
||||||
for arch in platform_image.keys(): # type: ignore[attr-defined]
|
for arch in platform_image.keys(): # type: ignore[attr-defined]
|
||||||
if arch == "cpu-s390x":
|
|
||||||
continue
|
|
||||||
tag_image(
|
tag_image(
|
||||||
platform_image[arch], # type: ignore[index]
|
platform_image[arch], # type: ignore[index]
|
||||||
default_tag,
|
default_tag,
|
||||||
|
|||||||
237
.github/scripts/test_runner_determinator.py
vendored
237
.github/scripts/test_runner_determinator.py
vendored
@ -1,237 +0,0 @@
|
|||||||
from unittest import main, TestCase
|
|
||||||
from unittest.mock import Mock, patch
|
|
||||||
|
|
||||||
import runner_determinator as rd
|
|
||||||
|
|
||||||
|
|
||||||
class TestRunnerDeterminatorIssueParser(TestCase):
|
|
||||||
def test_parse_settings(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 25
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
settings = rd.parse_settings(settings_text)
|
|
||||||
|
|
||||||
self.assertTupleEqual(
|
|
||||||
rd.Experiment(rollout_perc=25),
|
|
||||||
settings.experiments["lf"],
|
|
||||||
"lf settings not parsed correctly",
|
|
||||||
)
|
|
||||||
self.assertTupleEqual(
|
|
||||||
rd.Experiment(rollout_perc=0),
|
|
||||||
settings.experiments["otherExp"],
|
|
||||||
"otherExp settings not parsed correctly",
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_parse_settings_in_code_block(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
|
|
||||||
```
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 25
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
settings = rd.parse_settings(settings_text)
|
|
||||||
|
|
||||||
self.assertTupleEqual(
|
|
||||||
rd.Experiment(rollout_perc=25),
|
|
||||||
settings.experiments["lf"],
|
|
||||||
"lf settings not parsed correctly",
|
|
||||||
)
|
|
||||||
self.assertTupleEqual(
|
|
||||||
rd.Experiment(rollout_perc=0),
|
|
||||||
settings.experiments["otherExp"],
|
|
||||||
"otherExp settings not parsed correctly",
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_parse_users(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
users = rd.parse_users(settings_text)
|
|
||||||
self.assertDictEqual(
|
|
||||||
{"User1": ["lf"], "User2": ["lf", "otherExp"]},
|
|
||||||
users,
|
|
||||||
"Users not parsed correctly",
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_parse_users_without_settings(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
users = rd.parse_users(settings_text)
|
|
||||||
self.assertDictEqual(
|
|
||||||
{"User1": ["lf"], "User2": ["lf", "otherExp"]},
|
|
||||||
users,
|
|
||||||
"Users not parsed correctly",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class TestRunnerDeterminatorGetRunnerPrefix(TestCase):
|
|
||||||
def test_opted_in_user(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User1"])
|
|
||||||
self.assertEqual("lf.", prefix, "Runner prefix not correct for User1")
|
|
||||||
|
|
||||||
def test_opted_in_user_two_experiments(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User2"])
|
|
||||||
self.assertEqual("lf.otherExp.", prefix, "Runner prefix not correct for User2")
|
|
||||||
|
|
||||||
@patch("random.uniform", return_value=50)
|
|
||||||
def test_opted_out_user(self, mock_uniform: Mock) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 25
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 25
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User3"])
|
|
||||||
self.assertEqual("", prefix, "Runner prefix not correct for user")
|
|
||||||
|
|
||||||
@patch("random.uniform", return_value=10)
|
|
||||||
def test_opted_out_user_was_pulled_in_by_rollout(self, mock_uniform: Mock) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 25
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 25
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
# User3 is opted out, but is pulled into both experiments by the 10% rollout
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User3"])
|
|
||||||
self.assertEqual("lf.otherExp.", prefix, "Runner prefix not correct for user")
|
|
||||||
|
|
||||||
def test_lf_prefix_always_comes_first(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf
|
|
||||||
@User2,otherExp,lf
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User2"])
|
|
||||||
self.assertEqual("lf.otherExp.", prefix, "Runner prefix not correct for user")
|
|
||||||
|
|
||||||
def test_ignores_commented_users(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
#@User1,lf
|
|
||||||
@User2,lf,otherExp
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User1"])
|
|
||||||
self.assertEqual("", prefix, "Runner prefix not correct for user")
|
|
||||||
|
|
||||||
def test_ignores_extra_experiments(self) -> None:
|
|
||||||
settings_text = """
|
|
||||||
experiments:
|
|
||||||
lf:
|
|
||||||
rollout_perc: 0
|
|
||||||
otherExp:
|
|
||||||
rollout_perc: 0
|
|
||||||
foo:
|
|
||||||
rollout_perc: 0
|
|
||||||
---
|
|
||||||
|
|
||||||
Users:
|
|
||||||
@User1,lf,otherExp,foo
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
prefix = rd.get_runner_prefix(settings_text, ["User1"])
|
|
||||||
self.assertEqual("lf.otherExp.", prefix, "Runner prefix not correct for user")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
48
.github/scripts/trymerge.py
vendored
48
.github/scripts/trymerge.py
vendored
@ -36,7 +36,6 @@ from warnings import warn
|
|||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
from github_utils import (
|
from github_utils import (
|
||||||
gh_close_pr,
|
|
||||||
gh_fetch_json_list,
|
gh_fetch_json_list,
|
||||||
gh_fetch_merge_base,
|
gh_fetch_merge_base,
|
||||||
gh_fetch_url,
|
gh_fetch_url,
|
||||||
@ -1175,11 +1174,11 @@ class GitHubPR:
|
|||||||
for pr in additional_merged_prs:
|
for pr in additional_merged_prs:
|
||||||
pr.add_numbered_label(MERGE_COMPLETE_LABEL, dry_run)
|
pr.add_numbered_label(MERGE_COMPLETE_LABEL, dry_run)
|
||||||
|
|
||||||
# When the merge process reaches this part, we can assume that the commit
|
|
||||||
# has been successfully pushed to trunk
|
|
||||||
merge_commit_sha = repo.rev_parse(name=self.default_branch())
|
|
||||||
|
|
||||||
if comment_id and self.pr_num:
|
if comment_id and self.pr_num:
|
||||||
|
# When the merge process reaches this part, we can assume that the commit
|
||||||
|
# has been successfully pushed to trunk
|
||||||
|
merge_commit_sha = repo.rev_parse(name=REMOTE_MAIN_BRANCH)
|
||||||
|
|
||||||
# Finally, upload the record to Rockset. The list of pending and failed
|
# Finally, upload the record to Rockset. The list of pending and failed
|
||||||
# checks are at the time of the merge
|
# checks are at the time of the merge
|
||||||
save_merge_record(
|
save_merge_record(
|
||||||
@ -1204,17 +1203,6 @@ class GitHubPR:
|
|||||||
else:
|
else:
|
||||||
print("Missing comment ID or PR number, couldn't upload to Rockset")
|
print("Missing comment ID or PR number, couldn't upload to Rockset")
|
||||||
|
|
||||||
# Usually Github will see that the commit has "resolves <pr_num>" in the
|
|
||||||
# commit message and close the PR, but sometimes it doesn't, leading to
|
|
||||||
# confusion. When it doesn't, we close it manually.
|
|
||||||
time.sleep(60) # Give Github some time to close the PR
|
|
||||||
manually_close_merged_pr(
|
|
||||||
pr=self,
|
|
||||||
additional_merged_prs=additional_merged_prs,
|
|
||||||
merge_commit_sha=merge_commit_sha,
|
|
||||||
dry_run=dry_run,
|
|
||||||
)
|
|
||||||
|
|
||||||
def merge_changes(
|
def merge_changes(
|
||||||
self,
|
self,
|
||||||
repo: GitRepo,
|
repo: GitRepo,
|
||||||
@ -1515,34 +1503,6 @@ def checks_to_markdown_bullets(
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def manually_close_merged_pr(
|
|
||||||
pr: GitHubPR,
|
|
||||||
additional_merged_prs: List[GitHubPR],
|
|
||||||
merge_commit_sha: str,
|
|
||||||
dry_run: bool,
|
|
||||||
) -> None:
|
|
||||||
def _comment_and_close(pr: GitHubPR, comment: str) -> None:
|
|
||||||
pr = GitHubPR(pr.org, pr.project, pr.pr_num) # Refresh the PR
|
|
||||||
if not pr.is_closed():
|
|
||||||
gh_post_pr_comment(pr.org, pr.project, pr.pr_num, comment, dry_run)
|
|
||||||
gh_close_pr(pr.org, pr.project, pr.pr_num, dry_run)
|
|
||||||
|
|
||||||
message = (
|
|
||||||
f"This PR (#{pr.pr_num}) was merged in {merge_commit_sha} but it is still open, likely due to a Github bug, "
|
|
||||||
"so mergebot is closing it manually. If you think this is a mistake, please feel free to reopen and contact Dev Infra."
|
|
||||||
)
|
|
||||||
_comment_and_close(pr, message)
|
|
||||||
for additional_pr in additional_merged_prs:
|
|
||||||
message = (
|
|
||||||
f"This PR (#{additional_pr.pr_num}) was merged as part of PR #{pr.pr_num} in the stack under {merge_commit_sha} "
|
|
||||||
"but it is still open, likely due to a Github bug, so mergebot is closing it manually. "
|
|
||||||
"If you think this is a mistake, please feel free to reopen and contact Dev Infra."
|
|
||||||
)
|
|
||||||
_comment_and_close(additional_pr, message)
|
|
||||||
|
|
||||||
print(f"PR {pr.pr_num} and all additional PRs in the stack have been closed.")
|
|
||||||
|
|
||||||
|
|
||||||
@retries_decorator()
|
@retries_decorator()
|
||||||
def save_merge_record(
|
def save_merge_record(
|
||||||
comment_id: int,
|
comment_id: int,
|
||||||
|
|||||||
4
.github/templates/common.yml.j2
vendored
4
.github/templates/common.yml.j2
vendored
@ -1,7 +1,7 @@
|
|||||||
{%- 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 -%}
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,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 %}
|
||||||
|
|||||||
@ -104,9 +104,9 @@ jobs:
|
|||||||
- get-label-type
|
- 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: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
{%- else %}
|
{%- else %}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge.nonephemeral"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu.nonephemeral"
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral"
|
||||||
|
|||||||
2
.github/workflows/_binary-build-linux.yml
vendored
2
.github/workflows/_binary-build-linux.yml
vendored
@ -283,7 +283,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 }}
|
||||||
|
|||||||
2
.github/workflows/_binary-test-linux.yml
vendored
2
.github/workflows/_binary-test-linux.yml
vendored
@ -210,7 +210,7 @@ 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/"
|
||||||
|
|||||||
2
.github/workflows/_binary-upload.yml
vendored
2
.github/workflows/_binary-upload.yml
vendored
@ -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/"
|
||||||
|
|||||||
2
.github/workflows/_ios-build-test.yml
vendored
2
.github/workflows/_ios-build-test.yml
vendored
@ -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
|
||||||
|
|
||||||
|
|||||||
64
.github/workflows/_linux-build.yml
vendored
64
.github/workflows/_linux-build.yml
vendored
@ -109,7 +109,6 @@ jobs:
|
|||||||
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@main
|
uses: pytorch/test-infra/.github/actions/setup-ssh@main
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
with:
|
||||||
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
github-secret: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
@ -119,16 +118,13 @@ jobs:
|
|||||||
# 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@main
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
with:
|
|
||||||
no-sudo: ${{ inputs.build-environment == 'linux-s390x-binary-manywheel' }}
|
|
||||||
|
|
||||||
- name: Setup Linux
|
- name: Setup Linux
|
||||||
uses: ./.github/actions/setup-linux
|
uses: ./.github/actions/setup-linux
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
|
|
||||||
- name: configure aws credentials
|
- name: configure aws credentials
|
||||||
uses: aws-actions/configure-aws-credentials@v3
|
uses: aws-actions/configure-aws-credentials@v3
|
||||||
if: ${{ inputs.aws-role-to-assume != '' && inputs.build-environment != 'linux-s390x-binary-manywheel' }}
|
if: ${{ inputs.aws-role-to-assume != '' }}
|
||||||
with:
|
with:
|
||||||
role-to-assume: ${{ inputs.aws-role-to-assume }}
|
role-to-assume: ${{ inputs.aws-role-to-assume }}
|
||||||
role-session-name: gha-linux-build
|
role-session-name: gha-linux-build
|
||||||
@ -137,13 +133,11 @@ 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@main
|
uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
with:
|
||||||
docker-image-name: ${{ inputs.docker-image-name }}
|
docker-image-name: ${{ inputs.docker-image-name }}
|
||||||
|
|
||||||
- name: Use following to pull public copy of the image
|
- name: Use following to pull public copy of the image
|
||||||
id: print-ghcr-mirror
|
id: print-ghcr-mirror
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
env:
|
env:
|
||||||
ECR_DOCKER_IMAGE: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
ECR_DOCKER_IMAGE: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -153,7 +147,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Pull docker image
|
- name: Pull docker image
|
||||||
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
uses: pytorch/test-infra/.github/actions/pull-docker-image@main
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
with:
|
||||||
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
|
|
||||||
@ -181,7 +174,6 @@ jobs:
|
|||||||
- name: Download pytest cache
|
- name: Download pytest cache
|
||||||
uses: ./.github/actions/pytest-cache-download
|
uses: ./.github/actions/pytest-cache-download
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
if: inputs.build-environment != 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
with:
|
||||||
cache_dir: .pytest_cache
|
cache_dir: .pytest_cache
|
||||||
job_identifier: ${{ github.workflow }}_${{ inputs.build-environment }}
|
job_identifier: ${{ github.workflow }}_${{ inputs.build-environment }}
|
||||||
@ -203,7 +195,6 @@ jobs:
|
|||||||
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
||||||
TORCH_CUDA_ARCH_LIST: ${{ inputs.cuda-arch-list }}
|
TORCH_CUDA_ARCH_LIST: ${{ inputs.cuda-arch-list }}
|
||||||
DOCKER_IMAGE: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
DOCKER_IMAGE: ${{ steps.calculate-docker-image.outputs.docker-image }}
|
||||||
DOCKER_IMAGE_S390X: ${{ inputs.docker-image-name }}
|
|
||||||
XLA_CUDA: ${{ contains(inputs.build-environment, 'xla') && '0' || '' }}
|
XLA_CUDA: ${{ contains(inputs.build-environment, 'xla') && '0' || '' }}
|
||||||
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 }}
|
||||||
@ -211,21 +202,7 @@ jobs:
|
|||||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_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: |
|
||||||
if [[ ${BUILD_ENVIRONMENT} == *"s390x"* ]]; then
|
|
||||||
JENKINS_USER=
|
|
||||||
USED_IMAGE="${DOCKER_IMAGE_S390X}"
|
|
||||||
|
|
||||||
# since some steps are skipped on s390x, if they are necessary, run them here
|
|
||||||
env | grep '^GITHUB' >> "/tmp/github_env_${GITHUB_RUN_ID}"
|
|
||||||
env | grep '^CI' >> "/tmp/github_env_${GITHUB_RUN_ID}"
|
|
||||||
else
|
|
||||||
JENKINS_USER="--user jenkins"
|
|
||||||
USED_IMAGE="${DOCKER_IMAGE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# detached container should get cleaned up by teardown_ec2_linux
|
# detached container should get cleaned up by teardown_ec2_linux
|
||||||
# Used for JENKINS_USER, which can be empty
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
container_name=$(docker run \
|
container_name=$(docker run \
|
||||||
-e BUILD_ENVIRONMENT \
|
-e BUILD_ENVIRONMENT \
|
||||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||||
@ -248,10 +225,10 @@ jobs:
|
|||||||
--cap-add=SYS_PTRACE \
|
--cap-add=SYS_PTRACE \
|
||||||
--tty \
|
--tty \
|
||||||
--detach \
|
--detach \
|
||||||
${JENKINS_USER} \
|
--user jenkins \
|
||||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||||
-w /var/lib/jenkins/workspace \
|
-w /var/lib/jenkins/workspace \
|
||||||
"${USED_IMAGE}"
|
"${DOCKER_IMAGE}"
|
||||||
)
|
)
|
||||||
docker exec -t "${container_name}" sh -c '.ci/pytorch/build.sh'
|
docker exec -t "${container_name}" sh -c '.ci/pytorch/build.sh'
|
||||||
|
|
||||||
@ -262,7 +239,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Store PyTorch Build Artifacts on S3
|
- name: Store PyTorch Build Artifacts on S3
|
||||||
uses: seemethere/upload-artifact-s3@v5
|
uses: seemethere/upload-artifact-s3@v5
|
||||||
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && !inputs.use_split_build && inputs.build-environment != 'linux-s390x-binary-manywheel'
|
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && !inputs.use_split_build
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.build-environment }}
|
name: ${{ inputs.build-environment }}
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
@ -272,7 +249,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Store PyTorch Build Artifacts on S3 for split build
|
- name: Store PyTorch Build Artifacts on S3 for split build
|
||||||
uses: seemethere/upload-artifact-s3@v5
|
uses: seemethere/upload-artifact-s3@v5
|
||||||
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && inputs.use_split_build && inputs.build-environment != 'linux-s390x-binary-manywheel'
|
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && inputs.use_split_build
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.build-environment }}-experimental-split-build
|
name: ${{ inputs.build-environment }}-experimental-split-build
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
@ -280,26 +257,8 @@ jobs:
|
|||||||
path: artifacts.zip
|
path: artifacts.zip
|
||||||
s3-bucket: ${{ inputs.s3-bucket }}
|
s3-bucket: ${{ inputs.s3-bucket }}
|
||||||
|
|
||||||
- name: Store PyTorch Build Artifacts for s390x
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && !inputs.use_split_build && inputs.build-environment == 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
|
||||||
name: ${{ inputs.build-environment }}
|
|
||||||
retention-days: 14
|
|
||||||
if-no-files-found: error
|
|
||||||
path: artifacts.zip
|
|
||||||
|
|
||||||
- name: Store PyTorch Build Artifacts for s390x for split build
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
if: inputs.build-generates-artifacts && steps.build.outcome != 'skipped' && inputs.use_split_build && inputs.build-environment == 'linux-s390x-binary-manywheel'
|
|
||||||
with:
|
|
||||||
name: ${{ inputs.build-environment }}-experimental-split-build
|
|
||||||
retention-days: 14
|
|
||||||
if-no-files-found: error
|
|
||||||
path: artifacts.zip
|
|
||||||
|
|
||||||
- name: Upload sccache stats
|
- name: Upload sccache stats
|
||||||
if: steps.build.outcome != 'skipped' && inputs.build-environment != 'linux-s390x-binary-manywheel'
|
if: steps.build.outcome != 'skipped'
|
||||||
uses: seemethere/upload-artifact-s3@v5
|
uses: seemethere/upload-artifact-s3@v5
|
||||||
with:
|
with:
|
||||||
s3-prefix: |
|
s3-prefix: |
|
||||||
@ -311,13 +270,4 @@ jobs:
|
|||||||
|
|
||||||
- name: Teardown Linux
|
- name: Teardown Linux
|
||||||
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
uses: pytorch/test-infra/.github/actions/teardown-linux@main
|
||||||
if: always() && inputs.build-environment != 'linux-s390x-binary-manywheel'
|
if: always()
|
||||||
|
|
||||||
- name: Cleanup docker
|
|
||||||
if: always() && inputs.build-environment == 'linux-s390x-binary-manywheel'
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
# on s390x stop the container for clean worker stop
|
|
||||||
# ignore expansion of "docker ps -q" since it could be empty
|
|
||||||
# shellcheck disable=SC2046
|
|
||||||
docker stop $(docker ps -q) || true
|
|
||||||
|
|||||||
22
.github/workflows/_mac-test-mps.yml
vendored
22
.github/workflows/_mac-test-mps.yml
vendored
@ -88,13 +88,6 @@ jobs:
|
|||||||
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
|
||||||
pip-requirements-file: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
pip-requirements-file: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
||||||
|
|
||||||
- name: Get workflow job id
|
|
||||||
id: get-job-id
|
|
||||||
uses: ./.github/actions/get-workflow-job-id
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Install PyTorch and run MPS tests
|
- name: Install PyTorch and run MPS tests
|
||||||
id: test
|
id: test
|
||||||
env:
|
env:
|
||||||
@ -110,14 +103,6 @@ jobs:
|
|||||||
NO_TEST_TIMEOUT: ${{ needs.filter.outputs.ci-no-test-timeout }}
|
NO_TEST_TIMEOUT: ${{ needs.filter.outputs.ci-no-test-timeout }}
|
||||||
NO_TD: ${{ needs.filter.outputs.ci-no-td }}
|
NO_TD: ${{ needs.filter.outputs.ci-no-td }}
|
||||||
PIP_REQUIREMENTS_FILE: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
PIP_REQUIREMENTS_FILE: .github/requirements/pip-requirements-${{ runner.os }}.txt
|
||||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
||||||
GITHUB_WORKFLOW: ${{ github.workflow }}
|
|
||||||
GITHUB_JOB: ${{ github.job }}
|
|
||||||
GITHUB_RUN_ID: ${{ github.run_id }}
|
|
||||||
GITHUB_RUN_NUMBER: ${{ github.run_number }}
|
|
||||||
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
|
|
||||||
JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
|
|
||||||
JOB_NAME: ${{ steps.get-job-id.outputs.job-name }}
|
|
||||||
REENABLED_ISSUES: ${{ needs.filter.outputs.reenabled-issues }}
|
REENABLED_ISSUES: ${{ needs.filter.outputs.reenabled-issues }}
|
||||||
run: |
|
run: |
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
@ -159,6 +144,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cat test/**/*_toprint.log || true
|
cat test/**/*_toprint.log || true
|
||||||
|
|
||||||
|
- name: Get workflow job id
|
||||||
|
id: get-job-id
|
||||||
|
uses: ./.github/actions/get-workflow-job-id
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Upload test artifacts
|
- name: Upload test artifacts
|
||||||
uses: ./.github/actions/upload-test-artifacts
|
uses: ./.github/actions/upload-test-artifacts
|
||||||
if: always() && steps.test.conclusion && steps.test.conclusion != 'skipped'
|
if: always() && steps.test.conclusion && steps.test.conclusion != 'skipped'
|
||||||
|
|||||||
368
.github/workflows/_runner-determinator.yml
vendored
368
.github/workflows/_runner-determinator.yml
vendored
@ -62,94 +62,49 @@ jobs:
|
|||||||
"""
|
"""
|
||||||
This runner determinator is used to determine which set of runners to run a
|
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
|
GitHub job on. It uses the first comment of a GitHub issue (by default
|
||||||
https://github.com/pytorch/test-infra/issues/5132) to define the configuration
|
https://github.com/pytorch/test-infra/issues/5132) as a user list to determine
|
||||||
of which runners should be used to run which job.
|
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
|
||||||
The configuration has two parts, the settings and a list of opted-in users,
|
user could be opted in to.
|
||||||
separated by a line containing "---". If the line is not present, the
|
|
||||||
settings are considered to be empty with only the second part, the user
|
|
||||||
list, defined.
|
|
||||||
|
|
||||||
The first part is a YAML block that defines the rollout settings. This can be
|
|
||||||
used to define any settings that are needed to determine which runners to use.
|
|
||||||
It's fields are defined by the RolloutSettings class below.
|
|
||||||
|
|
||||||
The second part is a list of users who are explicitly opted in to the LF fleet.
|
|
||||||
The 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:
|
The user list has the following rules:
|
||||||
|
|
||||||
- Users are GitHub usernames, which must start with the @ prefix
|
- 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
|
- Each user is also a comma-separated list of features/experiments to enable
|
||||||
- A "#" prefix opts the user out of all experiments
|
- A "#" prefix indicates the user is opted out of the new runners but is opting
|
||||||
|
into features/experiments.
|
||||||
|
|
||||||
Example config:
|
Example user list:
|
||||||
# A list of experiments that can be opted into.
|
|
||||||
# This defines the behavior they'll induce when opted into.
|
|
||||||
# Expected syntax is:
|
|
||||||
# [experiment_name]: # Name of the experiment. Also used for the label prefix.
|
|
||||||
# rollout_perc: [int] # % of workflows to run with this experiment when users are not opted in.
|
|
||||||
|
|
||||||
experiments:
|
@User1
|
||||||
lf:
|
@User2,amz2023
|
||||||
rollout_percent: 25
|
#@UserOptOutOfNewRunner,amz2023
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Opt-ins:
|
|
||||||
# Users can opt into the LF fleet by adding their GitHub username to this list
|
|
||||||
# and specifying experiments to enable in a comma-separated list.
|
|
||||||
# Experiments should be from the above list.
|
|
||||||
|
|
||||||
@User1,lf,split_build
|
|
||||||
@User2,lf
|
|
||||||
@User3,split_build
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import random
|
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from logging import LogRecord
|
from logging import LogRecord
|
||||||
from typing import Any, Dict, Iterable, List, NamedTuple, Tuple
|
from typing import Any, Iterable
|
||||||
|
|
||||||
import yaml
|
|
||||||
from github import Auth, Github
|
from github import Auth, Github
|
||||||
from github.Issue import Issue
|
from github.Issue import Issue
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_LABEL_PREFIX = "" # use meta runners
|
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_AMI = "runner-ami"
|
||||||
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
GH_OUTPUT_KEY_LABEL_TYPE = "label-type"
|
||||||
|
|
||||||
|
|
||||||
SETTING_EXPERIMENTS = "experiments"
|
|
||||||
|
|
||||||
LF_FLEET_EXPERIMENT = "lf"
|
|
||||||
CANARY_FLEET_SUFFIX = ".c"
|
|
||||||
|
|
||||||
|
|
||||||
class Experiment(NamedTuple):
|
|
||||||
rollout_perc: float = (
|
|
||||||
0 # Percentage of workflows to experiment on when user is not opted-in.
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add more fields as needed
|
|
||||||
|
|
||||||
|
|
||||||
class Settings(NamedTuple):
|
|
||||||
"""
|
|
||||||
Settings for the experiments that can be opted into.
|
|
||||||
"""
|
|
||||||
|
|
||||||
experiments: Dict[str, Experiment] = {}
|
|
||||||
|
|
||||||
|
|
||||||
class ColorFormatter(logging.Formatter):
|
class ColorFormatter(logging.Formatter):
|
||||||
"""Color codes the log messages based on the log level"""
|
"""Color codes the log messages based on the log level"""
|
||||||
|
|
||||||
@ -241,14 +196,11 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
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 (
|
||||||
@ -270,238 +222,130 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
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 load_yaml(yaml_text: str) -> Any:
|
def get_workflow_type(issue: Issue, workflow_requestors: Iterable[str]) -> str:
|
||||||
try:
|
try:
|
||||||
data = yaml.safe_load(yaml_text)
|
first_comment = issue.get_comments()[0].body.strip("\n\t ")
|
||||||
return data
|
|
||||||
except yaml.YAMLError as exc:
|
|
||||||
log.exception("Error loading YAML")
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
if first_comment[0] == "!":
|
||||||
def extract_settings_user_opt_in_from_text(rollout_state: str) -> Tuple[str, str]:
|
log.info("LF Workflows are disabled for everyone. Using meta runners.")
|
||||||
"""
|
return WORKFLOW_LABEL_META
|
||||||
Extracts the text with settings, if any, and the opted in users from the rollout state.
|
elif first_comment[0] == "*":
|
||||||
|
log.info("LF Workflows are enabled for everyone. Using LF runners.")
|
||||||
If the issue body contains "---" then the text above that is the settings
|
return WORKFLOW_LABEL_LF
|
||||||
and the text below is the list of opted in users.
|
else:
|
||||||
|
all_opted_in_users = {
|
||||||
If it doesn't contain "---" then the settings are empty and the rest is the users.
|
usr_raw.strip("\n\t@ ").split(",")[0]
|
||||||
"""
|
for usr_raw in first_comment.split()
|
||||||
rollout_state_parts = rollout_state.split("---")
|
}
|
||||||
if len(rollout_state_parts) >= 2:
|
opted_in_requestors = {
|
||||||
return rollout_state_parts[0], rollout_state_parts[1]
|
usr for usr in workflow_requestors if usr in all_opted_in_users
|
||||||
else:
|
}
|
||||||
return "", rollout_state
|
if opted_in_requestors:
|
||||||
|
|
||||||
|
|
||||||
class UserOptins(Dict[str, List[str]]):
|
|
||||||
"""
|
|
||||||
Dictionary of users with a list of features they have opted into
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def parse_user_opt_in_from_text(user_optin_text: str) -> UserOptins:
|
|
||||||
"""
|
|
||||||
Parse the user opt-in text into a key value pair of username and the list of features they have opted into
|
|
||||||
|
|
||||||
Users are GitHub usernames with the @ prefix. Each user is also a comma-separated list of features/experiments to enable.
|
|
||||||
- Example line: "@User1,lf,split_build"
|
|
||||||
- A "#" prefix indicates the user is opted out of all experiments
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
optins = UserOptins()
|
|
||||||
for user in user_optin_text.split("\n"):
|
|
||||||
user = user.strip("\r\n\t -")
|
|
||||||
if not user or not user.startswith("@"):
|
|
||||||
# Not a valid user. Skip
|
|
||||||
continue
|
|
||||||
|
|
||||||
if user:
|
|
||||||
usr_name = user.split(",")[0].strip("@")
|
|
||||||
optins[usr_name] = [exp.strip(" ") for exp in user.split(",")[1:]]
|
|
||||||
|
|
||||||
return optins
|
|
||||||
|
|
||||||
|
|
||||||
def parse_settings_from_text(settings_text: str) -> Settings:
|
|
||||||
"""
|
|
||||||
Parse the experiments from the issue body into a list of ExperimentSettings
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
if settings_text:
|
|
||||||
# Escape the backtick as well so that we can have the settings in a code block on the GH issue
|
|
||||||
# for easy reading
|
|
||||||
# Note: Using ascii for the backtick so that the cat step in _runner-determinator.yml doesn't choke on
|
|
||||||
# the backtick character in shell commands.
|
|
||||||
backtick = chr(96) # backtick character
|
|
||||||
settings_text = settings_text.strip(f"\r\n\t{backtick} ")
|
|
||||||
settings = load_yaml(settings_text)
|
|
||||||
|
|
||||||
# For now we just load experiments. We can expand this if/when we add more settings
|
|
||||||
experiments = {}
|
|
||||||
|
|
||||||
for exp_name, exp_settings in settings.get(SETTING_EXPERIMENTS).items():
|
|
||||||
valid_settings = {}
|
|
||||||
for setting in exp_settings:
|
|
||||||
if setting not in Experiment._fields:
|
|
||||||
log.warning(
|
|
||||||
f"Unexpected setting in experiment: {setting} = {exp_settings[setting]}"
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
valid_settings[setting] = exp_settings[setting]
|
|
||||||
|
|
||||||
experiments[exp_name] = Experiment(**valid_settings)
|
|
||||||
return Settings(experiments)
|
|
||||||
|
|
||||||
except Exception:
|
|
||||||
log.exception("Failed to parse settings")
|
|
||||||
|
|
||||||
return Settings()
|
|
||||||
|
|
||||||
|
|
||||||
def parse_settings(rollout_state: str) -> Settings:
|
|
||||||
"""
|
|
||||||
Parse settings, if any, from the rollout state.
|
|
||||||
|
|
||||||
If the issue body contains "---" then the text above that is the settings
|
|
||||||
and the text below is the list of opted in users.
|
|
||||||
|
|
||||||
If it doesn't contain "---" then the settings are empty and the default values are used.
|
|
||||||
"""
|
|
||||||
settings_text, _ = extract_settings_user_opt_in_from_text(rollout_state)
|
|
||||||
return parse_settings_from_text(settings_text)
|
|
||||||
|
|
||||||
|
|
||||||
def parse_users(rollout_state: str) -> UserOptins:
|
|
||||||
"""
|
|
||||||
Parse users from the rollout state.
|
|
||||||
|
|
||||||
"""
|
|
||||||
_, users_text = extract_settings_user_opt_in_from_text(rollout_state)
|
|
||||||
return parse_user_opt_in_from_text(users_text)
|
|
||||||
|
|
||||||
|
|
||||||
def is_user_opted_in(user: str, user_optins: UserOptins, experiment_name: str) -> bool:
|
|
||||||
"""
|
|
||||||
Check if a user is opted into an experiment
|
|
||||||
"""
|
|
||||||
return experiment_name in user_optins.get(user, [])
|
|
||||||
|
|
||||||
|
|
||||||
def get_runner_prefix(
|
|
||||||
rollout_state: str, workflow_requestors: Iterable[str], is_canary: bool = False
|
|
||||||
) -> str:
|
|
||||||
settings = parse_settings(rollout_state)
|
|
||||||
user_optins = parse_users(rollout_state)
|
|
||||||
|
|
||||||
fleet_prefix = ""
|
|
||||||
prefixes = []
|
|
||||||
for experiment_name, experiment_settings in settings.experiments.items():
|
|
||||||
enabled = False
|
|
||||||
|
|
||||||
# Is any workflow_requestor opted in to this experiment?
|
|
||||||
opted_in_users = [
|
|
||||||
requestor
|
|
||||||
for requestor in workflow_requestors
|
|
||||||
if is_user_opted_in(requestor, user_optins, experiment_name)
|
|
||||||
]
|
|
||||||
|
|
||||||
if opted_in_users:
|
|
||||||
log.info(
|
|
||||||
f"{', '.join(opted_in_users)} have opted into experiment {experiment_name}."
|
|
||||||
)
|
|
||||||
enabled = True
|
|
||||||
elif experiment_settings.rollout_perc:
|
|
||||||
# If no user is opted in, then we randomly enable the experiment based on the rollout percentage
|
|
||||||
if random.uniform(0, 100) <= experiment_settings.rollout_perc:
|
|
||||||
log.info(
|
log.info(
|
||||||
f"Based on rollout percentage of {experiment_settings.rollout_perc}%, enabling experiment {experiment_name}."
|
f"LF Workflows are enabled for {', '.join(opted_in_requestors)}. Using LF runners."
|
||||||
)
|
)
|
||||||
enabled = True
|
return WORKFLOW_LABEL_LF
|
||||||
|
|
||||||
if enabled:
|
|
||||||
label = experiment_name
|
|
||||||
if experiment_name == LF_FLEET_EXPERIMENT:
|
|
||||||
# We give some special treatment to the "lf" experiment since determines the fleet we use
|
|
||||||
# - If it's enabled, then we always list it's prefix first
|
|
||||||
# - If we're in the canary branch, then we append ".c" to the lf prefix
|
|
||||||
if is_canary:
|
|
||||||
label += CANARY_FLEET_SUFFIX
|
|
||||||
fleet_prefix = label
|
|
||||||
else:
|
else:
|
||||||
prefixes.append(label)
|
log.info(
|
||||||
|
f"LF Workflows are disabled for {', '.join(workflow_requestors)}. Using meta runners."
|
||||||
|
)
|
||||||
|
return WORKFLOW_LABEL_META
|
||||||
|
|
||||||
if len(prefixes) > 1:
|
except Exception as e:
|
||||||
log.error(
|
log.error(
|
||||||
f"Only a fleet and one other experiment can be enabled for a job at any time. Enabling {prefixes[0]} and ignoring the rest, which are {', '.join(prefixes[1:])}"
|
f"Failed to get determine workflow type. Falling back to meta runners. Exception: {e}"
|
||||||
)
|
)
|
||||||
prefixes = prefixes[:1]
|
return WORKFLOW_LABEL_META
|
||||||
|
|
||||||
# Fleet always comes first
|
|
||||||
if fleet_prefix:
|
|
||||||
prefixes.insert(0, fleet_prefix)
|
|
||||||
|
|
||||||
return ".".join(prefixes) + "." if prefixes else ""
|
|
||||||
|
|
||||||
|
|
||||||
def get_rollout_state_from_issue(github_token: str, repo: str, issue_num: int) -> str:
|
def get_optin_feature(
|
||||||
"""
|
issue: Issue, workflow_requestors: Iterable[str], feature: str, fallback: str
|
||||||
Gets the first comment of the issue, which contains the desired rollout state.
|
) -> str:
|
||||||
|
try:
|
||||||
|
first_comment = issue.get_comments()[0].body.strip("\n\t ")
|
||||||
|
userlist = {u.lstrip("#").strip("\n\t@ ") for u in first_comment.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
|
||||||
|
}
|
||||||
|
|
||||||
The default issue we use - https://github.com/pytorch/test-infra/issues/5132
|
if opted_in_requestors:
|
||||||
"""
|
log.info(
|
||||||
gh = get_gh_client(github_token)
|
f"Feature {feature} is enabled for {', '.join(opted_in_requestors)}. Using feature {feature}."
|
||||||
issue = get_issue(gh, repo, issue_num)
|
)
|
||||||
return str(issue.get_comments()[0].body.strip("\n\t "))
|
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 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(
|
log.info(f"Exception branch: '{args.github_branch}', using meta runners")
|
||||||
f"Exception branch: '{args.github_branch}', using Meta runners and no experiments."
|
label_type = WORKFLOW_LABEL_META
|
||||||
)
|
runner_ami = RUNNER_AMI_LEGACY
|
||||||
runner_label_prefix = DEFAULT_LABEL_PREFIX
|
|
||||||
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(
|
||||||
is_canary = args.github_repo == "pytorch/pytorch-canary"
|
issue,
|
||||||
|
(
|
||||||
runner_label_prefix = get_runner_prefix(
|
args.github_issue_owner,
|
||||||
rollout_state, (args.github_issue_owner, username), is_canary
|
username,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
runner_ami = get_optin_feature(
|
||||||
|
issue=issue,
|
||||||
|
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. Defaulting to Meta runners and no experiments. Exception: {e}"
|
f"Failed to get issue. Falling back to meta runners. Exception: {e}"
|
||||||
)
|
)
|
||||||
|
label_type = WORKFLOW_LABEL_META
|
||||||
|
runner_ami = RUNNER_AMI_LEGACY
|
||||||
|
|
||||||
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, runner_label_prefix)
|
# For Canary builds use canary runners
|
||||||
|
if args.github_repo == "pytorch/pytorch-canary" and label_type == WORKFLOW_LABEL_LF:
|
||||||
|
label_type = WORKFLOW_LABEL_LF_CANARY
|
||||||
|
|
||||||
|
set_github_output(GH_OUTPUT_KEY_LABEL_TYPE, label_type)
|
||||||
|
set_github_output(GH_OUTPUT_KEY_AMI, runner_ami)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat runner_determinator.py
|
cat runner_determinator.py
|
||||||
|
|||||||
13
.github/workflows/_win-build.yml
vendored
13
.github/workflows/_win-build.yml
vendored
@ -11,16 +11,6 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
description: What CUDA version to build with, "cpu" for none.
|
description: What CUDA version to build with, "cpu" for none.
|
||||||
use-xpu:
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
description: If set, build with XPU support.
|
|
||||||
vc-year:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: "2019"
|
|
||||||
description: The Visual Studio year to use for building.
|
|
||||||
build-with-debug:
|
build-with-debug:
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
@ -151,7 +141,7 @@ jobs:
|
|||||||
SCCACHE_REGION: us-east-1
|
SCCACHE_REGION: us-east-1
|
||||||
VC_PRODUCT: "BuildTools"
|
VC_PRODUCT: "BuildTools"
|
||||||
VC_VERSION: ""
|
VC_VERSION: ""
|
||||||
VC_YEAR: "${{ inputs.vc-year }}"
|
VC_YEAR: "2019"
|
||||||
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
||||||
AWS_DEFAULT_REGION: us-east-1
|
AWS_DEFAULT_REGION: us-east-1
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||||
@ -159,7 +149,6 @@ jobs:
|
|||||||
DEBUG: ${{ inputs.build-with-debug && '1' || '0' }}
|
DEBUG: ${{ inputs.build-with-debug && '1' || '0' }}
|
||||||
TORCH_CUDA_ARCH_LIST: "8.6"
|
TORCH_CUDA_ARCH_LIST: "8.6"
|
||||||
USE_CUDA: ${{ inputs.cuda-version != 'cpu' && '1' || '0' }}
|
USE_CUDA: ${{ inputs.cuda-version != 'cpu' && '1' || '0' }}
|
||||||
USE_XPU: ${{ inputs.use-xpu == true && '1' || '0' }}
|
|
||||||
OUR_GITHUB_JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
|
OUR_GITHUB_JOB_ID: ${{ steps.get-job-id.outputs.job-id }}
|
||||||
run: |
|
run: |
|
||||||
.ci/pytorch/win-build.sh
|
.ci/pytorch/win-build.sh
|
||||||
|
|||||||
2
.github/workflows/build-conda-images.yml
vendored
2
.github/workflows/build-conda-images.yml
vendored
@ -32,7 +32,7 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
build-docker:
|
build-docker:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
runs-on: linux.9xlarge.ephemeral
|
runs-on: am2.linux.9xlarge.ephemeral
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
cuda_version: ["11.8", "12.1", "12.4", "cpu"]
|
cuda_version: ["11.8", "12.1", "12.4", "cpu"]
|
||||||
|
|||||||
18
.github/workflows/build-libtorch-images.yml
vendored
18
.github/workflows/build-libtorch-images.yml
vendored
@ -29,19 +29,9 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
build-docker-cuda:
|
build-docker-cuda:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
cuda_version: ["12.4", "12.1", "11.8"]
|
cuda_version: ["12.4", "12.1", "11.8"]
|
||||||
@ -76,8 +66,7 @@ jobs:
|
|||||||
.ci/docker/libtorch/build.sh libtorch-cxx11-builder:cuda${{matrix.cuda_version}}
|
.ci/docker/libtorch/build.sh libtorch-cxx11-builder:cuda${{matrix.cuda_version}}
|
||||||
build-docker-rocm:
|
build-docker-rocm:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
rocm_version: ["6.1", "6.2"]
|
rocm_version: ["6.1", "6.2"]
|
||||||
@ -112,8 +101,7 @@ jobs:
|
|||||||
.ci/docker/libtorch/build.sh libtorch-cxx11-builder:rocm${{matrix.rocm_version}}
|
.ci/docker/libtorch/build.sh libtorch-cxx11-builder:rocm${{matrix.rocm_version}}
|
||||||
build-docker-cpu:
|
build-docker-cpu:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
|
|||||||
39
.github/workflows/build-manywheel-images.yml
vendored
39
.github/workflows/build-manywheel-images.yml
vendored
@ -33,19 +33,9 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
build-docker-cuda:
|
build-docker-cuda:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: am2.linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
cuda_version: ["12.4", "12.1", "11.8"]
|
cuda_version: ["12.4", "12.1", "11.8"]
|
||||||
@ -83,8 +73,7 @@ jobs:
|
|||||||
# NOTE: manylinux_2_28 are still experimental, see https://github.com/pytorch/pytorch/issues/123649
|
# NOTE: manylinux_2_28 are still experimental, see https://github.com/pytorch/pytorch/issues/123649
|
||||||
build-docker-cuda-manylinux_2_28:
|
build-docker-cuda-manylinux_2_28:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
cuda_version: ["12.4", "12.1", "11.8"]
|
cuda_version: ["12.4", "12.1", "11.8"]
|
||||||
@ -121,8 +110,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinux2_28-builder:cuda${{matrix.cuda_version}}
|
.ci/docker/manywheel/build.sh manylinux2_28-builder:cuda${{matrix.cuda_version}}
|
||||||
build-docker-cuda-aarch64:
|
build-docker-cuda-aarch64:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.arm64.2xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.2xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
cuda_version: ["12.4"]
|
cuda_version: ["12.4"]
|
||||||
@ -155,8 +143,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinuxaarch64-builder:cuda${{matrix.cuda_version}}
|
.ci/docker/manywheel/build.sh manylinuxaarch64-builder:cuda${{matrix.cuda_version}}
|
||||||
build-docker-rocm:
|
build-docker-rocm:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: am2.linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
rocm_version: ["6.1", "6.2"]
|
rocm_version: ["6.1", "6.2"]
|
||||||
@ -191,8 +178,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinux-builder:rocm${{matrix.rocm_version}}
|
.ci/docker/manywheel/build.sh manylinux-builder:rocm${{matrix.rocm_version}}
|
||||||
build-docker-cpu:
|
build-docker-cpu:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: am2.linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PyTorch
|
- name: Checkout PyTorch
|
||||||
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
|
||||||
@ -221,8 +207,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinux-builder:cpu
|
.ci/docker/manywheel/build.sh manylinux-builder:cpu
|
||||||
build-docker-cpu-manylinux_2_28:
|
build-docker-cpu-manylinux_2_28:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
env:
|
env:
|
||||||
GPU_ARCH_TYPE: cpu-manylinux_2_28
|
GPU_ARCH_TYPE: cpu-manylinux_2_28
|
||||||
steps:
|
steps:
|
||||||
@ -253,8 +238,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinux2_28-builder:cpu
|
.ci/docker/manywheel/build.sh manylinux2_28-builder:cpu
|
||||||
build-docker-cpu-aarch64:
|
build-docker-cpu-aarch64:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.arm64.2xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.2xlarge.ephemeral"
|
|
||||||
env:
|
env:
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
steps:
|
steps:
|
||||||
@ -285,8 +269,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinuxaarch64-builder:cpu-aarch64
|
.ci/docker/manywheel/build.sh manylinuxaarch64-builder:cpu-aarch64
|
||||||
build-docker-cpu-aarch64-2_28:
|
build-docker-cpu-aarch64-2_28:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.arm64.2xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.2xlarge.ephemeral"
|
|
||||||
env:
|
env:
|
||||||
GPU_ARCH_TYPE: cpu-aarch64-2_28
|
GPU_ARCH_TYPE: cpu-aarch64-2_28
|
||||||
steps:
|
steps:
|
||||||
@ -320,8 +303,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinux2_28_aarch64-builder:cpu-aarch64
|
.ci/docker/manywheel/build.sh manylinux2_28_aarch64-builder:cpu-aarch64
|
||||||
build-docker-cpu-cxx11-abi:
|
build-docker-cpu-cxx11-abi:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
env:
|
env:
|
||||||
GPU_ARCH_TYPE: cpu-cxx11-abi
|
GPU_ARCH_TYPE: cpu-cxx11-abi
|
||||||
steps:
|
steps:
|
||||||
@ -352,8 +334,7 @@ jobs:
|
|||||||
.ci/docker/manywheel/build.sh manylinuxcxx11-abi-builder:cpu-cxx11-abi
|
.ci/docker/manywheel/build.sh manylinuxcxx11-abi-builder:cpu-cxx11-abi
|
||||||
build-docker-xpu:
|
build-docker-xpu:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
runs-on: linux.9xlarge.ephemeral
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.9xlarge.ephemeral"
|
|
||||||
env:
|
env:
|
||||||
GPU_ARCH_TYPE: xpu
|
GPU_ARCH_TYPE: xpu
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
25
.github/workflows/build-triton-wheel.yml
vendored
25
.github/workflows/build-triton-wheel.yml
vendored
@ -13,6 +13,7 @@ on:
|
|||||||
- .github/scripts/build_triton_wheel.py
|
- .github/scripts/build_triton_wheel.py
|
||||||
- .github/ci_commit_pins/triton.txt
|
- .github/ci_commit_pins/triton.txt
|
||||||
- .ci/docker/ci_commit_pins/triton.txt
|
- .ci/docker/ci_commit_pins/triton.txt
|
||||||
|
- .ci/docker/ci_commit_pins/triton-rocm.txt
|
||||||
- .ci/docker/ci_commit_pins/triton-xpu.txt
|
- .ci/docker/ci_commit_pins/triton-xpu.txt
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
@ -20,6 +21,7 @@ on:
|
|||||||
- .github/scripts/build_triton_wheel.py
|
- .github/scripts/build_triton_wheel.py
|
||||||
- .github/ci_commit_pins/triton.txt
|
- .github/ci_commit_pins/triton.txt
|
||||||
- .ci/docker/ci_commit_pins/triton.txt
|
- .ci/docker/ci_commit_pins/triton.txt
|
||||||
|
- .ci/docker/ci_commit_pins/triton-rocm.txt
|
||||||
- .ci/docker/ci_commit_pins/triton-xpu.txt
|
- .ci/docker/ci_commit_pins/triton-xpu.txt
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
@ -27,19 +29,9 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
build-wheel:
|
build-wheel:
|
||||||
name: "Build Triton Wheel"
|
name: "Build Triton Wheel"
|
||||||
needs: get-label-type
|
runs-on: [self-hosted, linux.2xlarge]
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge"
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@ -128,7 +120,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
docker exec -t "${container_name}" chown -R 1000.1000 /artifacts
|
docker exec -t "${container_name}" chown -R 1000.1000 /artifacts
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: pytorch-triton-wheel-${{ matrix.py_vers }}-${{ matrix.device }}
|
name: pytorch-triton-wheel-${{ matrix.py_vers }}-${{ matrix.device }}
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
@ -165,7 +157,7 @@ jobs:
|
|||||||
aws-region: us-east-1
|
aws-region: us-east-1
|
||||||
|
|
||||||
- name: Download Build Artifacts
|
- name: Download Build Artifacts
|
||||||
uses: actions/download-artifact@v4.1.7
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
# Download all available artifacts
|
# Download all available artifacts
|
||||||
path: ${{ runner.temp }}/artifacts-all
|
path: ${{ runner.temp }}/artifacts-all
|
||||||
@ -209,8 +201,7 @@ jobs:
|
|||||||
|
|
||||||
build-conda:
|
build-conda:
|
||||||
name: "Build Triton Conda"
|
name: "Build Triton Conda"
|
||||||
needs: get-label-type
|
runs-on: [self-hosted, linux.2xlarge]
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge"
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@ -262,7 +253,7 @@ jobs:
|
|||||||
docker exec -t "${container_name}" python /pytorch/.github/scripts/build_triton_wheel.py --build-conda --py-version="${PY_VERS}" $RELEASE
|
docker exec -t "${container_name}" python /pytorch/.github/scripts/build_triton_wheel.py --build-conda --py-version="${PY_VERS}" $RELEASE
|
||||||
docker exec -t "${container_name}" chown -R 1000.1000 /artifacts
|
docker exec -t "${container_name}" chown -R 1000.1000 /artifacts
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: pytorch-triton-conda-${{ matrix.py_vers }}
|
name: pytorch-triton-conda-${{ matrix.py_vers }}
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
@ -282,7 +273,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Download Build Artifacts
|
- name: Download Build Artifacts
|
||||||
uses: actions/download-artifact@v4.1.7
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
# Download all available artifacts
|
# Download all available artifacts
|
||||||
path: ${{ runner.temp }}/artifacts-all
|
path: ${{ runner.temp }}/artifacts-all
|
||||||
|
|||||||
3
.github/workflows/check-labels.yml
vendored
3
.github/workflows/check-labels.yml
vendored
@ -30,9 +30,6 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-labels:
|
check-labels:
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pull-requests: write
|
|
||||||
name: Check labels
|
name: Check labels
|
||||||
if: github.repository_owner == 'pytorch'
|
if: github.repository_owner == 'pytorch'
|
||||||
runs-on: linux.20_04.4x
|
runs-on: linux.20_04.4x
|
||||||
|
|||||||
19
.github/workflows/create_release.yml
vendored
19
.github/workflows/create_release.yml
vendored
@ -16,15 +16,6 @@ on:
|
|||||||
paths: [.github/workflows/create_release.yml]
|
paths: [.github/workflows/create_release.yml]
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ github.repository == 'pytorch/pytorch' }}
|
if: ${{ github.repository == 'pytorch/pytorch' }}
|
||||||
name: Create Release
|
name: Create Release
|
||||||
@ -72,7 +63,7 @@ jobs:
|
|||||||
files: ${{env.PT_RELEASE_FILE}}
|
files: ${{env.PT_RELEASE_FILE}}
|
||||||
- name: Upload source distribution to GHA artifacts for release tags
|
- name: Upload source distribution to GHA artifacts for release tags
|
||||||
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }}
|
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }}
|
||||||
uses: actions/upload-artifact@v4.4.0
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ env.PT_RELEASE_FILE }}
|
name: ${{ env.PT_RELEASE_FILE }}
|
||||||
path: ${{ env.PT_RELEASE_FILE }}
|
path: ${{ env.PT_RELEASE_FILE }}
|
||||||
@ -82,16 +73,14 @@ jobs:
|
|||||||
|
|
||||||
upload_source_code_to_s3:
|
upload_source_code_to_s3:
|
||||||
if: ${{ github.repository == 'pytorch/pytorch' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }}
|
if: ${{ github.repository == 'pytorch/pytorch' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge"
|
runs-on: linux.2xlarge
|
||||||
environment: sourcecode-upload
|
environment: sourcecode-upload
|
||||||
name: Upload source code to S3 for release tags
|
name: Upload source code to S3 for release tags
|
||||||
permissions:
|
permissions:
|
||||||
id-token: write
|
id-token: write
|
||||||
needs:
|
needs: release
|
||||||
- get-label-type
|
|
||||||
- release
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ needs.release.outputs.pt_release_name }}
|
name: ${{ needs.release.outputs.pt_release_name }}
|
||||||
- name: Configure AWS credentials(PyTorch account)
|
- name: Configure AWS credentials(PyTorch account)
|
||||||
|
|||||||
20
.github/workflows/docker-builds.yml
vendored
20
.github/workflows/docker-builds.yml
vendored
@ -30,18 +30,8 @@ env:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
docker-build:
|
docker-build:
|
||||||
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
needs: get-label-type
|
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -55,15 +45,15 @@ jobs:
|
|||||||
pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks,
|
pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks,
|
||||||
pytorch-linux-focal-cuda12.1-cudnn9-py3.12-gcc9-inductor-benchmarks,
|
pytorch-linux-focal-cuda12.1-cudnn9-py3.12-gcc9-inductor-benchmarks,
|
||||||
pytorch-linux-focal-cuda11.8-cudnn9-py3-gcc9,
|
pytorch-linux-focal-cuda11.8-cudnn9-py3-gcc9,
|
||||||
pytorch-linux-focal-py3.9-clang10,
|
pytorch-linux-focal-py3.8-clang10,
|
||||||
pytorch-linux-focal-py3.11-clang10,
|
pytorch-linux-focal-py3.11-clang10,
|
||||||
pytorch-linux-focal-py3.12-clang10,
|
pytorch-linux-focal-py3.12-clang10,
|
||||||
pytorch-linux-focal-rocm-n-1-py3,
|
pytorch-linux-focal-rocm-n-1-py3,
|
||||||
pytorch-linux-focal-rocm-n-py3,
|
pytorch-linux-focal-rocm-n-py3,
|
||||||
pytorch-linux-jammy-cuda11.8-cudnn9-py3.9-clang12,
|
pytorch-linux-jammy-cuda11.8-cudnn9-py3.8-clang12,
|
||||||
pytorch-linux-focal-py3-clang9-android-ndk-r21e,
|
pytorch-linux-focal-py3-clang9-android-ndk-r21e,
|
||||||
pytorch-linux-jammy-py3.9-gcc11,
|
pytorch-linux-jammy-py3.8-gcc11,
|
||||||
pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks,
|
pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks,
|
||||||
pytorch-linux-jammy-py3.12-halide,
|
pytorch-linux-jammy-py3.12-halide,
|
||||||
pytorch-linux-jammy-xpu-2024.0-py3,
|
pytorch-linux-jammy-xpu-2024.0-py3,
|
||||||
pytorch-linux-jammy-py3-clang15-asan,
|
pytorch-linux-jammy-py3-clang15-asan,
|
||||||
@ -78,7 +68,7 @@ jobs:
|
|||||||
- docker-image-name: pytorch-linux-jammy-aarch64-py3.10-gcc11-inductor-benchmarks
|
- docker-image-name: pytorch-linux-jammy-aarch64-py3.10-gcc11-inductor-benchmarks
|
||||||
runner: linux.arm64.m7g.4xlarge
|
runner: linux.arm64.m7g.4xlarge
|
||||||
timeout-minutes: 600
|
timeout-minutes: 600
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}${{ matrix.runner }}"
|
runs-on: [self-hosted, "${{ matrix.runner }}"]
|
||||||
env:
|
env:
|
||||||
DOCKER_IMAGE_BASE: 308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/${{ matrix.docker-image-name }}
|
DOCKER_IMAGE_BASE: 308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/${{ matrix.docker-image-name }}
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
18
.github/workflows/docker-release.yml
vendored
18
.github/workflows/docker-release.yml
vendored
@ -34,19 +34,9 @@ env:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
generate-matrix:
|
generate-matrix:
|
||||||
if: github.repository_owner == 'pytorch'
|
if: github.repository_owner == 'pytorch'
|
||||||
needs: get-label-type
|
runs-on: [self-hosted, linux.large]
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.large"
|
|
||||||
outputs:
|
outputs:
|
||||||
matrix: ${{ steps.generate-matrix.outputs.matrix }}
|
matrix: ${{ steps.generate-matrix.outputs.matrix }}
|
||||||
steps:
|
steps:
|
||||||
@ -64,12 +54,10 @@ jobs:
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
if: ${{ github.repository == 'pytorch/pytorch' }}
|
if: ${{ github.repository == 'pytorch/pytorch' }}
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge"
|
runs-on: [self-hosted, linux.2xlarge]
|
||||||
environment: ${{ (github.ref == 'refs/heads/nightly' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
environment: ${{ (github.ref == 'refs/heads/nightly' || startsWith(github.event.ref, 'refs/tags/v')) && 'docker-build' || '' }}
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
needs:
|
needs: generate-matrix
|
||||||
- generate-matrix
|
|
||||||
- get-label-type
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|||||||
20
.github/workflows/generated-linux-aarch64-binary-manywheel-nightly.yml
generated
vendored
20
.github/workflows/generated-linux-aarch64-binary-manywheel-nightly.yml
generated
vendored
@ -58,7 +58,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -82,7 +81,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cpu-aarch64
|
build_name: manywheel-py3_9-cpu-aarch64
|
||||||
build_environment: linux-aarch64-binary-manywheel
|
build_environment: linux-aarch64-binary-manywheel
|
||||||
@ -105,7 +103,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cpu-aarch64
|
build_name: manywheel-py3_9-cpu-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -128,7 +125,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -153,7 +149,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cuda-aarch64
|
build_name: manywheel-py3_9-cuda-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -175,7 +170,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -199,7 +193,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
build_name: manywheel-py3_10-cpu-aarch64
|
build_name: manywheel-py3_10-cpu-aarch64
|
||||||
build_environment: linux-aarch64-binary-manywheel
|
build_environment: linux-aarch64-binary-manywheel
|
||||||
@ -222,7 +215,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
build_name: manywheel-py3_10-cpu-aarch64
|
build_name: manywheel-py3_10-cpu-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -245,7 +237,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -270,7 +261,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
build_name: manywheel-py3_10-cuda-aarch64
|
build_name: manywheel-py3_10-cuda-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -292,7 +282,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -316,7 +305,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
build_name: manywheel-py3_11-cpu-aarch64
|
build_name: manywheel-py3_11-cpu-aarch64
|
||||||
build_environment: linux-aarch64-binary-manywheel
|
build_environment: linux-aarch64-binary-manywheel
|
||||||
@ -339,7 +327,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
build_name: manywheel-py3_11-cpu-aarch64
|
build_name: manywheel-py3_11-cpu-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -362,7 +349,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -387,7 +373,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
build_name: manywheel-py3_11-cuda-aarch64
|
build_name: manywheel-py3_11-cuda-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -409,7 +394,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -433,7 +417,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
build_name: manywheel-py3_12-cpu-aarch64
|
build_name: manywheel-py3_12-cpu-aarch64
|
||||||
build_environment: linux-aarch64-binary-manywheel
|
build_environment: linux-aarch64-binary-manywheel
|
||||||
@ -456,7 +439,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-aarch64
|
GPU_ARCH_TYPE: cpu-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
build_name: manywheel-py3_12-cpu-aarch64
|
build_name: manywheel-py3_12-cpu-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
@ -479,7 +461,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
runs_on: linux.arm64.m7g.4xlarge.ephemeral
|
||||||
ALPINE_IMAGE: "arm64v8/alpine"
|
ALPINE_IMAGE: "arm64v8/alpine"
|
||||||
@ -504,7 +485,6 @@ jobs:
|
|||||||
GPU_ARCH_TYPE: cuda-aarch64
|
GPU_ARCH_TYPE: cuda-aarch64
|
||||||
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cuda12.4-main
|
||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
build_name: manywheel-py3_12-cuda-aarch64
|
build_name: manywheel-py3_12-cuda-aarch64
|
||||||
secrets:
|
secrets:
|
||||||
|
|||||||
4
.github/workflows/generated-linux-binary-libtorch-cxx11-abi-nightly.yml
generated
vendored
4
.github/workflows/generated-linux-binary-libtorch-cxx11-abi-nightly.yml
generated
vendored
@ -366,7 +366,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Setup ROCm
|
- name: Setup ROCm
|
||||||
uses: ./.github/actions/setup-rocm
|
uses: ./.github/actions/setup-rocm
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-rocm6_1-shared-with-deps-cxx11-abi
|
name: libtorch-rocm6_1-shared-with-deps-cxx11-abi
|
||||||
@ -476,7 +476,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Setup ROCm
|
- name: Setup ROCm
|
||||||
uses: ./.github/actions/setup-rocm
|
uses: ./.github/actions/setup-rocm
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-rocm6_2-shared-with-deps-cxx11-abi
|
name: libtorch-rocm6_2-shared-with-deps-cxx11-abi
|
||||||
|
|||||||
4
.github/workflows/generated-linux-binary-libtorch-pre-cxx11-nightly.yml
generated
vendored
4
.github/workflows/generated-linux-binary-libtorch-pre-cxx11-nightly.yml
generated
vendored
@ -366,7 +366,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Setup ROCm
|
- name: Setup ROCm
|
||||||
uses: ./.github/actions/setup-rocm
|
uses: ./.github/actions/setup-rocm
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-rocm6_1-shared-with-deps-pre-cxx11
|
name: libtorch-rocm6_1-shared-with-deps-pre-cxx11
|
||||||
@ -476,7 +476,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Setup ROCm
|
- name: Setup ROCm
|
||||||
uses: ./.github/actions/setup-rocm
|
uses: ./.github/actions/setup-rocm
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-rocm6_2-shared-with-deps-pre-cxx11
|
name: libtorch-rocm6_2-shared-with-deps-pre-cxx11
|
||||||
|
|||||||
147
.github/workflows/generated-linux-binary-manywheel-main.yml
generated
vendored
147
.github/workflows/generated-linux-binary-manywheel-main.yml
generated
vendored
@ -54,7 +54,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 11.8
|
GPU_ARCH_VERSION: 11.8
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
build_name: manywheel-py3_9-cuda11_8
|
build_name: manywheel-py3_9-cuda11_8
|
||||||
@ -78,7 +77,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 11.8
|
GPU_ARCH_VERSION: 11.8
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cuda11_8
|
build_name: manywheel-py3_9-cuda11_8
|
||||||
build_environment: linux-binary-manywheel
|
build_environment: linux-binary-manywheel
|
||||||
@ -87,6 +85,53 @@ jobs:
|
|||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
manywheel-py3_9-cuda11_8-split-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
uses: ./.github/workflows/_binary-build-linux.yml
|
||||||
|
needs: get-label-type
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu118
|
||||||
|
GPU_ARCH_VERSION: 11.8
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
build_name: manywheel-py3_9-cuda11_8-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu11==11.8.89; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu11==11.8.89; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu11==11.8.87; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cudnn-cu11==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cublas-cu11==11.11.3.6; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu11==10.9.0.58; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu11==10.3.0.86; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu11==11.4.1.48; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu11==11.7.5.86; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nccl-cu11==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvtx-cu11==11.8.86; platform_system == 'Linux' and platform_machine == 'x86_64'
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
manywheel-py3_9-cuda11_8-split-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs:
|
||||||
|
- manywheel-py3_9-cuda11_8-split-build
|
||||||
|
- get-label-type
|
||||||
|
uses: ./.github/workflows/_binary-test-linux.yml
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu118
|
||||||
|
GPU_ARCH_VERSION: 11.8
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
build_name: manywheel-py3_9-cuda11_8-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
runs_on: linux.4xlarge.nvidia.gpu
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
manywheel-py3_9-cuda12_1-build:
|
manywheel-py3_9-cuda12_1-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
|
||||||
@ -101,7 +146,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 12.1
|
GPU_ARCH_VERSION: 12.1
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
build_name: manywheel-py3_9-cuda12_1
|
build_name: manywheel-py3_9-cuda12_1
|
||||||
@ -125,7 +169,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 12.1
|
GPU_ARCH_VERSION: 12.1
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cuda12_1
|
build_name: manywheel-py3_9-cuda12_1
|
||||||
build_environment: linux-binary-manywheel
|
build_environment: linux-binary-manywheel
|
||||||
@ -134,6 +177,53 @@ jobs:
|
|||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
manywheel-py3_9-cuda12_1-split-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
uses: ./.github/workflows/_binary-build-linux.yml
|
||||||
|
needs: get-label-type
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu121
|
||||||
|
GPU_ARCH_VERSION: 12.1
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
build_name: manywheel-py3_9-cuda12_1-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu12==12.1.105; 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.1.3.1; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu12==11.0.2.54; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu12==10.3.2.106; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu12==11.4.5.107; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu12==12.1.0.106; 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.1.105; platform_system == 'Linux' and platform_machine == 'x86_64'
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
manywheel-py3_9-cuda12_1-split-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs:
|
||||||
|
- manywheel-py3_9-cuda12_1-split-build
|
||||||
|
- get-label-type
|
||||||
|
uses: ./.github/workflows/_binary-test-linux.yml
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu121
|
||||||
|
GPU_ARCH_VERSION: 12.1
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
build_name: manywheel-py3_9-cuda12_1-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
runs_on: linux.4xlarge.nvidia.gpu
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
manywheel-py3_9-cuda12_4-build:
|
manywheel-py3_9-cuda12_4-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
|
||||||
@ -148,7 +238,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 12.4
|
GPU_ARCH_VERSION: 12.4
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
build_name: manywheel-py3_9-cuda12_4
|
build_name: manywheel-py3_9-cuda12_4
|
||||||
@ -172,7 +261,6 @@ jobs:
|
|||||||
GPU_ARCH_VERSION: 12.4
|
GPU_ARCH_VERSION: 12.4
|
||||||
GPU_ARCH_TYPE: cuda
|
GPU_ARCH_TYPE: cuda
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cuda12_4
|
build_name: manywheel-py3_9-cuda12_4
|
||||||
build_environment: linux-binary-manywheel
|
build_environment: linux-binary-manywheel
|
||||||
@ -180,3 +268,50 @@ jobs:
|
|||||||
runs_on: linux.4xlarge.nvidia.gpu
|
runs_on: linux.4xlarge.nvidia.gpu
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
manywheel-py3_9-cuda12_4-split-build:
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
uses: ./.github/workflows/_binary-build-linux.yml
|
||||||
|
needs: get-label-type
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu124
|
||||||
|
GPU_ARCH_VERSION: 12.4
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
build_name: manywheel-py3_9-cuda12_4-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cudnn-cu12==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cublas-cu12==12.4.5.8; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu12==11.2.1.3; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu12==10.3.5.147; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu12==11.6.1.9; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu12==12.3.1.170; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nccl-cu12==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvtx-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvjitlink-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64'
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
manywheel-py3_9-cuda12_4-split-test: # Testing
|
||||||
|
if: ${{ github.repository_owner == 'pytorch' }}
|
||||||
|
needs:
|
||||||
|
- manywheel-py3_9-cuda12_4-split-build
|
||||||
|
- get-label-type
|
||||||
|
uses: ./.github/workflows/_binary-test-linux.yml
|
||||||
|
with:
|
||||||
|
PYTORCH_ROOT: /pytorch
|
||||||
|
BUILDER_ROOT: /builder
|
||||||
|
PACKAGE_TYPE: manywheel
|
||||||
|
# TODO: This is a legacy variable that we eventually want to get rid of in
|
||||||
|
# favor of GPU_ARCH_VERSION
|
||||||
|
DESIRED_CUDA: cu124
|
||||||
|
GPU_ARCH_VERSION: 12.4
|
||||||
|
GPU_ARCH_TYPE: cuda
|
||||||
|
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
||||||
|
use_split_build: True
|
||||||
|
DESIRED_PYTHON: "3.9"
|
||||||
|
build_name: manywheel-py3_9-cuda12_4-split
|
||||||
|
build_environment: linux-binary-manywheel
|
||||||
|
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
||||||
|
runs_on: linux.4xlarge.nvidia.gpu
|
||||||
|
secrets:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
1227
.github/workflows/generated-linux-binary-manywheel-nightly.yml
generated
vendored
1227
.github/workflows/generated-linux-binary-manywheel-nightly.yml
generated
vendored
File diff suppressed because it is too large
Load Diff
182
.github/workflows/generated-linux-binary-manywheel-split-main.yml
generated
vendored
182
.github/workflows/generated-linux-binary-manywheel-split-main.yml
generated
vendored
@ -1,182 +0,0 @@
|
|||||||
# @generated DO NOT EDIT MANUALLY
|
|
||||||
|
|
||||||
# Template is at: .github/templates/linux_binary_build_workflow.yml.j2
|
|
||||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
|
||||||
name: linux-binary-manywheel-split
|
|
||||||
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
tags:
|
|
||||||
- 'ciflow/periodic/*'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
env:
|
|
||||||
# Needed for conda builds
|
|
||||||
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
|
||||||
ANACONDA_USER: pytorch
|
|
||||||
AWS_DEFAULT_REGION: us-east-1
|
|
||||||
BINARY_ENV_FILE: /tmp/env
|
|
||||||
BUILD_ENVIRONMENT: linux-binary-manywheel-split
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
||||||
PYTORCH_FINAL_PACKAGE_DIR: /artifacts
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
||||||
SKIP_ALL_TESTS: 0
|
|
||||||
concurrency:
|
|
||||||
group: linux-binary-manywheel-split-${{ github.event.pull_request.number || github.ref_name }}-${{ github.ref_type == 'branch' && github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
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 }}
|
|
||||||
manywheel-py3_9-cuda11_8-build:
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
uses: ./.github/workflows/_binary-build-linux.yml
|
|
||||||
needs: get-label-type
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu118
|
|
||||||
GPU_ARCH_VERSION: 11.8
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build_name: manywheel-py3_9-cuda11_8
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu11==11.8.89; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu11==11.8.89; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu11==11.8.87; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cudnn-cu11==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cublas-cu11==11.11.3.6; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu11==10.9.0.58; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu11==10.3.0.86; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu11==11.4.1.48; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu11==11.7.5.86; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nccl-cu11==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvtx-cu11==11.8.86; platform_system == 'Linux' and platform_machine == 'x86_64'
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
manywheel-py3_9-cuda11_8-test: # Testing
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
needs:
|
|
||||||
- manywheel-py3_9-cuda11_8-build
|
|
||||||
- get-label-type
|
|
||||||
uses: ./.github/workflows/_binary-test-linux.yml
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu118
|
|
||||||
GPU_ARCH_VERSION: 11.8
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
build_name: manywheel-py3_9-cuda11_8
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runs_on: linux.4xlarge.nvidia.gpu
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
manywheel-py3_9-cuda12_1-build:
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
uses: ./.github/workflows/_binary-build-linux.yml
|
|
||||||
needs: get-label-type
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu121
|
|
||||||
GPU_ARCH_VERSION: 12.1
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build_name: manywheel-py3_9-cuda12_1
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu12==12.1.105; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu12==12.1.105; 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.1.3.1; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu12==11.0.2.54; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu12==10.3.2.106; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu12==11.4.5.107; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu12==12.1.0.106; 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.1.105; platform_system == 'Linux' and platform_machine == 'x86_64'
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
manywheel-py3_9-cuda12_1-test: # Testing
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
needs:
|
|
||||||
- manywheel-py3_9-cuda12_1-build
|
|
||||||
- get-label-type
|
|
||||||
uses: ./.github/workflows/_binary-test-linux.yml
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu121
|
|
||||||
GPU_ARCH_VERSION: 12.1
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
build_name: manywheel-py3_9-cuda12_1
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runs_on: linux.4xlarge.nvidia.gpu
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
manywheel-py3_9-cuda12_4-build:
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
uses: ./.github/workflows/_binary-build-linux.yml
|
|
||||||
needs: get-label-type
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu124
|
|
||||||
GPU_ARCH_VERSION: 12.4
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build_name: manywheel-py3_9-cuda12_4
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
PYTORCH_EXTRA_INSTALL_REQUIREMENTS: nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-runtime-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cuda-cupti-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cudnn-cu12==9.1.0.70; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cublas-cu12==12.4.5.8; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cufft-cu12==11.2.1.3; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-curand-cu12==10.3.5.147; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusolver-cu12==11.6.1.9; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-cusparse-cu12==12.3.1.170; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nccl-cu12==2.21.5; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvtx-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64' | nvidia-nvjitlink-cu12==12.4.127; platform_system == 'Linux' and platform_machine == 'x86_64'
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
manywheel-py3_9-cuda12_4-test: # Testing
|
|
||||||
if: ${{ github.repository_owner == 'pytorch' }}
|
|
||||||
needs:
|
|
||||||
- manywheel-py3_9-cuda12_4-build
|
|
||||||
- get-label-type
|
|
||||||
uses: ./.github/workflows/_binary-test-linux.yml
|
|
||||||
with:
|
|
||||||
PYTORCH_ROOT: /pytorch
|
|
||||||
BUILDER_ROOT: /builder
|
|
||||||
PACKAGE_TYPE: manywheel
|
|
||||||
# TODO: This is a legacy variable that we eventually want to get rid of in
|
|
||||||
# favor of GPU_ARCH_VERSION
|
|
||||||
DESIRED_CUDA: cu124
|
|
||||||
GPU_ARCH_VERSION: 12.4
|
|
||||||
GPU_ARCH_TYPE: cuda
|
|
||||||
DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.4-main
|
|
||||||
use_split_build: True
|
|
||||||
DESIRED_PYTHON: "3.9"
|
|
||||||
build_name: manywheel-py3_9-cuda12_4
|
|
||||||
build_environment: linux-binary-manywheel-split
|
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runs_on: linux.4xlarge.nvidia.gpu
|
|
||||||
secrets:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
1516
.github/workflows/generated-linux-binary-manywheel-split-nightly.yml
generated
vendored
1516
.github/workflows/generated-linux-binary-manywheel-split-nightly.yml
generated
vendored
File diff suppressed because it is too large
Load Diff
15
.github/workflows/generated-linux-s390x-binary-manywheel-nightly.yml
generated
vendored
15
.github/workflows/generated-linux-s390x-binary-manywheel-nightly.yml
generated
vendored
@ -58,7 +58,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
@ -82,7 +81,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cpu-s390x
|
build_name: manywheel-py3_9-cpu-s390x
|
||||||
build_environment: linux-s390x-binary-manywheel
|
build_environment: linux-s390x-binary-manywheel
|
||||||
@ -105,7 +103,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.9"
|
DESIRED_PYTHON: "3.9"
|
||||||
build_name: manywheel-py3_9-cpu-s390x
|
build_name: manywheel-py3_9-cpu-s390x
|
||||||
secrets:
|
secrets:
|
||||||
@ -127,7 +124,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
@ -151,7 +147,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
build_name: manywheel-py3_10-cpu-s390x
|
build_name: manywheel-py3_10-cpu-s390x
|
||||||
build_environment: linux-s390x-binary-manywheel
|
build_environment: linux-s390x-binary-manywheel
|
||||||
@ -174,7 +169,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.10"
|
DESIRED_PYTHON: "3.10"
|
||||||
build_name: manywheel-py3_10-cpu-s390x
|
build_name: manywheel-py3_10-cpu-s390x
|
||||||
secrets:
|
secrets:
|
||||||
@ -196,7 +190,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
@ -220,7 +213,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
build_name: manywheel-py3_11-cpu-s390x
|
build_name: manywheel-py3_11-cpu-s390x
|
||||||
build_environment: linux-s390x-binary-manywheel
|
build_environment: linux-s390x-binary-manywheel
|
||||||
@ -243,7 +235,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.11"
|
DESIRED_PYTHON: "3.11"
|
||||||
build_name: manywheel-py3_11-cpu-s390x
|
build_name: manywheel-py3_11-cpu-s390x
|
||||||
secrets:
|
secrets:
|
||||||
@ -265,7 +256,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
@ -289,7 +279,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
build_name: manywheel-py3_12-cpu-s390x
|
build_name: manywheel-py3_12-cpu-s390x
|
||||||
build_environment: linux-s390x-binary-manywheel
|
build_environment: linux-s390x-binary-manywheel
|
||||||
@ -312,7 +301,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.12"
|
DESIRED_PYTHON: "3.12"
|
||||||
build_name: manywheel-py3_12-cpu-s390x
|
build_name: manywheel-py3_12-cpu-s390x
|
||||||
secrets:
|
secrets:
|
||||||
@ -334,7 +322,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.13"
|
DESIRED_PYTHON: "3.13"
|
||||||
runs_on: linux.s390x
|
runs_on: linux.s390x
|
||||||
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
ALPINE_IMAGE: "docker.io/s390x/alpine"
|
||||||
@ -358,7 +345,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.13"
|
DESIRED_PYTHON: "3.13"
|
||||||
build_name: manywheel-py3_13-cpu-s390x
|
build_name: manywheel-py3_13-cpu-s390x
|
||||||
build_environment: linux-s390x-binary-manywheel
|
build_environment: linux-s390x-binary-manywheel
|
||||||
@ -381,7 +367,6 @@ jobs:
|
|||||||
DESIRED_CUDA: cpu
|
DESIRED_CUDA: cpu
|
||||||
GPU_ARCH_TYPE: cpu-s390x
|
GPU_ARCH_TYPE: cpu-s390x
|
||||||
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
DOCKER_IMAGE: pytorch/manylinuxs390x-builder:cpu-s390x-main
|
||||||
use_split_build: False
|
|
||||||
DESIRED_PYTHON: "3.13"
|
DESIRED_PYTHON: "3.13"
|
||||||
build_name: manywheel-py3_13-cpu-s390x
|
build_name: manywheel-py3_13-cpu-s390x
|
||||||
secrets:
|
secrets:
|
||||||
|
|||||||
8
.github/workflows/generated-macos-arm64-binary-conda-nightly.yml
generated
vendored
8
.github/workflows/generated-macos-arm64-binary-conda-nightly.yml
generated
vendored
@ -117,7 +117,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: conda-py3_9-cpu
|
name: conda-py3_9-cpu
|
||||||
@ -232,7 +232,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: conda-py3_10-cpu
|
name: conda-py3_10-cpu
|
||||||
@ -347,7 +347,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: conda-py3_11-cpu
|
name: conda-py3_11-cpu
|
||||||
@ -462,7 +462,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: conda-py3_12-cpu
|
name: conda-py3_12-cpu
|
||||||
|
|||||||
4
.github/workflows/generated-macos-arm64-binary-libtorch-cxx11-abi-nightly.yml
generated
vendored
4
.github/workflows/generated-macos-arm64-binary-libtorch-cxx11-abi-nightly.yml
generated
vendored
@ -49,7 +49,7 @@ jobs:
|
|||||||
DESIRED_DEVTOOLSET: cxx11-abi
|
DESIRED_DEVTOOLSET: cxx11-abi
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
# NOTE: These environment variables are put here so that they can be applied on every job equally
|
||||||
# They are also here because setting them at a workflow level doesn't give us access to the
|
# They are also here because setting them at a workflow level doesn't give us access to the
|
||||||
@ -121,7 +121,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: libtorch-cpu-shared-with-deps-cxx11-abi
|
name: libtorch-cpu-shared-with-deps-cxx11-abi
|
||||||
|
|||||||
8
.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
generated
vendored
8
.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
generated
vendored
@ -118,7 +118,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: wheel-py3_9-cpu
|
name: wheel-py3_9-cpu
|
||||||
@ -234,7 +234,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: wheel-py3_10-cpu
|
name: wheel-py3_10-cpu
|
||||||
@ -350,7 +350,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: wheel-py3_11-cpu
|
name: wheel-py3_11-cpu
|
||||||
@ -466,7 +466,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: wheel-py3_12-cpu
|
name: wheel-py3_12-cpu
|
||||||
|
|||||||
88
.github/workflows/generated-windows-binary-conda-nightly.yml
generated
vendored
88
.github/workflows/generated-windows-binary-conda-nightly.yml
generated
vendored
@ -132,7 +132,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cpu
|
name: conda-py3_9-cpu
|
||||||
@ -213,7 +213,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cpu
|
name: conda-py3_9-cpu
|
||||||
@ -378,7 +378,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda11_8
|
name: conda-py3_9-cuda11_8
|
||||||
@ -403,7 +403,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_9-cuda11_8-build
|
- conda-py3_9-cuda11_8-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -460,7 +460,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda11_8
|
name: conda-py3_9-cuda11_8
|
||||||
@ -626,7 +626,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda12_1
|
name: conda-py3_9-cuda12_1
|
||||||
@ -651,7 +651,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_9-cuda12_1-build
|
- conda-py3_9-cuda12_1-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -708,7 +708,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda12_1
|
name: conda-py3_9-cuda12_1
|
||||||
@ -874,7 +874,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda12_4
|
name: conda-py3_9-cuda12_4
|
||||||
@ -899,7 +899,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_9-cuda12_4-build
|
- conda-py3_9-cuda12_4-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -956,7 +956,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_9-cuda12_4
|
name: conda-py3_9-cuda12_4
|
||||||
@ -1121,7 +1121,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cpu
|
name: conda-py3_10-cpu
|
||||||
@ -1202,7 +1202,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cpu
|
name: conda-py3_10-cpu
|
||||||
@ -1367,7 +1367,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda11_8
|
name: conda-py3_10-cuda11_8
|
||||||
@ -1392,7 +1392,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_10-cuda11_8-build
|
- conda-py3_10-cuda11_8-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -1449,7 +1449,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda11_8
|
name: conda-py3_10-cuda11_8
|
||||||
@ -1615,7 +1615,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda12_1
|
name: conda-py3_10-cuda12_1
|
||||||
@ -1640,7 +1640,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_10-cuda12_1-build
|
- conda-py3_10-cuda12_1-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -1697,7 +1697,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda12_1
|
name: conda-py3_10-cuda12_1
|
||||||
@ -1863,7 +1863,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda12_4
|
name: conda-py3_10-cuda12_4
|
||||||
@ -1888,7 +1888,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_10-cuda12_4-build
|
- conda-py3_10-cuda12_4-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -1945,7 +1945,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_10-cuda12_4
|
name: conda-py3_10-cuda12_4
|
||||||
@ -2110,7 +2110,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cpu
|
name: conda-py3_11-cpu
|
||||||
@ -2191,7 +2191,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cpu
|
name: conda-py3_11-cpu
|
||||||
@ -2356,7 +2356,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda11_8
|
name: conda-py3_11-cuda11_8
|
||||||
@ -2381,7 +2381,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_11-cuda11_8-build
|
- conda-py3_11-cuda11_8-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -2438,7 +2438,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda11_8
|
name: conda-py3_11-cuda11_8
|
||||||
@ -2604,7 +2604,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda12_1
|
name: conda-py3_11-cuda12_1
|
||||||
@ -2629,7 +2629,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_11-cuda12_1-build
|
- conda-py3_11-cuda12_1-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -2686,7 +2686,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda12_1
|
name: conda-py3_11-cuda12_1
|
||||||
@ -2852,7 +2852,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda12_4
|
name: conda-py3_11-cuda12_4
|
||||||
@ -2877,7 +2877,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_11-cuda12_4-build
|
- conda-py3_11-cuda12_4-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -2934,7 +2934,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_11-cuda12_4
|
name: conda-py3_11-cuda12_4
|
||||||
@ -3099,7 +3099,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cpu
|
name: conda-py3_12-cpu
|
||||||
@ -3180,7 +3180,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cpu
|
name: conda-py3_12-cpu
|
||||||
@ -3345,7 +3345,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda11_8
|
name: conda-py3_12-cuda11_8
|
||||||
@ -3370,7 +3370,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_12-cuda11_8-build
|
- conda-py3_12-cuda11_8-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -3427,7 +3427,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda11_8
|
name: conda-py3_12-cuda11_8
|
||||||
@ -3593,7 +3593,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda12_1
|
name: conda-py3_12-cuda12_1
|
||||||
@ -3618,7 +3618,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_12-cuda12_1-build
|
- conda-py3_12-cuda12_1-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -3675,7 +3675,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda12_1
|
name: conda-py3_12-cuda12_1
|
||||||
@ -3841,7 +3841,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda12_4
|
name: conda-py3_12-cuda12_4
|
||||||
@ -3866,7 +3866,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- conda-py3_12-cuda12_4-build
|
- conda-py3_12-cuda12_4-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -3923,7 +3923,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: conda-py3_12-cuda12_4
|
name: conda-py3_12-cuda12_4
|
||||||
|
|||||||
8
.github/workflows/generated-windows-binary-libtorch-debug-main.yml
generated
vendored
8
.github/workflows/generated-windows-binary-libtorch-debug-main.yml
generated
vendored
@ -51,7 +51,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -129,7 +129,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-debug
|
name: libtorch-cpu-shared-with-deps-debug
|
||||||
@ -169,7 +169,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -214,7 +214,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-debug
|
name: libtorch-cpu-shared-with-deps-debug
|
||||||
|
|||||||
46
.github/workflows/generated-windows-binary-libtorch-debug-nightly.yml
generated
vendored
46
.github/workflows/generated-windows-binary-libtorch-debug-nightly.yml
generated
vendored
@ -58,7 +58,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -136,7 +136,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-debug
|
name: libtorch-cpu-shared-with-deps-debug
|
||||||
@ -176,7 +176,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -221,7 +221,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-debug
|
name: libtorch-cpu-shared-with-deps-debug
|
||||||
@ -290,7 +290,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cpu-shared-with-deps-debug
|
build_name: libtorch-cpu-shared-with-deps-debug
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -316,7 +316,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -394,7 +394,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda11_8-shared-with-deps-debug
|
name: libtorch-cuda11_8-shared-with-deps-debug
|
||||||
@ -419,7 +419,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda11_8-shared-with-deps-debug-build
|
- libtorch-cuda11_8-shared-with-deps-debug-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -435,7 +435,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -480,7 +480,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda11_8-shared-with-deps-debug
|
name: libtorch-cuda11_8-shared-with-deps-debug
|
||||||
@ -550,7 +550,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda11_8-shared-with-deps-debug
|
build_name: libtorch-cuda11_8-shared-with-deps-debug
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -576,7 +576,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -654,7 +654,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_1-shared-with-deps-debug
|
name: libtorch-cuda12_1-shared-with-deps-debug
|
||||||
@ -679,7 +679,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda12_1-shared-with-deps-debug-build
|
- libtorch-cuda12_1-shared-with-deps-debug-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -695,7 +695,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -740,7 +740,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_1-shared-with-deps-debug
|
name: libtorch-cuda12_1-shared-with-deps-debug
|
||||||
@ -810,7 +810,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda12_1-shared-with-deps-debug
|
build_name: libtorch-cuda12_1-shared-with-deps-debug
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -836,7 +836,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -914,7 +914,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_4-shared-with-deps-debug
|
name: libtorch-cuda12_4-shared-with-deps-debug
|
||||||
@ -939,7 +939,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda12_4-shared-with-deps-debug-build
|
- libtorch-cuda12_4-shared-with-deps-debug-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -955,7 +955,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -1000,7 +1000,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_4-shared-with-deps-debug
|
name: libtorch-cuda12_4-shared-with-deps-debug
|
||||||
@ -1070,7 +1070,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda12_4-shared-with-deps-debug
|
build_name: libtorch-cuda12_4-shared-with-deps-debug
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
8
.github/workflows/generated-windows-binary-libtorch-release-main.yml
generated
vendored
8
.github/workflows/generated-windows-binary-libtorch-release-main.yml
generated
vendored
@ -51,7 +51,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -129,7 +129,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-release
|
name: libtorch-cpu-shared-with-deps-release
|
||||||
@ -169,7 +169,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -214,7 +214,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-release
|
name: libtorch-cpu-shared-with-deps-release
|
||||||
|
|||||||
46
.github/workflows/generated-windows-binary-libtorch-release-nightly.yml
generated
vendored
46
.github/workflows/generated-windows-binary-libtorch-release-nightly.yml
generated
vendored
@ -58,7 +58,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -136,7 +136,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-release
|
name: libtorch-cpu-shared-with-deps-release
|
||||||
@ -176,7 +176,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -221,7 +221,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cpu-shared-with-deps-release
|
name: libtorch-cpu-shared-with-deps-release
|
||||||
@ -290,7 +290,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cpu-shared-with-deps-release
|
build_name: libtorch-cpu-shared-with-deps-release
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -316,7 +316,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -394,7 +394,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda11_8-shared-with-deps-release
|
name: libtorch-cuda11_8-shared-with-deps-release
|
||||||
@ -419,7 +419,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda11_8-shared-with-deps-release-build
|
- libtorch-cuda11_8-shared-with-deps-release-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -435,7 +435,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -480,7 +480,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda11_8-shared-with-deps-release
|
name: libtorch-cuda11_8-shared-with-deps-release
|
||||||
@ -550,7 +550,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda11_8-shared-with-deps-release
|
build_name: libtorch-cuda11_8-shared-with-deps-release
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -576,7 +576,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -654,7 +654,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_1-shared-with-deps-release
|
name: libtorch-cuda12_1-shared-with-deps-release
|
||||||
@ -679,7 +679,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda12_1-shared-with-deps-release-build
|
- libtorch-cuda12_1-shared-with-deps-release-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -695,7 +695,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -740,7 +740,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_1-shared-with-deps-release
|
name: libtorch-cuda12_1-shared-with-deps-release
|
||||||
@ -810,7 +810,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda12_1-shared-with-deps-release
|
build_name: libtorch-cuda12_1-shared-with-deps-release
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -836,7 +836,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -914,7 +914,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_build.sh"
|
||||||
- uses: actions/upload-artifact@v4.4.0
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_4-shared-with-deps-release
|
name: libtorch-cuda12_4-shared-with-deps-release
|
||||||
@ -939,7 +939,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- libtorch-cuda12_4-shared-with-deps-release-build
|
- libtorch-cuda12_4-shared-with-deps-release-build
|
||||||
- get-label-type
|
- get-label-type
|
||||||
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.g4dn.xlarge"
|
runs-on: "${{ needs.get-label-type.outputs.label-type }}windows.8xlarge.nvidia.gpu"
|
||||||
timeout-minutes: 240
|
timeout-minutes: 240
|
||||||
env:
|
env:
|
||||||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
PYTORCH_ROOT: ${{ github.workspace }}/pytorch
|
||||||
@ -955,7 +955,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
steps:
|
steps:
|
||||||
- name: Display EC2 information
|
- name: Display EC2 information
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -1000,7 +1000,7 @@ jobs:
|
|||||||
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
echo "BINARY_ENV_FILE=${RUNNER_TEMP}/env" >> "${GITHUB_ENV}"
|
||||||
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
echo "PYTORCH_FINAL_PACKAGE_DIR=${RUNNER_TEMP}/artifacts" >> "${GITHUB_ENV}"
|
||||||
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
echo "WIN_PACKAGE_WORK_DIR=${RUNNER_TEMP}"
|
||||||
- uses: actions/download-artifact@v4.1.7
|
- uses: actions/download-artifact@v3
|
||||||
name: Download Build Artifacts
|
name: Download Build Artifacts
|
||||||
with:
|
with:
|
||||||
name: libtorch-cuda12_4-shared-with-deps-release
|
name: libtorch-cuda12_4-shared-with-deps-release
|
||||||
@ -1070,7 +1070,7 @@ jobs:
|
|||||||
LIBTORCH_VARIANT: shared-with-deps
|
LIBTORCH_VARIANT: shared-with-deps
|
||||||
# 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"
|
||||||
build_name: libtorch-cuda12_4-shared-with-deps-release
|
build_name: libtorch-cuda12_4-shared-with-deps-release
|
||||||
secrets:
|
secrets:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
1068
.github/workflows/generated-windows-binary-wheel-nightly.yml
generated
vendored
1068
.github/workflows/generated-windows-binary-wheel-nightly.yml
generated
vendored
File diff suppressed because it is too large
Load Diff
11
.github/workflows/inductor-cu124.yml
vendored
11
.github/workflows/inductor-cu124.yml
vendored
@ -18,22 +18,11 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-focal-cuda12_4-py3_10-gcc9-inductor-build:
|
linux-focal-cuda12_4-py3_10-gcc9-inductor-build:
|
||||||
# Should be synced with the one in inductor.yml, but this doesn't run inductor_timm
|
# Should be synced with the one in inductor.yml, but this doesn't run inductor_timm
|
||||||
name: cuda12.4-py3.10-gcc9-sm86
|
name: cuda12.4-py3.10-gcc9-sm86
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
sync-tag: linux-focal-cuda12_4-py3_10-gcc9-inductor-build
|
sync-tag: linux-focal-cuda12_4-py3_10-gcc9-inductor-build
|
||||||
build-environment: linux-focal-cuda12.4-py3.10-gcc9-sm86
|
build-environment: linux-focal-cuda12.4-py3.10-gcc9-sm86
|
||||||
docker-image-name: pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks
|
docker-image-name: pytorch-linux-focal-cuda12.4-cudnn9-py3-gcc9-inductor-benchmarks
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
name: inductor-micro-benchmark-x86
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: 0 7 * * *
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- ciflow/inductor-micro-benchmark-cpu-x86/*
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }}-${{ github.ref_type == 'branch' && github.sha }}-${{ github.event_name == 'workflow_dispatch' }}-${{ github.event_name == 'schedule' }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
permissions: read-all
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
linux-jammy-cpu-py3_9-gcc11-inductor-build:
|
|
||||||
name: linux-jammy-cpu-py3.9-gcc11-inductor
|
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
|
||||||
with:
|
|
||||||
build-environment: linux-jammy-py3.9-gcc11
|
|
||||||
docker-image-name: pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks
|
|
||||||
# Use metal host for benchmark jobs
|
|
||||||
test-matrix: |
|
|
||||||
{ include: [
|
|
||||||
{ config: "inductor-micro-benchmark-cpu-x86", shard: 1, num_shards: 1, runner: "linux.24xl.spr-metal" },
|
|
||||||
]}
|
|
||||||
|
|
||||||
linux-jammy-cpu-py3_9-gcc11-inductor-micro-benchmark-test:
|
|
||||||
name: linux-jammy-cpu-py3.9-gcc11-inductor
|
|
||||||
uses: ./.github/workflows/_linux-test.yml
|
|
||||||
needs: linux-jammy-cpu-py3_9-gcc11-inductor-build
|
|
||||||
with:
|
|
||||||
build-environment: linux-jammy-py3.9-gcc11
|
|
||||||
docker-image: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.docker-image }}
|
|
||||||
test-matrix: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.test-matrix }}
|
|
||||||
use-gha: anything-non-empty-to-use-gha
|
|
||||||
timeout-minutes: 720
|
|
||||||
11
.github/workflows/inductor-micro-benchmark.yml
vendored
11
.github/workflows/inductor-micro-benchmark.yml
vendored
@ -16,21 +16,10 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-focal-cuda12_1-py3_10-gcc9-inductor-micro-benchmark-build:
|
linux-focal-cuda12_1-py3_10-gcc9-inductor-micro-benchmark-build:
|
||||||
name: cuda12.1-py3.10-gcc9-sm80
|
name: cuda12.1-py3.10-gcc9-sm80
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
||||||
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
||||||
cuda-arch-list: '8.0'
|
cuda-arch-list: '8.0'
|
||||||
|
|||||||
11
.github/workflows/inductor-perf-compare.yml
vendored
11
.github/workflows/inductor-perf-compare.yml
vendored
@ -13,21 +13,10 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
||||||
name: cuda12.1-py3.10-gcc9-sm80
|
name: cuda12.1-py3.10-gcc9-sm80
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
||||||
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
||||||
cuda-arch-list: '8.0'
|
cuda-arch-list: '8.0'
|
||||||
|
|||||||
@ -68,21 +68,10 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
||||||
name: cuda12.1-py3.10-gcc9-sm80
|
name: cuda12.1-py3.10-gcc9-sm80
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
||||||
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
||||||
cuda-arch-list: '8.0'
|
cuda-arch-list: '8.0'
|
||||||
|
|||||||
@ -5,7 +5,9 @@ on:
|
|||||||
# - cron: 0 7 * * 1-6
|
# - cron: 0 7 * * 1-6
|
||||||
# - cron: 0 7 * * 0
|
# - cron: 0 7 * * 0
|
||||||
# Does not perform max_autotune on CPU, so skip the weekly run setup
|
# Does not perform max_autotune on CPU, so skip the weekly run setup
|
||||||
- cron: 0 7 * * *
|
# Run 6 times everyday to see if perf instablity can be reproduced
|
||||||
|
# Will change this back
|
||||||
|
- cron: 0 */4 * * *
|
||||||
# NB: GitHub has an upper limit of 10 inputs here
|
# NB: GitHub has an upper limit of 10 inputs here
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
@ -48,21 +50,10 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-jammy-aarch64-py3_10-inductor-build:
|
linux-jammy-aarch64-py3_10-inductor-build:
|
||||||
name: linux-jammy-aarch64-py3.10-inductor
|
name: linux-jammy-aarch64-py3.10-inductor
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
runner: linux.arm64.m7g.4xlarge
|
runner: linux.arm64.m7g.4xlarge
|
||||||
build-environment: linux-jammy-aarch64-py3.10
|
build-environment: linux-jammy-aarch64-py3.10
|
||||||
docker-image-name: pytorch-linux-jammy-aarch64-py3.10-gcc11-inductor-benchmarks
|
docker-image-name: pytorch-linux-jammy-aarch64-py3.10-gcc11-inductor-benchmarks
|
||||||
@ -114,7 +105,7 @@ jobs:
|
|||||||
name: linux-jammy-aarch64-py3.10-inductor
|
name: linux-jammy-aarch64-py3.10-inductor
|
||||||
uses: ./.github/workflows/_linux-test.yml
|
uses: ./.github/workflows/_linux-test.yml
|
||||||
needs: linux-jammy-aarch64-py3_10-inductor-build
|
needs: linux-jammy-aarch64-py3_10-inductor-build
|
||||||
if: github.event.schedule == '0 7 * * *'
|
if: github.event.schedule == '0 */4 * * *'
|
||||||
with:
|
with:
|
||||||
build-environment: linux-jammy-aarch64-py3.10
|
build-environment: linux-jammy-aarch64-py3.10
|
||||||
# Turn off dynamic-shapes and aotinductor tests for now, to have faster iteration for debugging perf instability.
|
# Turn off dynamic-shapes and aotinductor tests for now, to have faster iteration for debugging perf instability.
|
||||||
|
|||||||
@ -48,23 +48,12 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
get-label-type:
|
linux-jammy-cpu-py3_8-gcc11-inductor-build:
|
||||||
name: get-label-type
|
name: linux-jammy-cpu-py3.8-gcc11-inductor
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-jammy-cpu-py3_9-gcc11-inductor-build:
|
|
||||||
name: linux-jammy-cpu-py3.9-gcc11-inductor
|
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
build-environment: linux-jammy-py3.8-gcc11-build
|
||||||
build-environment: linux-jammy-py3.9-gcc11-build
|
docker-image-name: pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks
|
||||||
docker-image-name: pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks
|
|
||||||
test-matrix: |
|
test-matrix: |
|
||||||
{ include: [
|
{ include: [
|
||||||
{ config: "inductor_huggingface_perf_cpu_x86", shard: 1, num_shards: 3, runner: "linux.24xl.spr-metal" },
|
{ config: "inductor_huggingface_perf_cpu_x86", shard: 1, num_shards: 3, runner: "linux.24xl.spr-metal" },
|
||||||
@ -85,32 +74,32 @@ jobs:
|
|||||||
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
||||||
|
|
||||||
|
|
||||||
linux-jammy-cpu-py3_9-gcc11-inductor-test-nightly:
|
linux-jammy-cpu-py3_8-gcc11-inductor-test-nightly:
|
||||||
name: linux-jammy-cpu-py3.9-gcc11-inductor
|
name: linux-jammy-cpu-py3.8-gcc11-inductor
|
||||||
uses: ./.github/workflows/_linux-test.yml
|
uses: ./.github/workflows/_linux-test.yml
|
||||||
needs: linux-jammy-cpu-py3_9-gcc11-inductor-build
|
needs: linux-jammy-cpu-py3_8-gcc11-inductor-build
|
||||||
if: github.event.schedule == '0 7 * * *'
|
if: github.event.schedule == '0 7 * * *'
|
||||||
with:
|
with:
|
||||||
build-environment: linux-jammy-py3.9-gcc11-build
|
build-environment: linux-jammy-py3.8-gcc11-build
|
||||||
dashboard-tag: training-false-inference-true-default-true-dynamic-true-aotinductor-true
|
dashboard-tag: training-false-inference-true-default-true-dynamic-true-aotinductor-true
|
||||||
docker-image: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.docker-image }}
|
docker-image: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.docker-image }}
|
||||||
test-matrix: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.test-matrix }}
|
test-matrix: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.test-matrix }}
|
||||||
use-gha: anything-non-empty-to-use-gha
|
use-gha: anything-non-empty-to-use-gha
|
||||||
timeout-minutes: 720
|
timeout-minutes: 720
|
||||||
secrets:
|
secrets:
|
||||||
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
||||||
|
|
||||||
|
|
||||||
linux-jammy-cpu-py3_9-gcc11-inductor-test:
|
linux-jammy-cpu-py3_8-gcc11-inductor-test:
|
||||||
name: linux-jammy-cpu-py3.9-gcc11-inductor
|
name: linux-jammy-cpu-py3.8-gcc11-inductor
|
||||||
uses: ./.github/workflows/_linux-test.yml
|
uses: ./.github/workflows/_linux-test.yml
|
||||||
needs: linux-jammy-cpu-py3_9-gcc11-inductor-build
|
needs: linux-jammy-cpu-py3_8-gcc11-inductor-build
|
||||||
if: github.event_name == 'workflow_dispatch'
|
if: github.event_name == 'workflow_dispatch'
|
||||||
with:
|
with:
|
||||||
build-environment: linux-jammy-py3.9-gcc11-build
|
build-environment: linux-jammy-py3.8-gcc11-build
|
||||||
dashboard-tag: training-${{ inputs.training }}-inference-${{ inputs.inference }}-default-${{ inputs.default }}-dynamic-${{ inputs.dynamic }}-aotinductor-${{ inputs.aotinductor }}
|
dashboard-tag: training-${{ inputs.training }}-inference-${{ inputs.inference }}-default-${{ inputs.default }}-dynamic-${{ inputs.dynamic }}-aotinductor-${{ inputs.aotinductor }}
|
||||||
docker-image: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.docker-image }}
|
docker-image: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.docker-image }}
|
||||||
test-matrix: ${{ needs.linux-jammy-cpu-py3_9-gcc11-inductor-build.outputs.test-matrix }}
|
test-matrix: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.test-matrix }}
|
||||||
use-gha: anything-non-empty-to-use-gha
|
use-gha: anything-non-empty-to-use-gha
|
||||||
timeout-minutes: 720
|
timeout-minutes: 720
|
||||||
secrets:
|
secrets:
|
||||||
|
|||||||
11
.github/workflows/inductor-perf-test-nightly.yml
vendored
11
.github/workflows/inductor-perf-test-nightly.yml
vendored
@ -66,21 +66,10 @@ concurrency:
|
|||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
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 }}
|
|
||||||
|
|
||||||
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
linux-focal-cuda12_1-py3_10-gcc9-inductor-build:
|
||||||
name: cuda12.1-py3.10-gcc9-sm80
|
name: cuda12.1-py3.10-gcc9-sm80
|
||||||
uses: ./.github/workflows/_linux-build.yml
|
uses: ./.github/workflows/_linux-build.yml
|
||||||
needs: get-label-type
|
|
||||||
with:
|
with:
|
||||||
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
|
|
||||||
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
build-environment: linux-focal-cuda12.1-py3.10-gcc9-sm80
|
||||||
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
docker-image-name: pytorch-linux-focal-cuda12.1-cudnn9-py3-gcc9-inductor-benchmarks
|
||||||
cuda-arch-list: '8.0'
|
cuda-arch-list: '8.0'
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user