mirror of
				https://github.com/pytorch/pytorch.git
				synced 2025-11-04 08:00:58 +08:00 
			
		
		
		
	Compare commits
	
		
			56 Commits
		
	
	
		
			ciflow/pul
			...
			v2.3.1-rc1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7782f2866c | |||
| be9a4076f0 | |||
| d114e0488c | |||
| 194698a4ac | |||
| 1d6a938090 | |||
| 4f0b3ad855 | |||
| bf1b3a056a | |||
| c365674171 | |||
| 768e4b9420 | |||
| e25474c05d | |||
| d8b35dac22 | |||
| bbb838654c | |||
| d983cb78e2 | |||
| 75e01e7df0 | |||
| a696b3b7f6 | |||
| 2e165ec9c2 | |||
| 1199df476e | |||
| 97ff6cfd9c | |||
| fb38ab7881 | |||
| 23961cef85 | |||
| 634cf5069a | |||
| 12d0e693d0 | |||
| 38acd812ab | |||
| b197f540bc | |||
| dc81d19aac | |||
| 108305e47b | |||
| a8b009185d | |||
| b67b277268 | |||
| a8f93a5c71 | |||
| fa07dc5132 | |||
| 2a82d31f78 | |||
| 4bb5cb51e6 | |||
| ef38d0572e | |||
| 5a53185e65 | |||
| bc9e23abb5 | |||
| 8194fae625 | |||
| 12acd4c9b3 | |||
| 857797d148 | |||
| 233dfe4d6a | |||
| e22b534b10 | |||
| 8602990e3f | |||
| 685cc955df | |||
| b1c2430fbd | |||
| 3002eb2556 | |||
| e1a846d6b8 | |||
| 4a9a8c606d | |||
| d3201f48b1 | |||
| 74832f12fa | |||
| 02cdb400d7 | |||
| 37257774c6 | |||
| c4e5434423 | |||
| b4f90aae1b | |||
| 94d6463255 | |||
| 6a89a753b1 | |||
| d69c421912 | |||
| 6725db07ae | 
@ -1 +1 @@
 | 
			
		||||
0a22a91d04c2b4a029a69a198eac390089c3e891
 | 
			
		||||
d08e16b738ab550c3af51305df624d5c823dc445
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
a9bc1a36470eefafe0e2ab2503b8698f1e89e7e3
 | 
			
		||||
958fccea74da58e7e0595ab88ae6cd3f6795a173
 | 
			
		||||
 | 
			
		||||
@ -57,8 +57,21 @@ fi
 | 
			
		||||
  # Uncomment the below when resolved to track the latest conda update
 | 
			
		||||
  # as_jenkins conda update -y -n base conda
 | 
			
		||||
 | 
			
		||||
  if [[ $(uname -m) == "aarch64" ]]; then
 | 
			
		||||
    export SYSROOT_DEP="sysroot_linux-aarch64=2.17"
 | 
			
		||||
  else
 | 
			
		||||
    export SYSROOT_DEP="sysroot_linux-64=2.17"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Install correct Python version
 | 
			
		||||
  as_jenkins conda create -n py_$ANACONDA_PYTHON_VERSION -y python="$ANACONDA_PYTHON_VERSION"
 | 
			
		||||
  # Also ensure sysroot is using a modern GLIBC to match system compilers
 | 
			
		||||
  as_jenkins conda create -n py_$ANACONDA_PYTHON_VERSION -y\
 | 
			
		||||
             python="$ANACONDA_PYTHON_VERSION" \
 | 
			
		||||
             ${SYSROOT_DEP}
 | 
			
		||||
 | 
			
		||||
  # libstdcxx from conda default channels are too old, we need GLIBCXX_3.4.30
 | 
			
		||||
  # which is provided in libstdcxx 12 and up.
 | 
			
		||||
  conda_install libstdcxx-ng=12.3.0 -c conda-forge
 | 
			
		||||
 | 
			
		||||
  # Install PyTorch conda deps, as per https://github.com/pytorch/pytorch README
 | 
			
		||||
  if [[ $(uname -m) == "aarch64" ]]; then
 | 
			
		||||
@ -110,14 +123,5 @@ fi
 | 
			
		||||
    pip_install -r /opt/conda/requirements-docs.txt
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # HACK HACK HACK
 | 
			
		||||
  # gcc-9 for ubuntu-18.04 from http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu
 | 
			
		||||
  # Pulls llibstdc++6 13.1.0-8ubuntu1~18.04 which is too new for conda
 | 
			
		||||
  # So remove libstdc++6.so.3.29 installed by https://anaconda.org/anaconda/libstdcxx-ng/files?version=11.2.0
 | 
			
		||||
  # Same is true for gcc-12 from Ubuntu-22.04
 | 
			
		||||
  if grep -e [12][82].04.[623] /etc/issue >/dev/null; then
 | 
			
		||||
    rm /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/lib/libstdc++.so.6
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  popd
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
3.0.0
 | 
			
		||||
2.3.1
 | 
			
		||||
 | 
			
		||||
@ -255,6 +255,11 @@ else
 | 
			
		||||
    # or building non-XLA tests.
 | 
			
		||||
    if [[ "$BUILD_ENVIRONMENT" != *rocm*  &&
 | 
			
		||||
          "$BUILD_ENVIRONMENT" != *xla* ]]; then
 | 
			
		||||
      if [[ "$BUILD_ENVIRONMENT" != *py3.8* ]]; then
 | 
			
		||||
        # Install numpy-2.0 release candidate for builds
 | 
			
		||||
        # Which should be backward compatible with Numpy-1.X
 | 
			
		||||
        python -mpip install --pre numpy==2.0.0rc1
 | 
			
		||||
      fi
 | 
			
		||||
      WERROR=1 python setup.py bdist_wheel
 | 
			
		||||
    else
 | 
			
		||||
      python setup.py bdist_wheel
 | 
			
		||||
 | 
			
		||||
@ -178,7 +178,7 @@ function install_torchrec_and_fbgemm() {
 | 
			
		||||
 | 
			
		||||
function clone_pytorch_xla() {
 | 
			
		||||
  if [[ ! -d ./xla ]]; then
 | 
			
		||||
    git clone --recursive --quiet https://github.com/pytorch/xla.git
 | 
			
		||||
    git clone --recursive -b r2.3 https://github.com/pytorch/xla.git
 | 
			
		||||
    pushd xla
 | 
			
		||||
    # pin the xla hash so that we don't get broken by changes to xla
 | 
			
		||||
    git checkout "$(cat ../.github/ci_commit_pins/xla.txt)"
 | 
			
		||||
 | 
			
		||||
@ -26,8 +26,8 @@ echo "error: python_doc_push_script.sh: version (arg2) not specified"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Argument 1: Where to copy the built documentation to
 | 
			
		||||
# (pytorch.github.io/$install_path)
 | 
			
		||||
install_path="${1:-${DOCS_INSTALL_PATH:-docs/${DOCS_VERSION}}}"
 | 
			
		||||
# (pytorch_docs/$install_path)
 | 
			
		||||
install_path="${1:-${DOCS_INSTALL_PATH:-${DOCS_VERSION}}}"
 | 
			
		||||
if [ -z "$install_path" ]; then
 | 
			
		||||
echo "error: python_doc_push_script.sh: install_path (arg1) not specified"
 | 
			
		||||
  exit 1
 | 
			
		||||
@ -68,8 +68,8 @@ build_docs () {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
git clone https://github.com/pytorch/pytorch.github.io -b "$branch" --depth 1
 | 
			
		||||
pushd pytorch.github.io
 | 
			
		||||
git clone https://github.com/pytorch/docs pytorch_docs -b "$branch" --depth 1
 | 
			
		||||
pushd pytorch_docs
 | 
			
		||||
 | 
			
		||||
export LC_ALL=C
 | 
			
		||||
export PATH=/opt/conda/bin:$PATH
 | 
			
		||||
 | 
			
		||||
@ -78,7 +78,7 @@ TRITON_VERSION=$(cat $PYTORCH_ROOT/.ci/docker/triton_version.txt)
 | 
			
		||||
if [[ "$PACKAGE_TYPE" =~ .*wheel.* &&  -n "${PYTORCH_EXTRA_INSTALL_REQUIREMENTS:-}" ]]; then
 | 
			
		||||
  # Only linux Python < 3.12 are supported wheels for triton
 | 
			
		||||
  TRITON_CONSTRAINT="platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'"
 | 
			
		||||
  TRITON_REQUIREMENT="triton==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
  TRITON_REQUIREMENT="pytorch-triton==${TRITON_VERSION}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
  if [[ -n "$PYTORCH_BUILD_VERSION" && "$PYTORCH_BUILD_VERSION" =~ .*dev.* ]]; then
 | 
			
		||||
      TRITON_SHORTHASH=$(cut -c1-10 $PYTORCH_ROOT/.ci/docker/ci_commit_pins/triton.txt)
 | 
			
		||||
      TRITON_REQUIREMENT="pytorch-triton==${TRITON_VERSION}+${TRITON_SHORTHASH}; ${TRITON_CONSTRAINT}"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/ci_commit_pins/xla.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ci_commit_pins/xla.txt
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
707a632930bfde19ffb361cdf5c31a7682af4e67
 | 
			
		||||
r2.3
 | 
			
		||||
 | 
			
		||||
@ -27,3 +27,6 @@ rockset==1.0.3
 | 
			
		||||
z3-solver==4.12.2.0
 | 
			
		||||
tensorboard==2.13.0
 | 
			
		||||
optree==0.9.1
 | 
			
		||||
# NB: test_hparams_* from test_tensorboard is failing with protobuf 5.26.0 in
 | 
			
		||||
# which the stringify metadata is wrong when escaping double quote
 | 
			
		||||
protobuf==3.20.2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/scripts/build_triton_wheel.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/scripts/build_triton_wheel.py
									
									
									
									
										vendored
									
									
								
							@ -11,7 +11,7 @@ SCRIPT_DIR = Path(__file__).parent
 | 
			
		||||
REPO_DIR = SCRIPT_DIR.parent.parent
 | 
			
		||||
 | 
			
		||||
# TODO: Remove me once Triton version is again in sync for vanilla and ROCm
 | 
			
		||||
ROCM_TRITION_VERSION = "2.1.0"
 | 
			
		||||
ROCM_TRITION_VERSION = "2.3.0"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def read_triton_pin(rocm_hash: bool = False) -> str:
 | 
			
		||||
@ -99,7 +99,17 @@ def build_triton(
 | 
			
		||||
            triton_repo = "https://github.com/openai/triton"
 | 
			
		||||
            triton_pkg_name = "pytorch-triton"
 | 
			
		||||
        check_call(["git", "clone", triton_repo], cwd=tmpdir)
 | 
			
		||||
        check_call(["git", "checkout", commit_hash], cwd=triton_basedir)
 | 
			
		||||
        if release:
 | 
			
		||||
            ver, rev, patch = version.split(".")
 | 
			
		||||
            if build_rocm:
 | 
			
		||||
                check_call(["git", "checkout", "release/2.3.x"], cwd=triton_basedir)
 | 
			
		||||
            else:
 | 
			
		||||
                check_call(
 | 
			
		||||
                    ["git", "checkout", f"release/{ver}.{rev}.x"], cwd=triton_basedir
 | 
			
		||||
                )
 | 
			
		||||
        else:
 | 
			
		||||
            check_call(["git", "checkout", commit_hash], cwd=triton_basedir)
 | 
			
		||||
 | 
			
		||||
        if build_conda:
 | 
			
		||||
            with open(triton_basedir / "meta.yaml", "w") as meta:
 | 
			
		||||
                print(
 | 
			
		||||
@ -109,7 +119,7 @@ def build_triton(
 | 
			
		||||
                print("source:\n  path: .\n", file=meta)
 | 
			
		||||
                print(
 | 
			
		||||
                    "build:\n  string: py{{py}}\n  number: 1\n  script: cd python; "
 | 
			
		||||
                    "python setup.py install --record=record.txt\n",
 | 
			
		||||
                    "python setup.py install --single-version-externally-managed --record=record.txt\n",
 | 
			
		||||
                    " script_env:\n   - MAX_JOBS\n",
 | 
			
		||||
                    file=meta,
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/scripts/filter_test_configs.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/scripts/filter_test_configs.py
									
									
									
									
										vendored
									
									
								
							@ -62,9 +62,9 @@ SUPPORTED_PERIODICAL_MODES: Dict[str, Callable[[Optional[str]], bool]] = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# The link to the published list of disabled jobs
 | 
			
		||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json"
 | 
			
		||||
DISABLED_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/disabled-jobs.json?versionId=qO7aEr.Og33PtLXfNq0j0yj.bbLC7SzR"
 | 
			
		||||
# and unstable jobs
 | 
			
		||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json"
 | 
			
		||||
UNSTABLE_JOBS_URL = "https://ossci-metrics.s3.amazonaws.com/unstable-jobs.json?versionId=7NhgpqKTtGXVUnL1C79KboTW_5qQx8y5"
 | 
			
		||||
 | 
			
		||||
# Some constants used to handle disabled and unstable jobs
 | 
			
		||||
JOB_NAME_SEP = "/"
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,8 @@ DOCKER_IMAGE_TYPES = ["runtime", "devel"]
 | 
			
		||||
 | 
			
		||||
def generate_docker_matrix() -> Dict[str, List[Dict[str, str]]]:
 | 
			
		||||
    ret: List[Dict[str, str]] = []
 | 
			
		||||
    # CUDA amd64 Docker images are available as both runtime and devel while
 | 
			
		||||
    # CPU arm64 image is only available as runtime.
 | 
			
		||||
    for cuda, version in generate_binary_build_matrix.CUDA_ARCHES_FULL_VERSION.items():
 | 
			
		||||
        for image in DOCKER_IMAGE_TYPES:
 | 
			
		||||
            ret.append(
 | 
			
		||||
@ -31,9 +33,19 @@ def generate_docker_matrix() -> Dict[str, List[Dict[str, str]]]:
 | 
			
		||||
                        cuda
 | 
			
		||||
                    ],
 | 
			
		||||
                    "image_type": image,
 | 
			
		||||
                    "platform": "linux/arm64,linux/amd64",
 | 
			
		||||
                    "platform": "linux/amd64",
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
    ret.append(
 | 
			
		||||
        {
 | 
			
		||||
            "cuda": "cpu",
 | 
			
		||||
            "cuda_full_version": "",
 | 
			
		||||
            "cudnn_version": "",
 | 
			
		||||
            "image_type": "runtime",
 | 
			
		||||
            "platform": "linux/arm64",
 | 
			
		||||
        }
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    return {"include": ret}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/templates/common.yml.j2
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/templates/common.yml.j2
									
									
									
									
										vendored
									
									
								
							@ -8,7 +8,7 @@
 | 
			
		||||
# NOTE: If testing pytorch/builder changes you can change this variable to change what pytorch/builder reference
 | 
			
		||||
#       the binary builds will check out
 | 
			
		||||
{%- set builder_repo = "pytorch/builder" -%}
 | 
			
		||||
{%- set builder_branch = "main" -%}
 | 
			
		||||
{%- set builder_branch = "release/2.3" -%}
 | 
			
		||||
 | 
			
		||||
{%- macro concurrency(build_environment) -%}
 | 
			
		||||
concurrency:
 | 
			
		||||
 | 
			
		||||
@ -100,8 +100,8 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      - name: ROCm set GPU_FLAG
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
 | 
			
		||||
 | 
			
		||||
@ -81,8 +81,8 @@ jobs:
 | 
			
		||||
          elif [ -d "/Applications/Xcode_13.3.1.app" ]; then
 | 
			
		||||
            echo "DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer" >> "${GITHUB_ENV}"
 | 
			
		||||
          fi
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      - name: Install sccache (only for non-forked PRs, and pushes to trunk)
 | 
			
		||||
        uses: nick-fields/retry@v2.8.2
 | 
			
		||||
        if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
 | 
			
		||||
 | 
			
		||||
@ -65,8 +65,8 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      !{{ common.setup_ec2_windows() }}
 | 
			
		||||
      !{{ set_runner_specific_vars() }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      - name: Populate binary env
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
@ -105,8 +105,8 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          name: !{{ config["build_name"] }}
 | 
			
		||||
          path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}"
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch") }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="pytorch", checkout_pr_head=False) }}
 | 
			
		||||
      !{{ common.checkout(deep_clone=False, directory="builder", repository=common.builder_repo, branch=common.builder_branch, checkout_pr_head=False) }}
 | 
			
		||||
      - name: Populate binary env
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_android-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_android-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -37,7 +37,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -59,25 +59,25 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -141,5 +141,5 @@ jobs:
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_android-full-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_android-full-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -37,7 +37,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -59,25 +59,25 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -186,5 +186,5 @@ jobs:
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/_bazel-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/_bazel-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -42,7 +42,7 @@ jobs:
 | 
			
		||||
      reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -64,30 +64,30 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.3
 | 
			
		||||
        if: ${{ inputs.cuda-version != 'cpu' }}
 | 
			
		||||
 | 
			
		||||
      - name: Output disk space left
 | 
			
		||||
@ -196,5 +196,5 @@ jobs:
 | 
			
		||||
          file-suffix: bazel-${{ github.job }}_${{ steps.get-job-id.outputs.job-id }}
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								.github/workflows/_binary-build-linux.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.github/workflows/_binary-build-linux.yml
									
									
									
									
										vendored
									
									
								
							@ -78,7 +78,7 @@ on:
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: ${{ inputs.runs_on }}
 | 
			
		||||
    timeout-minutes: 180
 | 
			
		||||
    timeout-minutes: 210
 | 
			
		||||
    env:
 | 
			
		||||
      PYTORCH_ROOT: ${{ inputs.PYTORCH_ROOT }}
 | 
			
		||||
      BUILDER_ROOT: ${{ inputs.BUILDER_ROOT }}
 | 
			
		||||
@ -139,13 +139,13 @@ jobs:
 | 
			
		||||
        run: env
 | 
			
		||||
 | 
			
		||||
      - name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.github-token }}
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' }}
 | 
			
		||||
 | 
			
		||||
@ -173,7 +173,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch to pytorch dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -187,7 +186,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder to builder dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -213,7 +212,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ inputs.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -270,7 +269,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        if: always()
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Chown workspace
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								.github/workflows/_binary-test-linux.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.github/workflows/_binary-test-linux.yml
									
									
									
									
										vendored
									
									
								
							@ -127,14 +127,14 @@ jobs:
 | 
			
		||||
          } >> "${GITHUB_ENV} }}"
 | 
			
		||||
 | 
			
		||||
      - name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.github-token }}
 | 
			
		||||
 | 
			
		||||
        # Setup the environment
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: ${{ inputs.build_environment == 'linux-aarch64-binary-manywheel' }}
 | 
			
		||||
 | 
			
		||||
@ -155,7 +155,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch to pytorch dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
 | 
			
		||||
@ -168,7 +167,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder to builder dir
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -199,12 +198,12 @@ jobs:
 | 
			
		||||
          path: "${{ runner.temp }}/artifacts/"
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.3
 | 
			
		||||
        if: ${{ inputs.GPU_ARCH_TYPE == 'cuda' && steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        if: ${{ steps.filter.outputs.is-test-matrix-empty == 'False' }}
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ inputs.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -214,7 +213,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        if: always()
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Chown workspace
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/_binary-upload.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/_binary-upload.yml
									
									
									
									
										vendored
									
									
								
							@ -95,7 +95,7 @@ jobs:
 | 
			
		||||
      SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_buck-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_buck-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -23,7 +23,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -44,7 +44,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{ matrix.runner }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Set up JDK 8
 | 
			
		||||
        uses: actions/setup-java@v3
 | 
			
		||||
@ -53,7 +53,7 @@ jobs:
 | 
			
		||||
          distribution: 'temurin'
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: 3.8
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_docs.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_docs.yml
									
									
									
									
										vendored
									
									
								
							@ -66,7 +66,7 @@ jobs:
 | 
			
		||||
    name: build-docs-${{ matrix.docs_type }}-${{ inputs.push }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          instructions: |
 | 
			
		||||
@ -77,19 +77,19 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -163,7 +163,7 @@ jobs:
 | 
			
		||||
          retention-days: 14
 | 
			
		||||
          s3-bucket: doc-previews
 | 
			
		||||
          if-no-files-found: error
 | 
			
		||||
          path: pytorch.github.io/docs/main/
 | 
			
		||||
          path: pytorch_docs/main/
 | 
			
		||||
          s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}
 | 
			
		||||
 | 
			
		||||
      - name: Upload C++ Docs Preview
 | 
			
		||||
@ -187,5 +187,5 @@ jobs:
 | 
			
		||||
          s3-prefix: pytorch/pytorch/${{ github.event.pull_request.number }}/functorchdocs
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_ios-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_ios-build-test.yml
									
									
									
									
										vendored
									
									
								
							@ -46,7 +46,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -80,7 +80,7 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Populate CI build options
 | 
			
		||||
        shell: bash
 | 
			
		||||
@ -102,7 +102,7 @@ jobs:
 | 
			
		||||
            brew install libtool
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda for iOS
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: "3.9"
 | 
			
		||||
          environment-file: .github/requirements/conda-env-iOS.txt
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/_linux-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/_linux-build.yml
									
									
									
									
										vendored
									
									
								
							@ -73,7 +73,7 @@ jobs:
 | 
			
		||||
      test-matrix: ${{ steps.filter.outputs.test-matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
@ -82,14 +82,14 @@ jobs:
 | 
			
		||||
      # checkout because when we run this action we don't *have* a local
 | 
			
		||||
      # checkout. In other cases you should prefer a local checkout.
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image-name }}
 | 
			
		||||
 | 
			
		||||
@ -103,7 +103,7 @@ jobs:
 | 
			
		||||
          echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -209,5 +209,5 @@ jobs:
 | 
			
		||||
          path: sccache-stats-*.json
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/_linux-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/_linux-test.yml
									
									
									
									
										vendored
									
									
								
							@ -57,7 +57,7 @@ jobs:
 | 
			
		||||
    timeout-minutes: ${{ matrix.mem_leak_check == 'mem_leak_check' && 600 || inputs.timeout-minutes }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup SSH (Click me for login details)
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-ssh@release/2.3
 | 
			
		||||
        if: ${{ !contains(matrix.runner, 'gcp.a100') }}
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
@ -66,14 +66,14 @@ jobs:
 | 
			
		||||
              docker exec -it $(docker container ps --format '{{.ID}}') bash
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Calculate docker image
 | 
			
		||||
        id: calculate-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -87,13 +87,13 @@ jobs:
 | 
			
		||||
          echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        id: install-nvidia-driver
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.3
 | 
			
		||||
        if: contains(inputs.build-environment, 'cuda') && !contains(matrix.config, 'nogpu')
 | 
			
		||||
 | 
			
		||||
      - name: Lock NVIDIA A100 40GB Frequency
 | 
			
		||||
@ -307,7 +307,7 @@ jobs:
 | 
			
		||||
          path: ./**/core.[1-9]*
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      # NB: We are currently having an intermittent GPU-related issue on G5 runners with
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/_mac-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/_mac-build.yml
									
									
									
									
										vendored
									
									
								
							@ -71,11 +71,11 @@ jobs:
 | 
			
		||||
      test-matrix: ${{ steps.filter.outputs.test-matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Clean up disk space before running MacOS workflow
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.3
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Set xcode version
 | 
			
		||||
        env:
 | 
			
		||||
@ -87,7 +87,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        if: inputs.environment-file == ''
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -97,7 +97,7 @@ jobs:
 | 
			
		||||
      # environment even though the arch is x86-64
 | 
			
		||||
      - name: Setup miniconda using the provided environment file
 | 
			
		||||
        if: inputs.environment-file != ''
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: ${{ inputs.environment-file }}
 | 
			
		||||
@ -207,4 +207,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_mac-test-mps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_mac-test-mps.yml
									
									
									
									
										vendored
									
									
								
							@ -40,7 +40,7 @@ jobs:
 | 
			
		||||
      reenabled-issues: ${{ steps.filter.outputs.reenabled-issues }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
@ -81,7 +81,7 @@ jobs:
 | 
			
		||||
          use-gha: true
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -159,4 +159,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/_mac-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/_mac-test.yml
									
									
									
									
										vendored
									
									
								
							@ -79,11 +79,11 @@ jobs:
 | 
			
		||||
          done
 | 
			
		||||
 | 
			
		||||
      - name: Clean up disk space before running MacOS workflow
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.3
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Download build artifacts
 | 
			
		||||
        uses: ./.github/actions/download-build-artifacts
 | 
			
		||||
@ -98,7 +98,7 @@ jobs:
 | 
			
		||||
          use-gha: true
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: ${{ inputs.python-version }}
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}
 | 
			
		||||
@ -227,4 +227,4 @@ jobs:
 | 
			
		||||
      - name: Clean up disk space
 | 
			
		||||
        if: always()
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/check-disk-space@release/2.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_rocm-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_rocm-test.yml
									
									
									
									
										vendored
									
									
								
							@ -58,7 +58,7 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: true
 | 
			
		||||
 | 
			
		||||
@ -80,12 +80,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_run_android_tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_run_android_tests.yml
									
									
									
									
										vendored
									
									
								
							@ -23,7 +23,7 @@ jobs:
 | 
			
		||||
      keep-going: ${{ steps.filter.outputs.keep-going }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
@ -54,10 +54,10 @@ jobs:
 | 
			
		||||
      SUPPORT_ABI: '${{ matrix.support_abi }}'
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup miniconda
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-miniconda@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: 3.8
 | 
			
		||||
          environment-file: .github/requirements/conda-env-${{ runner.os }}-${{ runner.arch }}.txt
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_win-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_win-build.yml
									
									
									
									
										vendored
									
									
								
							@ -60,10 +60,10 @@ jobs:
 | 
			
		||||
          git config --global core.fsmonitor false
 | 
			
		||||
 | 
			
		||||
      - name: Clean up leftover processes on non-ephemeral Windows runner
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/cleanup-runner@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/cleanup-runner@release/2.3
 | 
			
		||||
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          instructions: |
 | 
			
		||||
@ -78,7 +78,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_win-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_win-test.yml
									
									
									
									
										vendored
									
									
								
							@ -54,10 +54,10 @@ jobs:
 | 
			
		||||
          git config --global core.fsmonitor false
 | 
			
		||||
 | 
			
		||||
      - name: Clean up leftover processes on non-ephemeral Windows runner
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/cleanup-runner@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/cleanup-runner@release/2.3
 | 
			
		||||
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          instructions: |
 | 
			
		||||
@ -73,7 +73,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          no-sudo: true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/_xpu-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/_xpu-test.yml
									
									
									
									
										vendored
									
									
								
							@ -54,7 +54,7 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup XPU
 | 
			
		||||
        uses: ./.github/actions/setup-xpu
 | 
			
		||||
@ -72,12 +72,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ inputs.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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/build-triton-wheel.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/build-triton-wheel.yml
									
									
									
									
										vendored
									
									
								
							@ -3,7 +3,7 @@ name: Build Triton wheels
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
      - release/2.3
 | 
			
		||||
    tags:
 | 
			
		||||
      # NOTE: Binary build pipelines should only get triggered on release candidate builds
 | 
			
		||||
      # Release candidate tags look like: v1.11.0-rc1
 | 
			
		||||
@ -47,12 +47,12 @@ jobs:
 | 
			
		||||
      BUILD_DEVICE: ${{ matrix.device }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
@ -60,7 +60,7 @@ jobs:
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ env.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -125,7 +125,7 @@ jobs:
 | 
			
		||||
          path: ${{ runner.temp }}/artifacts/*
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
  upload-wheel:
 | 
			
		||||
@ -203,12 +203,12 @@ jobs:
 | 
			
		||||
      PY_VERS: ${{ matrix.py_vers }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
@ -216,7 +216,7 @@ jobs:
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ env.DOCKER_IMAGE }}
 | 
			
		||||
 | 
			
		||||
@ -252,7 +252,7 @@ jobs:
 | 
			
		||||
          path: ${{ runner.temp }}/artifacts/*
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
  upload-conda:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/check-labels.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/check-labels.yml
									
									
									
									
										vendored
									
									
								
							@ -31,7 +31,7 @@ jobs:
 | 
			
		||||
    runs-on: linux.20_04.4x
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Run close_nonexistent_disable_issues.py
 | 
			
		||||
        env:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/docker-builds.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/docker-builds.yml
									
									
									
									
										vendored
									
									
								
							@ -74,21 +74,21 @@ jobs:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      # deep clone (fetch-depth 0) required for git merge-base
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Setup Linux
 | 
			
		||||
        uses: ./.github/actions/setup-linux
 | 
			
		||||
 | 
			
		||||
      - name: Build docker image
 | 
			
		||||
        id: build-docker-image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/calculate-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: ${{ matrix.docker-image-name }}
 | 
			
		||||
          always-rebuild: true
 | 
			
		||||
          push: true
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.build-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
@ -120,5 +120,5 @@ jobs:
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								.github/workflows/docker-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/docker-release.yml
									
									
									
									
										vendored
									
									
								
							@ -7,6 +7,7 @@ on:
 | 
			
		||||
      - Dockerfile
 | 
			
		||||
      - docker.Makefile
 | 
			
		||||
      - .github/workflows/docker-release.yml
 | 
			
		||||
      - .github/scripts/generate_docker_release_matrix.py
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - nightly
 | 
			
		||||
@ -40,7 +41,7 @@ jobs:
 | 
			
		||||
      matrix: ${{ steps.generate-matrix.outputs.matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: true
 | 
			
		||||
@ -68,7 +69,7 @@ jobs:
 | 
			
		||||
      CUDNN_VERSION: ${{ matrix.cudnn_version }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          github-secret: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
@ -129,17 +130,27 @@ jobs:
 | 
			
		||||
        if: ${{ github.event.ref == 'refs/heads/nightly' && matrix.image_type == 'runtime' }}
 | 
			
		||||
        run: |
 | 
			
		||||
          PYTORCH_DOCKER_TAG="${PYTORCH_VERSION}-cuda${CUDA_VERSION_SHORT}-cudnn${CUDNN_VERSION}-runtime"
 | 
			
		||||
          CUDA_SUFFIX="-cu${CUDA_VERSION}"
 | 
			
		||||
          if [[ ${CUDA_VERSION_SHORT} == "cpu" ]]; then
 | 
			
		||||
            PYTORCH_DOCKER_TAG="${PYTORCH_VERSION}-runtime"
 | 
			
		||||
            CUDA_SUFFIX=""
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
          PYTORCH_NIGHTLY_COMMIT=$(docker run ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_DOCKER_TAG}" \
 | 
			
		||||
                                          python -c 'import torch; print(torch.version.git_version[:7],end="")')
 | 
			
		||||
 | 
			
		||||
          docker tag ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_DOCKER_TAG}" \
 | 
			
		||||
                 ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}-cu${CUDA_VERSION}"
 | 
			
		||||
          docker push ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}-cu${CUDA_VERSION}"
 | 
			
		||||
                 ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}${CUDA_SUFFIX}"
 | 
			
		||||
 | 
			
		||||
          docker push ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}${CUDA_SUFFIX}"
 | 
			
		||||
 | 
			
		||||
          # Please note, here we ned to pin specific verison of CUDA as with latest label
 | 
			
		||||
          if [[ ${CUDA_VERSION_SHORT} == "12.1" ]]; then
 | 
			
		||||
            docker tag ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}${CUDA_SUFFIX}" \
 | 
			
		||||
                    ghcr.io/pytorch/pytorch-nightly:latest
 | 
			
		||||
            docker push ghcr.io/pytorch/pytorch-nightly:latest
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
          docker tag ghcr.io/pytorch/pytorch-nightly:"${PYTORCH_NIGHTLY_COMMIT}-cu${CUDA_VERSION}" \
 | 
			
		||||
                 ghcr.io/pytorch/pytorch-nightly:latest
 | 
			
		||||
          docker push ghcr.io/pytorch/pytorch-nightly:latest
 | 
			
		||||
      - name: Teardown Linux
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/teardown-linux@release/2.3
 | 
			
		||||
        if: always()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										30
									
								
								.github/workflows/generated-linux-aarch64-binary-manywheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/workflows/generated-linux-aarch64-binary-manywheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -48,7 +48,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      runs_on: linux.arm64.2xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
@ -69,7 +69,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu-aarch64
 | 
			
		||||
      build_environment: linux-aarch64-binary-manywheel
 | 
			
		||||
@ -91,7 +91,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu-aarch64
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -111,7 +111,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      runs_on: linux.arm64.2xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
@ -132,7 +132,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu-aarch64
 | 
			
		||||
      build_environment: linux-aarch64-binary-manywheel
 | 
			
		||||
@ -154,7 +154,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu-aarch64
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -174,7 +174,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      runs_on: linux.arm64.2xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
@ -195,7 +195,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu-aarch64
 | 
			
		||||
      build_environment: linux-aarch64-binary-manywheel
 | 
			
		||||
@ -217,7 +217,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu-aarch64
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -237,7 +237,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      runs_on: linux.arm64.2xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
@ -258,7 +258,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu-aarch64
 | 
			
		||||
      build_environment: linux-aarch64-binary-manywheel
 | 
			
		||||
@ -280,7 +280,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu-aarch64
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -300,7 +300,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      runs_on: linux.arm64.2xlarge
 | 
			
		||||
      ALPINE_IMAGE: "arm64v8/alpine"
 | 
			
		||||
@ -321,7 +321,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu-aarch64
 | 
			
		||||
      build_environment: linux-aarch64-binary-manywheel
 | 
			
		||||
@ -343,7 +343,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-aarch64
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxaarch64-builder:cpu-aarch64-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu-aarch64
 | 
			
		||||
    secrets:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										90
									
								
								.github/workflows/generated-linux-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								.github/workflows/generated-linux-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -48,7 +48,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -66,7 +66,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -87,7 +87,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -108,7 +108,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_8-cuda11_8
 | 
			
		||||
@ -128,7 +128,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -150,7 +150,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -171,7 +171,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_8-cuda12_1
 | 
			
		||||
@ -191,7 +191,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -213,7 +213,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -233,7 +233,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -251,7 +251,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -272,7 +272,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -293,7 +293,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_9-cuda11_8
 | 
			
		||||
@ -313,7 +313,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -335,7 +335,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -356,7 +356,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_9-cuda12_1
 | 
			
		||||
@ -376,7 +376,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -398,7 +398,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -418,7 +418,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -436,7 +436,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -457,7 +457,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -478,7 +478,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_10-cuda11_8
 | 
			
		||||
@ -498,7 +498,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -520,7 +520,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -541,7 +541,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_10-cuda12_1
 | 
			
		||||
@ -561,7 +561,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -583,7 +583,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -603,7 +603,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -621,7 +621,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -642,7 +642,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -663,7 +663,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_11-cuda11_8
 | 
			
		||||
@ -683,7 +683,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -705,7 +705,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -726,7 +726,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_11-cuda12_1
 | 
			
		||||
@ -746,7 +746,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -768,7 +768,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -788,7 +788,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -806,7 +806,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cpu
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -827,7 +827,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -848,7 +848,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_12-cuda11_8
 | 
			
		||||
@ -868,7 +868,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -890,7 +890,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -911,7 +911,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      runs_on: linux.24xlarge
 | 
			
		||||
      build_name: conda-py3_12-cuda12_1
 | 
			
		||||
@ -931,7 +931,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-conda
 | 
			
		||||
@ -953,7 +953,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/generated-linux-binary-libtorch-cxx11-abi-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/generated-linux-binary-libtorch-cxx11-abi-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -43,7 +43,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -62,7 +62,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								.github/workflows/generated-linux-binary-libtorch-cxx11-abi-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/generated-linux-binary-libtorch-cxx11-abi-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -48,7 +48,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -67,7 +67,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -89,7 +89,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -111,7 +111,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -131,7 +131,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -154,7 +154,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -176,7 +176,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -196,7 +196,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -219,7 +219,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -241,7 +241,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-rocm5_7-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -263,7 +263,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
    steps:
 | 
			
		||||
@ -277,7 +277,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -289,7 +288,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -305,7 +304,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/libtorch-cxx11-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/libtorch-cxx11-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -325,7 +324,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-rocm5_7-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -347,7 +346,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-rocm6_0-shared-with-deps-cxx11-abi
 | 
			
		||||
@ -369,7 +368,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
    steps:
 | 
			
		||||
@ -383,7 +382,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -395,7 +393,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -411,7 +409,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/libtorch-cxx11-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/libtorch-cxx11-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -431,7 +429,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-rocm6_0-shared-with-deps-cxx11-abi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/generated-linux-binary-libtorch-pre-cxx11-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/generated-linux-binary-libtorch-pre-cxx11-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -43,7 +43,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -62,7 +62,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-pre-cxx11
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								.github/workflows/generated-linux-binary-libtorch-pre-cxx11-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/generated-linux-binary-libtorch-pre-cxx11-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -48,7 +48,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -67,7 +67,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -89,7 +89,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -111,7 +111,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -131,7 +131,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -154,7 +154,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda11_8-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -176,7 +176,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -196,7 +196,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -219,7 +219,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-cuda12_1-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -241,7 +241,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-rocm5_7-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -263,7 +263,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
    steps:
 | 
			
		||||
@ -277,7 +277,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -289,7 +288,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -305,7 +304,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -325,7 +324,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-rocm5_7-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -347,7 +346,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-rocm6_0-shared-with-deps-pre-cxx11
 | 
			
		||||
@ -369,7 +368,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
    steps:
 | 
			
		||||
@ -383,7 +382,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -395,7 +393,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -411,7 +409,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -431,7 +429,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: pre-cxx11
 | 
			
		||||
      build_name: libtorch-rocm6_0-shared-with-deps-pre-cxx11
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/generated-linux-binary-manywheel-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/generated-linux-binary-manywheel-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -44,7 +44,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -64,7 +64,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -84,7 +84,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -104,7 +104,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										230
									
								
								.github/workflows/generated-linux-binary-manywheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										230
									
								
								.github/workflows/generated-linux-binary-manywheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -48,7 +48,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -66,7 +66,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -87,7 +87,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -107,7 +107,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu-cxx11-abi
 | 
			
		||||
@ -126,7 +126,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu-cxx11-abi
 | 
			
		||||
@ -148,7 +148,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cpu-cxx11-abi
 | 
			
		||||
@ -170,7 +170,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -190,7 +190,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -212,7 +212,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -233,7 +233,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -253,7 +253,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -275,7 +275,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -296,7 +296,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-rocm5_7
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -317,7 +317,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -330,7 +330,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -342,7 +341,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -358,7 +357,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -378,7 +377,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-rocm5_7
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -399,7 +398,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-rocm6_0
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -420,7 +419,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -433,7 +432,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -445,7 +443,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -461,7 +459,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -481,7 +479,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: manywheel-py3_8-rocm6_0
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -501,7 +499,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -519,7 +517,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -540,7 +538,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -560,7 +558,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu-cxx11-abi
 | 
			
		||||
@ -579,7 +577,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu-cxx11-abi
 | 
			
		||||
@ -601,7 +599,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cpu-cxx11-abi
 | 
			
		||||
@ -623,7 +621,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -643,7 +641,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -665,7 +663,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -686,7 +684,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -706,7 +704,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -728,7 +726,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -749,7 +747,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-rocm5_7
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -770,7 +768,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -783,7 +781,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -795,7 +792,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -811,7 +808,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -831,7 +828,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-rocm5_7
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -852,7 +849,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-rocm6_0
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -873,7 +870,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -886,7 +883,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -898,7 +894,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -914,7 +910,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -934,7 +930,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: manywheel-py3_9-rocm6_0
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -954,7 +950,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -972,7 +968,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -993,7 +989,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1013,7 +1009,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu-cxx11-abi
 | 
			
		||||
@ -1032,7 +1028,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu-cxx11-abi
 | 
			
		||||
@ -1054,7 +1050,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cpu-cxx11-abi
 | 
			
		||||
@ -1076,7 +1072,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1096,7 +1092,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1118,7 +1114,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1139,7 +1135,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1159,7 +1155,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1181,7 +1177,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1202,7 +1198,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-rocm5_7
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1223,7 +1219,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -1236,7 +1232,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1248,7 +1243,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1264,7 +1259,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -1284,7 +1279,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-rocm5_7
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1305,7 +1300,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-rocm6_0
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1326,7 +1321,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -1339,7 +1334,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1351,7 +1345,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1367,7 +1361,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -1387,7 +1381,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: manywheel-py3_10-rocm6_0
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1407,7 +1401,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1425,7 +1419,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1446,7 +1440,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1466,7 +1460,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu-cxx11-abi
 | 
			
		||||
@ -1485,7 +1479,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu-cxx11-abi
 | 
			
		||||
@ -1507,7 +1501,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cpu-cxx11-abi
 | 
			
		||||
@ -1529,7 +1523,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1549,7 +1543,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1571,7 +1565,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1592,7 +1586,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1612,7 +1606,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1634,7 +1628,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1655,7 +1649,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-rocm5_7
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1676,7 +1670,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -1689,7 +1683,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1701,7 +1694,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1717,7 +1710,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -1737,7 +1730,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-rocm5_7
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1758,7 +1751,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-rocm6_0
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1779,7 +1772,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -1792,7 +1785,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1804,7 +1796,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1820,7 +1812,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -1840,7 +1832,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: manywheel-py3_11-rocm6_0
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1860,7 +1852,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1878,7 +1870,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -1899,7 +1891,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -1919,7 +1911,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu-cxx11-abi
 | 
			
		||||
@ -1938,7 +1930,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu-cxx11-abi
 | 
			
		||||
@ -1960,7 +1952,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu-cxx11-abi
 | 
			
		||||
      GPU_ARCH_TYPE: cpu-cxx11-abi
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-2.3
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cpu-cxx11-abi
 | 
			
		||||
@ -1982,7 +1974,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2002,7 +1994,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda11_8
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2024,7 +2016,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu118
 | 
			
		||||
      GPU_ARCH_VERSION: 11.8
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda11.8-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda11_8
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -2045,7 +2037,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2065,7 +2057,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda12_1
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2087,7 +2079,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: cu121
 | 
			
		||||
      GPU_ARCH_VERSION: 12.1
 | 
			
		||||
      GPU_ARCH_TYPE: cuda
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cuda12.1-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-cuda12_1
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -2108,7 +2100,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-rocm5_7
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2129,7 +2121,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -2142,7 +2134,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2154,7 +2145,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2170,7 +2161,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -2190,7 +2181,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm5.7
 | 
			
		||||
      GPU_ARCH_VERSION: 5.7
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm5.7-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-rocm5_7
 | 
			
		||||
    secrets:
 | 
			
		||||
@ -2211,7 +2202,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-rocm6_0
 | 
			
		||||
      build_environment: linux-binary-manywheel
 | 
			
		||||
@ -2232,7 +2223,7 @@ jobs:
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      SKIP_ALL_TESTS: 1
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup ROCm
 | 
			
		||||
@ -2245,7 +2236,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2257,7 +2247,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2273,7 +2263,7 @@ jobs:
 | 
			
		||||
      - name: Pull Docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
          docker-image: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      - name: Test Pytorch binary
 | 
			
		||||
        uses: ./pytorch/.github/actions/test-pytorch-binary
 | 
			
		||||
      - name: Teardown ROCm
 | 
			
		||||
@ -2293,7 +2283,7 @@ jobs:
 | 
			
		||||
      DESIRED_CUDA: rocm6.0
 | 
			
		||||
      GPU_ARCH_VERSION: 6.0
 | 
			
		||||
      GPU_ARCH_TYPE: rocm
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:rocm6.0-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: manywheel-py3_12-rocm6_0
 | 
			
		||||
    secrets:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								.github/workflows/generated-macos-arm64-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/generated-macos-arm64-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -77,7 +77,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -89,7 +88,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -141,7 +140,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: conda-py3_8-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -195,7 +194,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -207,7 +205,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -259,7 +257,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: conda-py3_9-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -313,7 +311,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -325,7 +322,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -377,7 +374,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: conda-py3_10-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -431,7 +428,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -443,7 +439,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -495,7 +491,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: conda-py3_11-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -549,7 +545,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -561,7 +556,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -613,7 +608,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/conda-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: conda-py3_12-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								.github/workflows/generated-macos-arm64-binary-libtorch-cxx11-abi-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/generated-macos-arm64-binary-libtorch-cxx11-abi-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -81,7 +81,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -93,7 +92,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -145,7 +144,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/libtorch-cxx11-builder:cpu-2.3
 | 
			
		||||
      LIBTORCH_VARIANT: shared-with-deps
 | 
			
		||||
      DESIRED_DEVTOOLSET: cxx11-abi
 | 
			
		||||
      build_name: libtorch-cpu-shared-with-deps-cxx11-abi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/generated-macos-arm64-binary-wheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -78,7 +78,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -90,7 +89,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -142,7 +141,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.8"
 | 
			
		||||
      build_name: wheel-py3_8-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -197,7 +196,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -209,7 +207,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -261,7 +259,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.9"
 | 
			
		||||
      build_name: wheel-py3_9-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -316,7 +314,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -328,7 +325,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -380,7 +377,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.10"
 | 
			
		||||
      build_name: wheel-py3_10-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -435,7 +432,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -447,7 +443,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -499,7 +495,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.11"
 | 
			
		||||
      build_name: wheel-py3_11-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
@ -554,7 +550,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -566,7 +561,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -618,7 +613,7 @@ jobs:
 | 
			
		||||
      #       favor of GPU_ARCH_VERSION
 | 
			
		||||
      DESIRED_CUDA: cpu
 | 
			
		||||
      GPU_ARCH_TYPE: cpu
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-main
 | 
			
		||||
      DOCKER_IMAGE: pytorch/manylinux-builder:cpu-2.3
 | 
			
		||||
      DESIRED_PYTHON: "3.12"
 | 
			
		||||
      build_name: wheel-py3_12-cpu
 | 
			
		||||
      use_s3: False
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										90
									
								
								.github/workflows/generated-windows-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								.github/workflows/generated-windows-binary-conda-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -93,7 +93,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -105,7 +104,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -210,7 +209,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -222,7 +220,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -336,7 +334,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -348,7 +345,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -454,7 +451,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -466,7 +462,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -581,7 +577,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -593,7 +588,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -699,7 +694,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -711,7 +705,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -825,7 +819,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -837,7 +830,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -942,7 +935,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -954,7 +946,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1068,7 +1060,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1080,7 +1071,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1186,7 +1177,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1198,7 +1188,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1313,7 +1303,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1325,7 +1314,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1431,7 +1420,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1443,7 +1431,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1557,7 +1545,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1569,7 +1556,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1674,7 +1661,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1686,7 +1672,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1800,7 +1786,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1812,7 +1797,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1918,7 +1903,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1930,7 +1914,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2045,7 +2029,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2057,7 +2040,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2163,7 +2146,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2175,7 +2157,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2289,7 +2271,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2301,7 +2282,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2406,7 +2387,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2418,7 +2398,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2532,7 +2512,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2544,7 +2523,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2650,7 +2629,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2662,7 +2640,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2777,7 +2755,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2789,7 +2766,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2895,7 +2872,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2907,7 +2883,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3021,7 +2997,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3033,7 +3008,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3138,7 +3113,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3150,7 +3124,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3264,7 +3238,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3276,7 +3249,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3382,7 +3355,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3394,7 +3366,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3509,7 +3481,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3521,7 +3492,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3627,7 +3598,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3639,7 +3609,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/generated-windows-binary-libtorch-debug-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/generated-windows-binary-libtorch-debug-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -90,7 +90,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -102,7 +101,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -211,7 +210,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -223,7 +221,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/generated-windows-binary-libtorch-debug-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/generated-windows-binary-libtorch-debug-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -97,7 +97,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -109,7 +108,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -218,7 +217,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -230,7 +228,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -352,7 +350,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -364,7 +361,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -474,7 +471,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -486,7 +482,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -609,7 +605,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -621,7 +616,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -731,7 +726,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -743,7 +737,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/generated-windows-binary-libtorch-release-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/generated-windows-binary-libtorch-release-main.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -90,7 +90,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -102,7 +101,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -211,7 +210,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -223,7 +221,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/generated-windows-binary-libtorch-release-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/generated-windows-binary-libtorch-release-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -97,7 +97,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -109,7 +108,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -218,7 +217,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -230,7 +228,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -352,7 +350,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -364,7 +361,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -474,7 +471,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -486,7 +482,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -609,7 +605,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -621,7 +616,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -731,7 +726,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -743,7 +737,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										90
									
								
								.github/workflows/generated-windows-binary-wheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								.github/workflows/generated-windows-binary-wheel-nightly.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -94,7 +94,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -106,7 +105,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -211,7 +210,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -223,7 +221,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -338,7 +336,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -350,7 +347,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -456,7 +453,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -468,7 +464,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -584,7 +580,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -596,7 +591,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -702,7 +697,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -714,7 +708,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -829,7 +823,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -841,7 +834,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -946,7 +939,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -958,7 +950,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1073,7 +1065,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1085,7 +1076,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1191,7 +1182,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1203,7 +1193,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1319,7 +1309,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1331,7 +1320,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1437,7 +1426,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1449,7 +1437,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1564,7 +1552,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1576,7 +1563,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1681,7 +1668,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1693,7 +1679,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1808,7 +1794,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1820,7 +1805,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -1926,7 +1911,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -1938,7 +1922,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2054,7 +2038,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2066,7 +2049,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2172,7 +2155,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2184,7 +2166,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2299,7 +2281,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2311,7 +2292,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2416,7 +2397,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2428,7 +2408,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2543,7 +2523,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2555,7 +2534,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2661,7 +2640,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2673,7 +2651,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2789,7 +2767,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2801,7 +2778,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -2907,7 +2884,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -2919,7 +2895,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3034,7 +3010,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3046,7 +3021,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3151,7 +3126,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3163,7 +3137,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3278,7 +3252,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3290,7 +3263,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3396,7 +3369,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3408,7 +3380,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3524,7 +3496,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3536,7 +3507,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
@ -3642,7 +3613,6 @@ jobs:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          path: pytorch
 | 
			
		||||
          quiet-checkout: true
 | 
			
		||||
@ -3654,7 +3624,7 @@ jobs:
 | 
			
		||||
      - name: Checkout pytorch/builder
 | 
			
		||||
        uses: malfet/checkout@silent-checkout
 | 
			
		||||
        with:
 | 
			
		||||
          ref: main
 | 
			
		||||
          ref: release/2.3
 | 
			
		||||
          submodules: recursive
 | 
			
		||||
          repository: pytorch/builder
 | 
			
		||||
          path: builder
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/inductor.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/inductor.yml
									
									
									
									
										vendored
									
									
								
							@ -111,7 +111,7 @@ jobs:
 | 
			
		||||
    name: linux-jammy-cpu-py3.8-gcc11-inductor
 | 
			
		||||
    uses: ./.github/workflows/_linux-build.yml
 | 
			
		||||
    with:
 | 
			
		||||
      build-environment: linux-jammy-py3_8-gcc11-build
 | 
			
		||||
      build-environment: linux-jammy-py3.8-gcc11-build
 | 
			
		||||
      docker-image-name: pytorch-linux-jammy-py3.8-gcc11-inductor-benchmarks
 | 
			
		||||
      test-matrix: |
 | 
			
		||||
        { include: [
 | 
			
		||||
@ -135,7 +135,7 @@ jobs:
 | 
			
		||||
    uses: ./.github/workflows/_linux-test.yml
 | 
			
		||||
    needs: linux-jammy-cpu-py3_8-gcc11-inductor-build
 | 
			
		||||
    with:
 | 
			
		||||
      build-environment: linux-jammy-py3_8-gcc11-build
 | 
			
		||||
      build-environment: linux-jammy-py3.8-gcc11-build
 | 
			
		||||
      docker-image: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.docker-image }}
 | 
			
		||||
      test-matrix: ${{ needs.linux-jammy-cpu-py3_8-gcc11-inductor-build.outputs.test-matrix }}
 | 
			
		||||
    secrets:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/lint-bc.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/lint-bc.yml
									
									
									
									
										vendored
									
									
								
							@ -15,7 +15,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Run BC Lint Action
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/bc-lint@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/bc-lint@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          repo: ${{ github.event.pull_request.head.repo.full_name }}
 | 
			
		||||
          base_sha: ${{ github.event.pull_request.base.sha }}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							@ -16,7 +16,7 @@ permissions: read-all
 | 
			
		||||
# When any other step fails, it's job will be retried once by retryBot.
 | 
			
		||||
jobs:
 | 
			
		||||
  lintrunner-clang:
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      timeout: 120
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
@ -32,7 +32,7 @@ jobs:
 | 
			
		||||
        .github/scripts/lintrunner.sh
 | 
			
		||||
 | 
			
		||||
  lintrunner-noclang:
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      timeout: 120
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
@ -47,7 +47,7 @@ jobs:
 | 
			
		||||
        .github/scripts/lintrunner.sh
 | 
			
		||||
 | 
			
		||||
  quick-checks:
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
      docker-image: pytorch-linux-focal-linter
 | 
			
		||||
@ -88,7 +88,7 @@ jobs:
 | 
			
		||||
    if: github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'skip-pr-sanity-checks')
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
          fetch-depth: -1
 | 
			
		||||
@ -101,7 +101,7 @@ jobs:
 | 
			
		||||
          bash .github/scripts/pr-sanity-check.sh
 | 
			
		||||
 | 
			
		||||
  workflow-checks:
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
      docker-image: pytorch-linux-focal-linter
 | 
			
		||||
@ -113,6 +113,7 @@ jobs:
 | 
			
		||||
        CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
 | 
			
		||||
        conda activate "${CONDA_ENV}"
 | 
			
		||||
 | 
			
		||||
        export RELEASE_VERSION_TAG="2.3"
 | 
			
		||||
        # Regenerate workflows
 | 
			
		||||
        .github/scripts/generate_ci_workflows.py
 | 
			
		||||
 | 
			
		||||
@ -137,7 +138,7 @@ jobs:
 | 
			
		||||
        exit $RC
 | 
			
		||||
 | 
			
		||||
  toc:
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
      docker-image: pytorch-linux-focal-linter
 | 
			
		||||
@ -175,7 +176,7 @@ jobs:
 | 
			
		||||
  test-tools:
 | 
			
		||||
    name: Test tools
 | 
			
		||||
    if: ${{ github.repository == 'pytorch/pytorch' }}
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
 | 
			
		||||
    uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3
 | 
			
		||||
    with:
 | 
			
		||||
      runner: linux.2xlarge
 | 
			
		||||
      docker-image: pytorch-linux-focal-linter
 | 
			
		||||
@ -196,7 +197,7 @@ jobs:
 | 
			
		||||
    runs-on: linux.20_04.4x
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
@ -226,15 +227,15 @@ jobs:
 | 
			
		||||
      # [see note: pytorch repo ref]
 | 
			
		||||
      # deep clone (fetch-depth 0) required, to allow us to use git log
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
      - name: Setup Python 3.5
 | 
			
		||||
      - name: Setup Python 3.6
 | 
			
		||||
        if: matrix.test_type == 'older_python_version'
 | 
			
		||||
        uses: actions/setup-python@v4
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: '3.5'
 | 
			
		||||
          python-version: '3.6'
 | 
			
		||||
          architecture: x64
 | 
			
		||||
          check-latest: false
 | 
			
		||||
          cache: pip
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ jobs:
 | 
			
		||||
    environment: upload-stats
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							@ -41,7 +41,7 @@ jobs:
 | 
			
		||||
    environment: update-commit-hash
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: update-vision-commit-hash
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@release/2.3
 | 
			
		||||
        if: ${{ github.event_name == 'schedule' }}
 | 
			
		||||
        with:
 | 
			
		||||
          repo-name: vision
 | 
			
		||||
@ -56,7 +56,7 @@ jobs:
 | 
			
		||||
    environment: update-commit-hash
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: update-audio-commit-hash
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@release/2.3
 | 
			
		||||
        if: ${{ github.event_name == 'schedule' }}
 | 
			
		||||
        with:
 | 
			
		||||
          repo-name: audio
 | 
			
		||||
@ -71,7 +71,7 @@ jobs:
 | 
			
		||||
    environment: update-commit-hash
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: update-executorch-commit-hash
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@release/2.3
 | 
			
		||||
        if: ${{ github.event_name == 'schedule' }}
 | 
			
		||||
        with:
 | 
			
		||||
          repo-name: executorch
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/pull.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/pull.yml
									
									
									
									
										vendored
									
									
								
							@ -311,7 +311,7 @@ jobs:
 | 
			
		||||
    name: linux-focal-py3_8-clang9-xla
 | 
			
		||||
    uses: ./.github/workflows/_linux-build.yml
 | 
			
		||||
    with:
 | 
			
		||||
      build-environment: linux-focal-py3_8-clang9-xla
 | 
			
		||||
      build-environment: linux-focal-py3.8-clang9-xla
 | 
			
		||||
      docker-image-name: 308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/xla_base:v1.1-lite
 | 
			
		||||
      test-matrix: |
 | 
			
		||||
        { include: [
 | 
			
		||||
@ -323,7 +323,7 @@ jobs:
 | 
			
		||||
    uses: ./.github/workflows/_linux-test.yml
 | 
			
		||||
    needs: linux-focal-py3_8-clang9-xla-build
 | 
			
		||||
    with:
 | 
			
		||||
      build-environment: linux-focal-py3_8-clang9-xla
 | 
			
		||||
      build-environment: linux-focal-py3.8-clang9-xla
 | 
			
		||||
      docker-image: ${{ needs.linux-focal-py3_8-clang9-xla-build.outputs.docker-image }}
 | 
			
		||||
      test-matrix: ${{ needs.linux-focal-py3_8-clang9-xla-build.outputs.test-matrix }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: 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@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image-name: pytorch-linux-focal-cuda12.1-cudnn8-py3-gcc9
 | 
			
		||||
 | 
			
		||||
@ -32,13 +32,13 @@ jobs:
 | 
			
		||||
          echo "docker pull ghcr.io/pytorch/ci-image:${tag/:/-}"
 | 
			
		||||
 | 
			
		||||
      - name: Pull docker image
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/pull-docker-image@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          docker-image: ${{ steps.calculate-docker-image.outputs.docker-image }}
 | 
			
		||||
 | 
			
		||||
      - name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
 | 
			
		||||
        id: install-nvidia-driver
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/setup-nvidia@release/2.3
 | 
			
		||||
 | 
			
		||||
      - name: Clone PyTorch
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/target_determination.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/target_determination.yml
									
									
									
									
										vendored
									
									
								
							@ -14,7 +14,7 @@ jobs:
 | 
			
		||||
      # checkout because when we run this action we don't *have* a local
 | 
			
		||||
      # checkout. In other cases you should prefer a local checkout.
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/update-viablestrict.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/update-viablestrict.yml
									
									
									
									
										vendored
									
									
								
							@ -16,7 +16,7 @@ jobs:
 | 
			
		||||
    environment: ${{ (github.event_name == 'schedule') && 'mergebot' || '' }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Update viable/strict
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-viablestrict@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-viablestrict@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          repository: pytorch/pytorch
 | 
			
		||||
          stable-branch: viable/strict
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/update_pytorch_labels.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/update_pytorch_labels.yml
									
									
									
									
										vendored
									
									
								
							@ -17,7 +17,7 @@ jobs:
 | 
			
		||||
      contents: read
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
          submodules: false
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/upload-alerts.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/upload-alerts.yml
									
									
									
									
										vendored
									
									
								
							@ -44,7 +44,7 @@ jobs:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
 | 
			
		||||
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/upload-alerts@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/upload-alerts@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          alerts: '${{ steps.alert_creation_step.outputs.script-output }}'
 | 
			
		||||
          organization: "pytorch"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/upload-test-stats.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/upload-test-stats.yml
									
									
									
									
										vendored
									
									
								
							@ -39,7 +39,7 @@ jobs:
 | 
			
		||||
        run: echo "${TRIGGERING_WORKFLOW}"
 | 
			
		||||
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
 | 
			
		||||
      - uses: actions/setup-python@v4
 | 
			
		||||
        with:
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@ jobs:
 | 
			
		||||
    name: Upload dynamo performance stats for ${{ github.event.workflow_run.id }}, attempt ${{ github.event.workflow_run.run_attempt }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout PyTorch
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@main
 | 
			
		||||
        uses: pytorch/pytorch/.github/actions/checkout-pytorch@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: false
 | 
			
		||||
          fetch-depth: 1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/weekly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/weekly.yml
									
									
									
									
										vendored
									
									
								
							@ -21,7 +21,7 @@ jobs:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
      - name: update-xla-commit-hash
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          repo-name: xla
 | 
			
		||||
          branch: master
 | 
			
		||||
@ -30,7 +30,7 @@ jobs:
 | 
			
		||||
          updatebot-token: ${{ secrets.UPDATEBOT_TOKEN }}
 | 
			
		||||
          pytorchbot-token: ${{ secrets.GH_PYTORCHBOT_TOKEN }}
 | 
			
		||||
      - name: update-triton-commit-hash
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@main
 | 
			
		||||
        uses: pytorch/test-infra/.github/actions/update-commit-hash@release/2.3
 | 
			
		||||
        with:
 | 
			
		||||
          repo-owner: openai
 | 
			
		||||
          repo-name: triton
 | 
			
		||||
 | 
			
		||||
@ -218,7 +218,7 @@ Validate the release jobs for pytorch and domain libraries should be green. Vali
 | 
			
		||||
  * [TorchVision](https://hud.pytorch.org/hud/pytorch/vision/release%2F1.12)
 | 
			
		||||
  * [TorchAudio](https://hud.pytorch.org/hud/pytorch/audio/release%2F1.12)
 | 
			
		||||
 | 
			
		||||
Validate that the documentation build has completed and generated entry corresponding to the release in  [docs folder](https://github.com/pytorch/pytorch.github.io/tree/site/docs/) of pytorch.github.io repository
 | 
			
		||||
Validate that the documentation build has completed and generated entry corresponding to the release in  [docs repository](https://github.com/pytorch/docs/tree/main/).
 | 
			
		||||
 | 
			
		||||
### Cherry Picking Fixes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -13,6 +13,10 @@ namespace at {
 | 
			
		||||
TORCH_API ScalarType toScalarType(const DLDataType& dtype);
 | 
			
		||||
TORCH_API DLManagedTensor* toDLPack(const Tensor& src);
 | 
			
		||||
TORCH_API Tensor fromDLPack(DLManagedTensor* src);
 | 
			
		||||
C10_DEPRECATED_MESSAGE("Please migrate to a non-const variant")
 | 
			
		||||
inline Tensor fromDLPack(const DLManagedTensor* src) {
 | 
			
		||||
  return fromDLPack(const_cast<DLManagedTensor*>(src));
 | 
			
		||||
}
 | 
			
		||||
TORCH_API Tensor
 | 
			
		||||
fromDLPack(DLManagedTensor* src, std::function<void(void*)> deleter);
 | 
			
		||||
TORCH_API DLDataType getDLDataType(const Tensor& t);
 | 
			
		||||
 | 
			
		||||
@ -303,6 +303,29 @@ Tensor FunctionalInverses::_nested_view_from_buffer_inverse(const Tensor& base,
 | 
			
		||||
    return Tensor();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor FunctionalInverses::_nested_view_from_jagged_inverse(const Tensor& base, const Tensor& mutated_view, InverseReturnMode inverse_return_mode, const Tensor& offsets, const Tensor& dummy, const std::optional<Tensor>& lengths, int64_t ragged_idx) {
 | 
			
		||||
  auto values = at::_nested_get_values(mutated_view);
 | 
			
		||||
  if (inverse_return_mode != InverseReturnMode::NeverView) {
 | 
			
		||||
    return values;
 | 
			
		||||
  } else {
 | 
			
		||||
    return values.clone(/*memory_format=*/at::MemoryFormat::Contiguous);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor FunctionalInverses::_nested_get_values_inverse(const Tensor& base, const Tensor& mutated_view, InverseReturnMode inverse_return_mode) {
 | 
			
		||||
  auto offsets = at::_nested_get_offsets(base);
 | 
			
		||||
  auto lengths = at::_nested_get_lengths(base);
 | 
			
		||||
  auto ragged_idx = at::_nested_get_ragged_idx(base);
 | 
			
		||||
  auto dummy = at::_nested_get_jagged_dummy(base);
 | 
			
		||||
  auto nt = at::_nested_view_from_jagged(mutated_view, offsets, dummy, lengths, ragged_idx);
 | 
			
		||||
 | 
			
		||||
  if (inverse_return_mode != InverseReturnMode::NeverView) {
 | 
			
		||||
    return nt;
 | 
			
		||||
  } else {
 | 
			
		||||
    return nt.clone(/*memory_format=*/at::MemoryFormat::Contiguous);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor FunctionalInverses::unsqueeze_inverse(const Tensor& base, const Tensor& mutated_view, InverseReturnMode inverse_return_mode, int64_t dim) {
 | 
			
		||||
    if (inverse_return_mode != InverseReturnMode::NeverView) {
 | 
			
		||||
      return at::squeeze(mutated_view, dim);
 | 
			
		||||
 | 
			
		||||
@ -173,11 +173,22 @@ void MPSStream::copy(id<MTLBuffer> srcBuffer,
 | 
			
		||||
      endKernelCoalescing();
 | 
			
		||||
      id<MTLBlitCommandEncoder> blitEncoder = [commandBuffer() blitCommandEncoder];
 | 
			
		||||
 | 
			
		||||
      [blitEncoder copyFromBuffer:srcBuffer
 | 
			
		||||
                     sourceOffset:(NSUInteger)srcOffset
 | 
			
		||||
                         toBuffer:dstBuffer
 | 
			
		||||
                destinationOffset:(NSUInteger)dstOffset
 | 
			
		||||
                             size:(NSUInteger)length];
 | 
			
		||||
      // For some reason copyFromBuffer for 4Gb fails without returning an error
 | 
			
		||||
      // See https://github.com/pytorch/pytorch/issues/124335
 | 
			
		||||
      // Workaround by batching copy commands into 2Gb chunks
 | 
			
		||||
      constexpr size_t max_copy_size = 0x80000000; // 2GB
 | 
			
		||||
      size_t bytes_copied = 0;
 | 
			
		||||
      size_t bytes_remains = length;
 | 
			
		||||
      while (bytes_remains > 0) {
 | 
			
		||||
        NSUInteger bytes_to_copy = std::min(max_copy_size, bytes_remains);
 | 
			
		||||
        [blitEncoder copyFromBuffer:srcBuffer
 | 
			
		||||
                       sourceOffset:(NSUInteger)srcOffset + bytes_copied
 | 
			
		||||
                           toBuffer:dstBuffer
 | 
			
		||||
                  destinationOffset:(NSUInteger)dstOffset + bytes_copied
 | 
			
		||||
                               size:bytes_to_copy];
 | 
			
		||||
        bytes_copied += bytes_to_copy;
 | 
			
		||||
        bytes_remains -= bytes_to_copy;
 | 
			
		||||
      }
 | 
			
		||||
      [blitEncoder endEncoding];
 | 
			
		||||
 | 
			
		||||
      // profilerId has a value only if copy profiling is enabled
 | 
			
		||||
 | 
			
		||||
@ -850,19 +850,13 @@ void try_plans(
 | 
			
		||||
      benchmark_cache.update(key, plan);
 | 
			
		||||
      return;
 | 
			
		||||
    } catch (cudnn_frontend::cudnnException& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a cudnnException: ", e.what());
 | 
			
		||||
    } catch (CuDNNError& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a CuDNNError: ", e.what());
 | 
			
		||||
    } catch (c10::OutOfMemoryError& e) {
 | 
			
		||||
      (void)cudaGetLastError(); // clear CUDA error
 | 
			
		||||
      TORCH_WARN("Plan failed with an OutOfMemoryError: ", e.what());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  TORCH_CHECK(
 | 
			
		||||
      false,
 | 
			
		||||
      "FIND was unable to find an engine to execute this computation after trying ",
 | 
			
		||||
      plans.size(),
 | 
			
		||||
      " plans.");
 | 
			
		||||
      false, "FIND was unable to find an engine to execute this computation");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void try_plans_fused(
 | 
			
		||||
@ -880,19 +874,13 @@ void try_plans_fused(
 | 
			
		||||
      benchmark_cache_fused.update(key, plan);
 | 
			
		||||
      return;
 | 
			
		||||
    } catch (cudnn_frontend::cudnnException& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a cudnnException: ", e.what());
 | 
			
		||||
    } catch (CuDNNError& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a CuDNNError: ", e.what());
 | 
			
		||||
    } catch (c10::OutOfMemoryError& e) {
 | 
			
		||||
      (void)cudaGetLastError(); // clear CUDA error
 | 
			
		||||
      TORCH_WARN("Plan failed with an OutOfMemoryError: ", e.what());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  TORCH_CHECK(
 | 
			
		||||
      false,
 | 
			
		||||
      "FIND was unable to find an engine to execute this computation after trying ",
 | 
			
		||||
      plans.size(),
 | 
			
		||||
      " plans.");
 | 
			
		||||
      false, "FIND was unable to find an engine to execute this computation");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool try_configs(
 | 
			
		||||
@ -916,12 +904,9 @@ bool try_configs(
 | 
			
		||||
      benchmark_cache.update(key, plan);
 | 
			
		||||
      return true;
 | 
			
		||||
    } catch (cudnn_frontend::cudnnException& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a cudnnException: ", e.what());
 | 
			
		||||
    } catch (CuDNNError& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a CuDNNError: ", e.what());
 | 
			
		||||
    } catch (c10::OutOfMemoryError& e) {
 | 
			
		||||
      (void)cudaGetLastError(); // clear CUDA error
 | 
			
		||||
      TORCH_WARN("Plan failed with an OutOfMemoryError: ", e.what());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
@ -950,12 +935,9 @@ bool try_configs_fused(
 | 
			
		||||
      benchmark_cache_fused.update(key, plan);
 | 
			
		||||
      return true;
 | 
			
		||||
    } catch (cudnn_frontend::cudnnException& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a cudnnException: ", e.what());
 | 
			
		||||
    } catch (CuDNNError& e) {
 | 
			
		||||
      TORCH_WARN("Plan failed with a CuDNNError: ", e.what());
 | 
			
		||||
    } catch (c10::OutOfMemoryError& e) {
 | 
			
		||||
      (void)cudaGetLastError(); // clear CUDA error
 | 
			
		||||
      TORCH_WARN("Plan failed with an OutOfMemoryError: ", e.what());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
 | 
			
		||||
@ -25,6 +25,10 @@ typedef NS_ENUM(NSUInteger, MPSGraphFFTScalingMode)
 | 
			
		||||
-(MPSGraphTensor * _Nonnull) conjugateWithTensor:(MPSGraphTensor * _Nonnull) tensor
 | 
			
		||||
                                            name:(NSString * _Nullable) name;
 | 
			
		||||
 | 
			
		||||
-(MPSGraphTensor * _Nonnull) realPartOfTensor:(MPSGraphTensor * _Nonnull) tensor
 | 
			
		||||
                                         name:(NSString * _Nullable) name;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-(MPSGraphTensor * _Nonnull) fastFourierTransformWithTensor:(MPSGraphTensor * _Nonnull) tensor
 | 
			
		||||
                                                       axes:(NSArray<NSNumber *> * _Nonnull) axes
 | 
			
		||||
                                                 descriptor:(MPSGraphFFTDescriptor * _Nonnull) descriptor
 | 
			
		||||
 | 
			
		||||
@ -210,6 +210,9 @@ std::string scalarToMetalTypeString(const c10::ScalarType& scalar_type) {
 | 
			
		||||
      return "float";
 | 
			
		||||
    case ScalarType::Half:
 | 
			
		||||
      return "half";
 | 
			
		||||
    case ScalarType::BFloat16:
 | 
			
		||||
      checkSupportsBFloat16();
 | 
			
		||||
      return "bfloat";
 | 
			
		||||
    case ScalarType::Int:
 | 
			
		||||
      return "int";
 | 
			
		||||
    case ScalarType::Long:
 | 
			
		||||
 | 
			
		||||
@ -28,6 +28,7 @@ static Tensor& fill_scalar_mps_impl(Tensor& self, const Scalar& value) {
 | 
			
		||||
 | 
			
		||||
  struct CachedGraph : public MPSCachedGraph {
 | 
			
		||||
    CachedGraph(MPSGraph* graph) : MPSCachedGraph(graph) {}
 | 
			
		||||
    MPSGraphTensor* inputTensor_ = nil;
 | 
			
		||||
    MPSGraphTensor* outputTensor_ = nil;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -35,36 +36,23 @@ static Tensor& fill_scalar_mps_impl(Tensor& self, const Scalar& value) {
 | 
			
		||||
    string key = "fill_scalar_mps_impl" + getTensorsStringKey(self) + ":" + to_string(value.toDouble());
 | 
			
		||||
 | 
			
		||||
    auto cachedGraph = LookUpOrCreateCachedGraph<CachedGraph>(key, [&](auto mpsGraph, auto newCachedGraph) {
 | 
			
		||||
      auto isBool = self.scalar_type() == c10::ScalarType::Bool;
 | 
			
		||||
      auto isUInt8 = self.scalar_type() == c10::ScalarType::Byte;
 | 
			
		||||
      auto dataType = !isUInt8 ? !isBool ? getMPSScalarType(self.scalar_type()) : MPSDataTypeInt8 : MPSDataTypeUInt32;
 | 
			
		||||
      // constantWithScalar does not work for boolTypes on MacOS-12.[34]
 | 
			
		||||
      // workaround by filing it as int8 tensor and than casting to bool
 | 
			
		||||
      // See https://github.com/pytorch/pytorch/issues/82427
 | 
			
		||||
      // constantWithScalar does not work for UInt8 Types on MacOS-12.[34]/Ventura preview
 | 
			
		||||
      // workaround by filing it as uint32 tensor and than casting to uint8
 | 
			
		||||
      // See https://github.com/pytorch/pytorch/issues/83692
 | 
			
		||||
      MPSGraphTensor* inputTensor = [mpsGraph constantWithScalar:value.toDouble()
 | 
			
		||||
                                                           shape:getMPSShape(self)
 | 
			
		||||
                                                        dataType:dataType];
 | 
			
		||||
      MPSGraphTensor* inputTensor = mpsGraphScalarPlaceHolder(mpsGraph, getMPSDataType(self.scalar_type()));
 | 
			
		||||
      MPSGraphTensor* outputTensor = [mpsGraph identityWithTensor:inputTensor name:nil];
 | 
			
		||||
      if (isBool) {
 | 
			
		||||
        outputTensor = [mpsGraph castTensor:outputTensor toType:MPSDataTypeBool name:@"constWithBool-workaround"];
 | 
			
		||||
      }
 | 
			
		||||
      if (isUInt8) {
 | 
			
		||||
        outputTensor = [mpsGraph castTensor:outputTensor toType:MPSDataTypeUInt8 name:@"constWithUInt8-workaround"];
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      newCachedGraph->inputTensor_ = inputTensor;
 | 
			
		||||
      newCachedGraph->outputTensor_ = outputTensor;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    auto mpsScalar = getMPSScalar(value, self.scalar_type());
 | 
			
		||||
    auto mpsScalarData = getMPSGraphTensorFromScalar(getCurrentMPSStream(), mpsScalar);
 | 
			
		||||
    NSDictionary<MPSGraphTensor*, MPSGraphTensorData*>* feeds = @{cachedGraph->inputTensor_ : mpsScalarData};
 | 
			
		||||
 | 
			
		||||
    Placeholder outputPlaceholder =
 | 
			
		||||
        Placeholder(cachedGraph->outputTensor_, needsCopyToOutput ? output : self, nullptr, !needsCopyToOutput);
 | 
			
		||||
 | 
			
		||||
    NSDictionary<MPSGraphTensor*, MPSGraphTensorData*>* results =
 | 
			
		||||
        @{outputPlaceholder.getMPSGraphTensor() : outputPlaceholder.getMPSGraphTensorData()};
 | 
			
		||||
 | 
			
		||||
    runMPSGraph(getCurrentMPSStream(), cachedGraph->graph(), /*feeds*/ nil, results);
 | 
			
		||||
    runMPSGraph(getCurrentMPSStream(), cachedGraph->graph(), feeds, results);
 | 
			
		||||
 | 
			
		||||
    if (needsCopyToOutput) {
 | 
			
		||||
      self.copy_(output);
 | 
			
		||||
 | 
			
		||||
@ -240,14 +240,20 @@ static void index_put_kernel_mps(TensorIterator& iter,
 | 
			
		||||
} // namespace mps
 | 
			
		||||
 | 
			
		||||
static Tensor nonzero_fallback(const Tensor& self) {
 | 
			
		||||
  TORCH_WARN_ONCE("MPS: nonzero op is supported natively starting from macOS 13.0. ",
 | 
			
		||||
                  "Falling back on CPU. This may have performance implications.");
 | 
			
		||||
 | 
			
		||||
  return at::nonzero(self.to("cpu")).clone().to("mps");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor& nonzero_out_mps(const Tensor& self, Tensor& out_) {
 | 
			
		||||
  if (!is_macos_13_or_newer()) {
 | 
			
		||||
  if (!is_macos_13_or_newer(MacOSVersion::MACOS_VER_14_0_PLUS)) {
 | 
			
		||||
    TORCH_WARN_ONCE("MPS: nonzero op is supported natively starting from macOS 13.0. ",
 | 
			
		||||
                    "Falling back on CPU. This may have performance implications.");
 | 
			
		||||
    Tensor out_fallback = nonzero_fallback(self);
 | 
			
		||||
    at::native::resize_output(out_, out_fallback.sizes());
 | 
			
		||||
    out_.copy_(out_fallback.to("mps"));
 | 
			
		||||
    return out_;
 | 
			
		||||
  } else if (self.is_complex()) {
 | 
			
		||||
    TORCH_WARN_ONCE("MPS: nonzero op is not supported for complex datatypes. ",
 | 
			
		||||
                    "Falling back on CPU. This may have performance implications.");
 | 
			
		||||
    Tensor out_fallback = nonzero_fallback(self);
 | 
			
		||||
    at::native::resize_output(out_, out_fallback.sizes());
 | 
			
		||||
    out_.copy_(out_fallback.to("mps"));
 | 
			
		||||
@ -281,7 +287,6 @@ Tensor& nonzero_out_mps(const Tensor& self, Tensor& out_) {
 | 
			
		||||
    CachedGraph(MPSGraph* graph) : MPSCachedGraph(graph) {}
 | 
			
		||||
    MPSGraphTensor* inputTensor_ = nil;
 | 
			
		||||
    MPSGraphTensor* outputTensor_ = nil;
 | 
			
		||||
    MPSGraphTensor* scatterDataTensor_ = nil;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  dispatch_sync(stream->queue(), ^() {
 | 
			
		||||
@ -299,93 +304,20 @@ Tensor& nonzero_out_mps(const Tensor& self, Tensor& out_) {
 | 
			
		||||
    out = at::empty(out_.sizes(), out_.scalar_type(), c10::nullopt, kMPS, c10::nullopt, c10::nullopt);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  int64_t _apparentInputShape = 1;
 | 
			
		||||
  for (auto dim : self.sizes()) {
 | 
			
		||||
    _apparentInputShape *= dim;
 | 
			
		||||
  }
 | 
			
		||||
  MPSShape* apparentOutputShape = @[ @(total_nonzero * nDim) ];
 | 
			
		||||
  MPSShape* apparentInputShape = @[ @(_apparentInputShape) ];
 | 
			
		||||
 | 
			
		||||
  // Pseudocode:
 | 
			
		||||
  //
 | 
			
		||||
  // inputTensor     = [1,  0,  0,  3]
 | 
			
		||||
  // inputNonZero    = [1,  0,  0,  1]
 | 
			
		||||
  // indices         = [1,  1,  1,  2]
 | 
			
		||||
  // maskedIndices   = [0, -1, -1,  1]
 | 
			
		||||
  // coordinates     = [0,  1,  2,  3]
 | 
			
		||||
  // scatterResult   = [0,  3]
 | 
			
		||||
 | 
			
		||||
  @autoreleasepool {
 | 
			
		||||
    string key = "nonzero_out_mps" + getTensorsStringKey(self);
 | 
			
		||||
    auto cachedGraph = LookUpOrCreateCachedGraph<CachedGraph>(key, [&](auto mpsGraph, auto newCachedGraph) {
 | 
			
		||||
      MPSDataType inputDataType = getMPSDataType(self);
 | 
			
		||||
      MPSShape* inputShape = getMPSShape(self);
 | 
			
		||||
      MPSGraphTensor* inputTensor = mpsGraphRankedPlaceHolder(mpsGraph, getMPSDataType(self), getMPSShape(self));
 | 
			
		||||
 | 
			
		||||
      MPSGraphTensor* inputTensor =
 | 
			
		||||
          mpsGraphRankedPlaceHolder(mpsGraph, getMPSScalarType(self.scalar_type()), apparentInputShape);
 | 
			
		||||
      MPSGraphTensor* scatterDataTensor = mpsGraphUnrankedPlaceHolder(mpsGraph, getMPSScalarType(out.scalar_type()));
 | 
			
		||||
      MPSGraphTensor* zeroTensor = [mpsGraph constantWithScalar:0.0 dataType:inputDataType];
 | 
			
		||||
      MPSGraphTensor* oneTensor = [mpsGraph constantWithScalar:1.0 dataType:MPSDataTypeInt32];
 | 
			
		||||
      MPSGraphTensor* minusMaxDimTensor = [mpsGraph constantWithScalar:-maxDimensions dataType:MPSDataTypeInt32];
 | 
			
		||||
      MPSGraphTensor* inputNotEqualToZeroTensor = [mpsGraph notEqualWithPrimaryTensor:inputTensor
 | 
			
		||||
                                                                      secondaryTensor:zeroTensor
 | 
			
		||||
                                                                                 name:nil];
 | 
			
		||||
      MPSGraphTensor* maskTensor = [mpsGraph castTensor:inputNotEqualToZeroTensor
 | 
			
		||||
                                                 toType:MPSDataTypeInt32
 | 
			
		||||
                                                   name:@"castToInt32"];
 | 
			
		||||
      MPSGraphTensor* indicesTensor = [mpsGraph cumulativeSumWithTensor:maskTensor axis:0 name:nil];
 | 
			
		||||
      MPSGraphTensor* indicesMinusOneTensor = [mpsGraph subtractionWithPrimaryTensor:indicesTensor
 | 
			
		||||
                                                                     secondaryTensor:oneTensor
 | 
			
		||||
                                                                                name:nil];
 | 
			
		||||
      MPSGraphTensor* maskedIndicesTensor = [mpsGraph selectWithPredicateTensor:inputNotEqualToZeroTensor
 | 
			
		||||
                                                            truePredicateTensor:indicesMinusOneTensor
 | 
			
		||||
                                                           falsePredicateTensor:minusMaxDimTensor
 | 
			
		||||
                                                                           name:nil];
 | 
			
		||||
      MPSGraphTensor* coordinatesTensor = [mpsGraph reshapeTensor:[mpsGraph coordinateAlongAxis:0
 | 
			
		||||
                                                                                      withShape:inputShape
 | 
			
		||||
                                                                                           name:nil]
 | 
			
		||||
                                                        withShape:@[ @-1 ]
 | 
			
		||||
                                                             name:nil];
 | 
			
		||||
      if (nDim > 1) {
 | 
			
		||||
        NSMutableArray<MPSGraphTensor*>* maskedIndicesTensorArray = [NSMutableArray arrayWithCapacity:nDim];
 | 
			
		||||
        NSMutableArray<MPSGraphTensor*>* coordinatesTensorArray = [NSMutableArray arrayWithCapacity:nDim];
 | 
			
		||||
 | 
			
		||||
        MPSGraphTensor* constantRankTensor = [mpsGraph constantWithScalar:nDim dataType:MPSDataTypeInt32];
 | 
			
		||||
        maskedIndicesTensorArray[0] = [mpsGraph multiplicationWithPrimaryTensor:maskedIndicesTensor
 | 
			
		||||
                                                                secondaryTensor:constantRankTensor
 | 
			
		||||
                                                                           name:nil];
 | 
			
		||||
        coordinatesTensorArray[0] = coordinatesTensor;
 | 
			
		||||
        for (int i = 1; i < nDim; i++) {
 | 
			
		||||
          maskedIndicesTensorArray[i] = [mpsGraph additionWithPrimaryTensor:maskedIndicesTensorArray[i - 1]
 | 
			
		||||
                                                            secondaryTensor:oneTensor
 | 
			
		||||
                                                                       name:nil];
 | 
			
		||||
          coordinatesTensorArray[i] = [mpsGraph reshapeTensor:[mpsGraph coordinateAlongAxis:i
 | 
			
		||||
                                                                                  withShape:inputShape
 | 
			
		||||
                                                                                       name:nil]
 | 
			
		||||
                                                    withShape:@[ @-1 ]
 | 
			
		||||
                                                         name:nil];
 | 
			
		||||
        }
 | 
			
		||||
        maskedIndicesTensor = [mpsGraph concatTensors:maskedIndicesTensorArray dimension:0 interleave:YES name:nil];
 | 
			
		||||
        coordinatesTensor = [mpsGraph concatTensors:coordinatesTensorArray dimension:0 interleave:YES name:nil];
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      MPSGraphTensor* outputTensor = [mpsGraph scatterWithDataTensor:scatterDataTensor
 | 
			
		||||
                                                       updatesTensor:coordinatesTensor
 | 
			
		||||
                                                       indicesTensor:maskedIndicesTensor
 | 
			
		||||
                                                                axis:0
 | 
			
		||||
                                                                mode:MPSGraphScatterModeSet
 | 
			
		||||
                                                                name:nil];
 | 
			
		||||
      MPSGraphTensor* outputTensor = [mpsGraph nonZeroIndicesOfTensor:inputTensor name:nil];
 | 
			
		||||
 | 
			
		||||
      newCachedGraph->inputTensor_ = inputTensor;
 | 
			
		||||
      newCachedGraph->scatterDataTensor_ = scatterDataTensor;
 | 
			
		||||
      newCachedGraph->outputTensor_ = outputTensor;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    Placeholder selfPlaceholder = Placeholder(cachedGraph->inputTensor_, self, apparentInputShape);
 | 
			
		||||
    Placeholder outputPlaceholder = Placeholder(cachedGraph->outputTensor_, out, apparentOutputShape);
 | 
			
		||||
    Placeholder scatterPlaceholder = Placeholder(cachedGraph->scatterDataTensor_, out, apparentOutputShape);
 | 
			
		||||
 | 
			
		||||
    auto feeds = dictionaryFromPlaceholders(selfPlaceholder, scatterPlaceholder);
 | 
			
		||||
    Placeholder selfPlaceholder = Placeholder(cachedGraph->inputTensor_, self);
 | 
			
		||||
    Placeholder outputPlaceholder = Placeholder(cachedGraph->outputTensor_, out);
 | 
			
		||||
    auto feeds = dictionaryFromPlaceholders(selfPlaceholder);
 | 
			
		||||
    runMPSGraph(stream, cachedGraph->graph(), feeds, outputPlaceholder);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -397,7 +329,13 @@ Tensor& nonzero_out_mps(const Tensor& self, Tensor& out_) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor nonzero_mps(const Tensor& self) {
 | 
			
		||||
  if (!is_macos_13_or_newer()) {
 | 
			
		||||
  if (!is_macos_13_or_newer(MacOSVersion::MACOS_VER_14_0_PLUS)) {
 | 
			
		||||
    TORCH_WARN_ONCE("MPS: nonzero op is supported natively starting from macOS 13.0. ",
 | 
			
		||||
                    "Falling back on CPU. This may have performance implications.");
 | 
			
		||||
    return nonzero_fallback(self);
 | 
			
		||||
  } else if (self.is_complex()) {
 | 
			
		||||
    TORCH_WARN_ONCE("MPS: nonzero op is not supported for complex datatypes ",
 | 
			
		||||
                    "Falling back on CPU. This may have performance implications.");
 | 
			
		||||
    return nonzero_fallback(self);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,8 @@
 | 
			
		||||
#include <ATen/mps/MPSProfiler.h>
 | 
			
		||||
#include <ATen/native/LinearAlgebraUtils.h>
 | 
			
		||||
#include <ATen/native/Resize.h>
 | 
			
		||||
// For MTLLanguageVersion_3_1
 | 
			
		||||
#include <ATen/native/mps/MPSGraphSonomaOps.h>
 | 
			
		||||
#include <ATen/native/mps/OperationUtils.h>
 | 
			
		||||
 | 
			
		||||
#ifndef AT_PER_OPERATOR_HEADERS
 | 
			
		||||
@ -29,7 +31,7 @@ static const char* METAL_LINALG = R"MATMUL_METAL(
 | 
			
		||||
using namespace metal;
 | 
			
		||||
template<typename T>
 | 
			
		||||
T dot_product(constant T *v1, constant T* v2, ulong2 strides, uint32_t size) {
 | 
			
		||||
  T rc = 0.0;
 | 
			
		||||
  T rc = T(0.0);
 | 
			
		||||
  for (uint32_t i = 0; i < size; ++i) {
 | 
			
		||||
    rc += v1[i * strides.x] * v2[i * strides.y];
 | 
			
		||||
  }
 | 
			
		||||
@ -69,6 +71,9 @@ kernel void naive_matmul<DTYPE>(                                           \
 | 
			
		||||
 | 
			
		||||
INSTANTIATE_NAIVE_MM(float);
 | 
			
		||||
INSTANTIATE_NAIVE_MM(half);
 | 
			
		||||
#if __METAL_VERSION__ >= 310
 | 
			
		||||
INSTANTIATE_NAIVE_MM(bfloat);
 | 
			
		||||
#endif
 | 
			
		||||
)MATMUL_METAL";
 | 
			
		||||
 | 
			
		||||
id<MTLLibrary> compileLinalgOpLibrary(id<MTLDevice> device) {
 | 
			
		||||
@ -79,7 +84,8 @@ id<MTLLibrary> compileLinalgOpLibrary(id<MTLDevice> device) {
 | 
			
		||||
 | 
			
		||||
  NSError* error = nil;
 | 
			
		||||
  MTLCompileOptions* options = [[MTLCompileOptions new] autorelease];
 | 
			
		||||
  [options setLanguageVersion:MTLLanguageVersion2_3];
 | 
			
		||||
  [options setLanguageVersion:is_macos_13_or_newer(MacOSVersion::MACOS_VER_14_0_PLUS) ? MTLLanguageVersion3_1
 | 
			
		||||
                                                                                      : MTLLanguageVersion2_3];
 | 
			
		||||
  linalgLibrary = [device newLibraryWithSource:[NSString stringWithCString:METAL_LINALG encoding:NSASCIIStringEncoding]
 | 
			
		||||
                                       options:options
 | 
			
		||||
                                         error:&error];
 | 
			
		||||
 | 
			
		||||
@ -30,41 +30,53 @@ static void clamp_mps_graph(CachedGraph* cachedGraph,
 | 
			
		||||
                            const Tensor& min_tensor,
 | 
			
		||||
                            const Tensor& max_tensor) {
 | 
			
		||||
  auto input_dtype = input_tensor.scalar_type();
 | 
			
		||||
  auto min_dtype = input_dtype;
 | 
			
		||||
  auto max_dtype = input_dtype;
 | 
			
		||||
  if (cachedGraph->minTensor) {
 | 
			
		||||
    min_dtype = min_tensor.scalar_type();
 | 
			
		||||
  }
 | 
			
		||||
  if (cachedGraph->maxTensor) {
 | 
			
		||||
    max_dtype = max_tensor.scalar_type();
 | 
			
		||||
  }
 | 
			
		||||
  auto min_dtype = cachedGraph->minTensor ? min_tensor.scalar_type() : input_dtype;
 | 
			
		||||
  auto max_dtype = cachedGraph->maxTensor ? max_tensor.scalar_type() : input_dtype;
 | 
			
		||||
 | 
			
		||||
  MPSGraph* mpsGraph = cachedGraph->graph();
 | 
			
		||||
 | 
			
		||||
  cachedGraph->inputTensor = mpsGraphRankedPlaceHolder(mpsGraph, input_tensor);
 | 
			
		||||
 | 
			
		||||
  MPSGraphTensor* minTensor = cachedGraph->minTensor;
 | 
			
		||||
  MPSGraphTensor* maxTensor = cachedGraph->maxTensor;
 | 
			
		||||
  auto minTensor = cachedGraph->minTensor;
 | 
			
		||||
  auto maxTensor = cachedGraph->maxTensor;
 | 
			
		||||
 | 
			
		||||
  if (input_dtype != min_dtype) {
 | 
			
		||||
    minTensor = castMPSTensor(mpsGraph, cachedGraph->minTensor, input_dtype);
 | 
			
		||||
  }
 | 
			
		||||
  if (input_dtype != max_dtype) {
 | 
			
		||||
    maxTensor = castMPSTensor(mpsGraph, cachedGraph->maxTensor, input_dtype);
 | 
			
		||||
  }
 | 
			
		||||
  if (cachedGraph->minTensor && cachedGraph->maxTensor) {
 | 
			
		||||
    cachedGraph->outputTensor = [mpsGraph clampWithTensor:cachedGraph->inputTensor
 | 
			
		||||
                                           minValueTensor:minTensor
 | 
			
		||||
                                           maxValueTensor:maxTensor
 | 
			
		||||
                                                     name:nil];
 | 
			
		||||
  } else if (cachedGraph->maxTensor) {
 | 
			
		||||
    cachedGraph->outputTensor = [mpsGraph minimumWithPrimaryTensor:cachedGraph->inputTensor
 | 
			
		||||
                                                   secondaryTensor:maxTensor
 | 
			
		||||
                                                              name:nil];
 | 
			
		||||
  } else if (cachedGraph->minTensor) {
 | 
			
		||||
    cachedGraph->outputTensor = [mpsGraph maximumWithPrimaryTensor:cachedGraph->inputTensor
 | 
			
		||||
                                                   secondaryTensor:minTensor
 | 
			
		||||
                                                              name:nil];
 | 
			
		||||
  if (c10::isIntegralType(input_dtype, /*includeBool=*/true)) {
 | 
			
		||||
    if (minTensor && maxTensor) {
 | 
			
		||||
      cachedGraph->outputTensor = [mpsGraph clampWithTensor:cachedGraph->inputTensor
 | 
			
		||||
                                             minValueTensor:minTensor
 | 
			
		||||
                                             maxValueTensor:maxTensor
 | 
			
		||||
                                                       name:nil];
 | 
			
		||||
    } else if (maxTensor) {
 | 
			
		||||
      cachedGraph->outputTensor = [mpsGraph minimumWithPrimaryTensor:cachedGraph->inputTensor
 | 
			
		||||
                                                     secondaryTensor:maxTensor
 | 
			
		||||
                                                                name:nil];
 | 
			
		||||
    } else if (minTensor) {
 | 
			
		||||
      cachedGraph->outputTensor = [mpsGraph maximumWithPrimaryTensor:cachedGraph->inputTensor
 | 
			
		||||
                                                     secondaryTensor:minTensor
 | 
			
		||||
                                                                name:nil];
 | 
			
		||||
    }
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  // clampWithTensor doesn't propagate NaN through so simulate it as composition of
 | 
			
		||||
  // maximumWithNaNPropagationWithPrimaryTensor and minimumWithNaNPropagationWithPrimaryTensor
 | 
			
		||||
  auto outputTensor = cachedGraph->inputTensor;
 | 
			
		||||
  if (minTensor) {
 | 
			
		||||
    outputTensor = [mpsGraph maximumWithNaNPropagationWithPrimaryTensor:outputTensor
 | 
			
		||||
                                                        secondaryTensor:minTensor
 | 
			
		||||
                                                                   name:nil];
 | 
			
		||||
  }
 | 
			
		||||
  if (maxTensor) {
 | 
			
		||||
    outputTensor = [mpsGraph minimumWithNaNPropagationWithPrimaryTensor:outputTensor
 | 
			
		||||
                                                        secondaryTensor:maxTensor
 | 
			
		||||
                                                                   name:nil];
 | 
			
		||||
  }
 | 
			
		||||
  cachedGraph->outputTensor = outputTensor;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void check_min_max_dims(const OptionalTensorRef clamp_opt, const Tensor& input_t, string op_name) {
 | 
			
		||||
 | 
			
		||||
@ -75,23 +75,10 @@ static bool is_empty_tensor(const Tensor& self) {
 | 
			
		||||
  return self.numel() == 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void unary_op(const Tensor& self,
 | 
			
		||||
                     const Tensor& output_,
 | 
			
		||||
                     std::string op_name,
 | 
			
		||||
                     UnaryOpBlock unaryBlock,
 | 
			
		||||
                     is_noop_p is_noop = is_empty_tensor) {
 | 
			
		||||
static void unary_op_noresize(const Tensor& self, const Tensor& output_, std::string op_name, UnaryOpBlock unaryBlock) {
 | 
			
		||||
  TORCH_CHECK(!(!is_macos_13_or_newer() && self.scalar_type() == ScalarType::Byte),
 | 
			
		||||
              "MPS support unary op with uint8 natively starting from macOS 13.0");
 | 
			
		||||
 | 
			
		||||
  if (!output_.is_same_size(self)) {
 | 
			
		||||
    output_.resize_(self.sizes());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (is_noop(self)) {
 | 
			
		||||
    output_.copy_(self);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  auto output = output_;
 | 
			
		||||
  bool needsCopyToOutput = false;
 | 
			
		||||
  if (output.storage_offset() || !output.is_contiguous()) {
 | 
			
		||||
@ -139,6 +126,23 @@ static void unary_op(const Tensor& self,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void unary_op(const Tensor& self,
 | 
			
		||||
                     const Tensor& output_,
 | 
			
		||||
                     std::string op_name,
 | 
			
		||||
                     UnaryOpBlock unaryBlock,
 | 
			
		||||
                     is_noop_p is_noop = is_empty_tensor) {
 | 
			
		||||
  if (!output_.is_same_size(self)) {
 | 
			
		||||
    output_.resize_(self.sizes());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (is_noop(self)) {
 | 
			
		||||
    output_.copy_(self);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  unary_op_noresize(self, output_, op_name, unaryBlock);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MPSGraphTensor* trunc_tensor(MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) {
 | 
			
		||||
  // Rounding is a no-op for integral types, and also a reasonable workaround
 | 
			
		||||
  // For MPSGraph bug on Apple Silicon, that throws `Function floorOp_i64 was not found in the library`
 | 
			
		||||
@ -168,6 +172,12 @@ MPSGraphTensor* log1p(MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) {
 | 
			
		||||
  return [mpsGraph logarithmWithTensor:addedTensor name:nil];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static MPSGraphTensor* lengthOfComplexAsReal(MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) {
 | 
			
		||||
  auto squares = [mpsGraph squareWithTensor:inputTensor name:nil];
 | 
			
		||||
  auto sumSquares = [mpsGraph reductionSumWithTensor:squares axis:-1 name:nil];
 | 
			
		||||
  return [mpsGraph squareRootWithTensor:sumSquares name:nil];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace mps
 | 
			
		||||
 | 
			
		||||
TORCH_IMPL_FUNC(trunc_out_mps)(const Tensor& self, const Tensor& output) {
 | 
			
		||||
@ -226,14 +236,6 @@ CREATE_MPS_STRUCTURED_UNARY_ROUNDING_TORCH_IMPL_FUNC(round_out_mps, round)
 | 
			
		||||
    });                                                                                                          \
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
#define CREATE_MPS_UNARY_TORCH_IMPL_FUNC(func_out, func_stub)                                                    \
 | 
			
		||||
  Tensor& func_out(const Tensor& self, Tensor& output) {                                                         \
 | 
			
		||||
    mps::unary_op(self, output, #func_out, ^MPSGraphTensor*(MPSGraph * mpsGraph, MPSGraphTensor * inputTensor) { \
 | 
			
		||||
      return [mpsGraph func_stub##WithTensor:inputTensor name:nil];                                              \
 | 
			
		||||
    });                                                                                                          \
 | 
			
		||||
    return output;                                                                                               \
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(exp_out_mps, exponent)
 | 
			
		||||
CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(exp2_out_mps, exponentBase2)
 | 
			
		||||
CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(reciprocal_out_mps, reciprocal)
 | 
			
		||||
@ -257,7 +259,35 @@ CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(asinh_out_mps, asinh)
 | 
			
		||||
CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(acosh_out_mps, acosh)
 | 
			
		||||
CREATE_MPS_STRUCTURED_UNARY_TORCH_IMPL_FUNC(atanh_out_mps, atanh)
 | 
			
		||||
 | 
			
		||||
CREATE_MPS_UNARY_TORCH_IMPL_FUNC(abs_out_mps, absolute)
 | 
			
		||||
Tensor& abs_out_mps(const Tensor& self, Tensor& output) {
 | 
			
		||||
  using namespace mps;
 | 
			
		||||
 | 
			
		||||
  if (!output.is_same_size(self)) {
 | 
			
		||||
    output.resize_(self.sizes());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (self.numel() == 0) {
 | 
			
		||||
    return output;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (supportsComplex() || !self.is_complex()) {
 | 
			
		||||
    unary_op_noresize(self, output, "abs_out_mps", ^MPSGraphTensor*(MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) {
 | 
			
		||||
      auto rc = [mpsGraph absoluteWithTensor:inputTensor name:nil];
 | 
			
		||||
      if (self.is_complex()) {
 | 
			
		||||
        rc = [mpsGraph realPartOfTensor:rc name:nil];
 | 
			
		||||
      }
 | 
			
		||||
      return rc;
 | 
			
		||||
    });
 | 
			
		||||
  } else {
 | 
			
		||||
    Tensor realInput = at::view_as_real(self);
 | 
			
		||||
    unary_op_noresize(
 | 
			
		||||
        realInput, output, "abs_out_mps", ^MPSGraphTensor*(MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) {
 | 
			
		||||
          auto rc = lengthOfComplexAsReal(mpsGraph, inputTensor);
 | 
			
		||||
          return [mpsGraph reshapeTensor:rc withShape:getMPSShape(output) name:nil];
 | 
			
		||||
        });
 | 
			
		||||
  }
 | 
			
		||||
  return output;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Tensor& logical_not_out_mps(const Tensor& self, Tensor& output) {
 | 
			
		||||
  auto bool_self = self.to(ScalarType::Bool);
 | 
			
		||||
@ -484,9 +514,7 @@ TORCH_IMPL_FUNC(sgn_out_mps)(const Tensor& self, const Tensor& output) {
 | 
			
		||||
  Tensor realOutput = at::view_as_real(output);
 | 
			
		||||
 | 
			
		||||
  auto complex_sgn_op = [&](MPSGraph* mpsGraph, MPSGraphTensor* inputTensor) -> MPSGraphTensor* {
 | 
			
		||||
    MPSGraphTensor* squares = [mpsGraph squareWithTensor:inputTensor name:nil];
 | 
			
		||||
    MPSGraphTensor* sumSquares = [mpsGraph reductionSumWithTensor:squares axis:-1 name:nil];
 | 
			
		||||
    MPSGraphTensor* norm = [mpsGraph squareRootWithTensor:sumSquares name:nil];
 | 
			
		||||
    MPSGraphTensor* norm = mps::lengthOfComplexAsReal(mpsGraph, inputTensor);
 | 
			
		||||
    MPSGraphTensor* zero = [mpsGraph constantWithScalar:0.0 dataType:norm.dataType];
 | 
			
		||||
    MPSGraphTensor* isZero = [mpsGraph equalWithPrimaryTensor:norm secondaryTensor:zero name:nil];
 | 
			
		||||
    MPSGraphTensor* sgnTensor = [mpsGraph divisionWithPrimaryTensor:inputTensor secondaryTensor:norm name:nil];
 | 
			
		||||
 | 
			
		||||
@ -6154,6 +6154,52 @@
 | 
			
		||||
    CompositeExplicitAutogradNonFunctional: _nested_view_from_buffer_copy
 | 
			
		||||
  autogen: _nested_view_from_buffer_copy.out
 | 
			
		||||
 | 
			
		||||
- func: _nested_view_from_jagged(Tensor(a) self, Tensor offsets, Tensor dummy, Tensor? lengths=None, int ragged_idx=1) -> Tensor(a)
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
- func: _nested_view_from_jagged_copy(Tensor self, Tensor offsets, Tensor dummy, Tensor? lengths=None, int ragged_idx=1) -> Tensor
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  tags: view_copy
 | 
			
		||||
  dispatch:
 | 
			
		||||
    CompositeExplicitAutogradNonFunctional: _nested_view_from_jagged_copy
 | 
			
		||||
  autogen: _nested_view_from_jagged_copy.out
 | 
			
		||||
 | 
			
		||||
- func: _nested_get_values(Tensor(a) self) -> Tensor(a)
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
- func: _nested_get_values_copy(Tensor self) -> Tensor
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  tags: view_copy
 | 
			
		||||
  dispatch:
 | 
			
		||||
    CompositeExplicitAutogradNonFunctional: _nested_get_values_copy
 | 
			
		||||
  autogen: _nested_get_values_copy.out
 | 
			
		||||
 | 
			
		||||
- func: _nested_get_offsets(Tensor self) -> Tensor
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
# returns undefined Tensor if no lengths present
 | 
			
		||||
- func: _nested_get_lengths(Tensor self) -> Tensor
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
- func: _nested_get_ragged_idx(Tensor self) -> int
 | 
			
		||||
  variants: function
 | 
			
		||||
  device_check: NoCheck
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
- func: _nested_get_jagged_dummy(Tensor any) -> Tensor
 | 
			
		||||
  category_override: dummy
 | 
			
		||||
  dispatch: {}
 | 
			
		||||
 | 
			
		||||
- func: _trilinear(Tensor i1, Tensor i2, Tensor i3, int[] expand1, int[] expand2, int[] expand3, int[] sumdim, int unroll_dim=1) -> Tensor
 | 
			
		||||
  dispatch:
 | 
			
		||||
    # calls unsqueeze
 | 
			
		||||
 | 
			
		||||
@ -157,43 +157,6 @@ aotriton::TensorView<Rank> mk_aotensor(const at::Tensor& q, c10::string_view ten
 | 
			
		||||
                                    cast_dtype(q.dtype()));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<bool COPY_FROM_INPUT,  // For Input Tensor
 | 
			
		||||
         bool COPY_BACK>        // For Output Tensor
 | 
			
		||||
class TensorStorageSanitizer {
 | 
			
		||||
public:
 | 
			
		||||
  TensorStorageSanitizer(const at::Tensor& ref,
 | 
			
		||||
                         at::Tensor& to_sanitize)
 | 
			
		||||
    : ref_(ref), to_sanitize_(to_sanitize)
 | 
			
		||||
  {
 | 
			
		||||
    need_sanitize = ref_.strides() !=  to_sanitize_.strides();
 | 
			
		||||
    if (!need_sanitize)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
    temp_ = at::empty_like(ref_);
 | 
			
		||||
    if (COPY_FROM_INPUT) {
 | 
			
		||||
      temp_.copy_(to_sanitize_);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ~TensorStorageSanitizer()
 | 
			
		||||
  {
 | 
			
		||||
    if (need_sanitize && COPY_BACK)
 | 
			
		||||
      to_sanitize_.copy_(temp_);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  at::Tensor& sanitized_tensor()
 | 
			
		||||
  {
 | 
			
		||||
    if (need_sanitize)
 | 
			
		||||
      return temp_;
 | 
			
		||||
    return to_sanitize_;
 | 
			
		||||
  }
 | 
			
		||||
private:
 | 
			
		||||
  const at::Tensor& ref_;
 | 
			
		||||
  at::Tensor& to_sanitize_;
 | 
			
		||||
  at::Tensor temp_;
 | 
			
		||||
  bool need_sanitize = false;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define CHECK_DEVICE(x) TORCH_CHECK(x.is_cuda(), #x " must be on CUDA")
 | 
			
		||||
@ -531,9 +494,6 @@ mha_bwd(const at::Tensor &dout,  // batch_size x seqlen_q x num_heads, x head_si
 | 
			
		||||
  int d_head = head_size_og;
 | 
			
		||||
  hipError_t err; // TODO: Error handling
 | 
			
		||||
  {
 | 
			
		||||
    TensorStorageSanitizer<true, false> dq_s(q_t, dq_t);
 | 
			
		||||
    TensorStorageSanitizer<true, false> dk_s(k_t, dk_t);
 | 
			
		||||
    TensorStorageSanitizer<true, false> dv_s(v_t, dv_t);
 | 
			
		||||
    using aotriton::v2::flash::attn_bwd;
 | 
			
		||||
    err = attn_bwd(mk_aotensor(q_t, "q"),
 | 
			
		||||
                   mk_aotensor(k_t, "k"),
 | 
			
		||||
@ -541,9 +501,9 @@ mha_bwd(const at::Tensor &dout,  // batch_size x seqlen_q x num_heads, x head_si
 | 
			
		||||
                   softmax_scale,
 | 
			
		||||
                   mk_aotensor(out_t, "out"),
 | 
			
		||||
                   mk_aotensor(dout_t, "dout"),
 | 
			
		||||
                   mk_aotensor(dq_s.sanitized_tensor(), "dq"),
 | 
			
		||||
                   mk_aotensor(dk_s.sanitized_tensor(), "dk"),
 | 
			
		||||
                   mk_aotensor(dv_s.sanitized_tensor(), "dv"),
 | 
			
		||||
                   mk_aotensor(dq_t, "dq"),
 | 
			
		||||
                   mk_aotensor(dk_t, "dk"),
 | 
			
		||||
                   mk_aotensor(dv_t, "dv"),
 | 
			
		||||
                   mk_aotensor<2>(softmax_lse_cont, "L"),
 | 
			
		||||
                   mk_aotensor<2>(delta, "delta"),
 | 
			
		||||
                   p_dropout,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								cmake/External/aotriton.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cmake/External/aotriton.cmake
									
									
									
									
										vendored
									
									
								
							@ -6,7 +6,7 @@ if(NOT __AOTRITON_INCLUDED)
 | 
			
		||||
  set(__AOTRITON_INSTALL_DIR "${PROJECT_SOURCE_DIR}/torch")
 | 
			
		||||
  ExternalProject_Add(aotriton_external
 | 
			
		||||
    GIT_REPOSITORY https://github.com/ROCm/aotriton.git
 | 
			
		||||
    GIT_TAG 9044fe5eb16130e49a0a1f781ea15037353ad542
 | 
			
		||||
    GIT_TAG 24a3fe9cb57e5cda3c923df29743f9767194cc27
 | 
			
		||||
    SOURCE_DIR ${__AOTRITON_SOURCE_DIR}
 | 
			
		||||
    BINARY_DIR ${__AOTRITON_BUILD_DIR}
 | 
			
		||||
    PREFIX ${__AOTRITON_INSTALL_DIR}
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,22 @@ devel-push: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CU
 | 
			
		||||
devel-push:
 | 
			
		||||
	$(DOCKER_PUSH)
 | 
			
		||||
 | 
			
		||||
ifeq ("$(CUDA_VERSION_SHORT)","cpu")
 | 
			
		||||
 | 
			
		||||
.PHONY: runtime-image
 | 
			
		||||
runtime-image: BASE_IMAGE := $(BASE_RUNTIME)
 | 
			
		||||
runtime-image: DOCKER_TAG := $(PYTORCH_VERSION)-runtime
 | 
			
		||||
runtime-image:
 | 
			
		||||
	$(DOCKER_BUILD)
 | 
			
		||||
 | 
			
		||||
.PHONY: runtime-push
 | 
			
		||||
runtime-push: BASE_IMAGE := $(BASE_RUNTIME)
 | 
			
		||||
runtime-push: DOCKER_TAG := $(PYTORCH_VERSION)-runtime
 | 
			
		||||
runtime-push:
 | 
			
		||||
	$(DOCKER_PUSH)
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
 | 
			
		||||
.PHONY: runtime-image
 | 
			
		||||
runtime-image: BASE_IMAGE := $(BASE_RUNTIME)
 | 
			
		||||
runtime-image: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CUDNN_VERSION)-runtime
 | 
			
		||||
@ -95,6 +111,8 @@ runtime-push: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(
 | 
			
		||||
runtime-push:
 | 
			
		||||
	$(DOCKER_PUSH)
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
.PHONY: clean
 | 
			
		||||
clean:
 | 
			
		||||
	-docker rmi -f $(shell docker images -q $(DOCKER_FULL_NAME))
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								setup.py
									
									
									
									
									
								
							@ -548,7 +548,9 @@ class build_ext(setuptools.command.build_ext.build_ext):
 | 
			
		||||
        omp_lib_name = (
 | 
			
		||||
            "libomp.dylib" if os.uname().machine == "arm64" else "libiomp5.dylib"
 | 
			
		||||
        )
 | 
			
		||||
        if os.path.join("@rpath", omp_lib_name) not in libs:
 | 
			
		||||
        omp_rpath_lib_path = os.path.join("@rpath", omp_lib_name)
 | 
			
		||||
        omp_loader_lib_path = os.path.join("@loader_path", omp_lib_name)
 | 
			
		||||
        if omp_rpath_lib_path not in libs:
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # Copy libomp/libiomp5 from rpath locations
 | 
			
		||||
@ -558,6 +560,20 @@ class build_ext(setuptools.command.build_ext.build_ext):
 | 
			
		||||
                continue
 | 
			
		||||
            target_lib = os.path.join(self.build_lib, "torch", "lib", omp_lib_name)
 | 
			
		||||
            self.copy_file(source_lib, target_lib)
 | 
			
		||||
            # Change OMP library load path to loader_path and delete old rpath
 | 
			
		||||
            # This should prevent delocate from attempting to package another instance
 | 
			
		||||
            # of OpenMP library in torch wheel
 | 
			
		||||
            subprocess.check_call(
 | 
			
		||||
                [
 | 
			
		||||
                    "install_name_tool",
 | 
			
		||||
                    "-change",
 | 
			
		||||
                    omp_rpath_lib_path,
 | 
			
		||||
                    omp_loader_lib_path,
 | 
			
		||||
                    "-delete_rpath",
 | 
			
		||||
                    rpath,
 | 
			
		||||
                    libtorch_cpu_path,
 | 
			
		||||
                ]
 | 
			
		||||
            )
 | 
			
		||||
            break
 | 
			
		||||
 | 
			
		||||
        # Copy omp.h from OpenMP_C_FLAGS and copy it into include folder
 | 
			
		||||
 | 
			
		||||
@ -250,6 +250,44 @@ class DTensorAPITest(DTensorTestBase):
 | 
			
		||||
        self.assertIsInstance(local_out, torch.Tensor)
 | 
			
		||||
        self.assertNotIsInstance(local_out, DTensor)
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    def test_distribute_module_casting(self):
 | 
			
		||||
        device_mesh = DeviceMesh(self.device_type, list(range(self.world_size)))
 | 
			
		||||
 | 
			
		||||
        # check DTensor casting
 | 
			
		||||
        dt = DTensor.from_local(torch.rand(10), device_mesh, [Replicate()])
 | 
			
		||||
        dt = dt.to(torch.bfloat16)
 | 
			
		||||
        self.assertEqual(dt.dtype, torch.bfloat16)
 | 
			
		||||
        self.assertEqual(dt._local_tensor.dtype, torch.bfloat16)
 | 
			
		||||
 | 
			
		||||
        # check distribute_tensor casting
 | 
			
		||||
        dt = distribute_tensor(torch.rand(10), device_mesh, [Replicate()])
 | 
			
		||||
        dt = dt.to(torch.bfloat16)
 | 
			
		||||
        self.assertEqual(dt.dtype, torch.bfloat16)
 | 
			
		||||
        self.assertEqual(dt._local_tensor.dtype, torch.bfloat16)
 | 
			
		||||
 | 
			
		||||
        # check distribute_module casting
 | 
			
		||||
        model = MyModel(10, 10, device=self.device_type)
 | 
			
		||||
        replica_model = distribute_module(
 | 
			
		||||
            model,
 | 
			
		||||
            device_mesh,
 | 
			
		||||
        )
 | 
			
		||||
        replica_model = replica_model.to(torch.bfloat16)
 | 
			
		||||
        self.assertEqual(replica_model.seq[0].weight.dtype, torch.bfloat16)
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            replica_model.seq[0].weight._local_tensor.dtype, torch.bfloat16
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # check autocast
 | 
			
		||||
        dt = distribute_tensor(torch.rand(10), device_mesh, [Replicate()])
 | 
			
		||||
        replica_model = distribute_module(
 | 
			
		||||
            model,
 | 
			
		||||
            device_mesh,
 | 
			
		||||
        )
 | 
			
		||||
        with torch.autocast(device_type=self.device_type, dtype=torch.bfloat16):
 | 
			
		||||
            output = replica_model(dt)
 | 
			
		||||
        self.assertEqual(output.dtype, torch.bfloat16)
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    def test_distribute_module_meta(self):
 | 
			
		||||
        # If  the model is too big, the user may first the create entire model on the meta device and then initialize
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ from torch.distributed._tensor.placement_types import _Partial, Shard
 | 
			
		||||
from torch.distributed.device_mesh import _mesh_resources, DeviceMesh, init_device_mesh
 | 
			
		||||
 | 
			
		||||
from torch.distributed.distributed_c10d import (
 | 
			
		||||
    _world,
 | 
			
		||||
    get_global_rank,
 | 
			
		||||
    get_world_size,
 | 
			
		||||
    init_process_group,
 | 
			
		||||
@ -28,7 +29,6 @@ from torch.testing._internal.common_utils import (
 | 
			
		||||
)
 | 
			
		||||
from torch.testing._internal.distributed._tensor.common_dtensor import (
 | 
			
		||||
    DTensorTestBase,
 | 
			
		||||
    skip_if_lt_x_gpu,
 | 
			
		||||
    skip_unless_torch_gpu,
 | 
			
		||||
    with_comms,
 | 
			
		||||
)
 | 
			
		||||
@ -79,10 +79,7 @@ class DeviceMeshTest(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_group(self):
 | 
			
		||||
        # TODO: `test_get_group` still periodically timeout on cpu
 | 
			
		||||
        # remove `@skip_unless_torch_gpu` after the problem is fixed.
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_2d = init_device_mesh(
 | 
			
		||||
            self.device_type, mesh_shape, mesh_dim_names=("dp", "tp")
 | 
			
		||||
@ -103,10 +100,7 @@ class DeviceMeshTest(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_local_rank_raises_exception(self):
 | 
			
		||||
        # TODO: `test_get_local_rank_raises_exception` still periodically timeout on cpu
 | 
			
		||||
        # remove `@skip_unless_torch_gpu` after the problem is fixed.
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_2d = init_device_mesh(
 | 
			
		||||
            self.device_type, mesh_shape, mesh_dim_names=("dp", "tp")
 | 
			
		||||
@ -120,10 +114,7 @@ class DeviceMeshTest(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_local_rank(self):
 | 
			
		||||
        # TODO: `test_get_local_rank_raises_exception` still periodically timeout on cpu
 | 
			
		||||
        # remove `@skip_unless_torch_gpu` after the problem is fixed.
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_2d = init_device_mesh(
 | 
			
		||||
            self.device_type, mesh_shape, mesh_dim_names=("dp", "tp")
 | 
			
		||||
@ -162,7 +153,17 @@ class DeviceMeshTest(DTensorTestBase):
 | 
			
		||||
            )
 | 
			
		||||
            self.assertEqual(global_ranks, current_rank_expected_group_ranks)
 | 
			
		||||
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @with_comms
 | 
			
		||||
    def test_device_mesh_init_backend(self):
 | 
			
		||||
        mesh = DeviceMesh(self.device_type, [1], _init_backend=False)
 | 
			
		||||
 | 
			
		||||
        with self.assertRaisesRegex(RuntimeError, "process groups not initialized!"):
 | 
			
		||||
            mesh.get_group()
 | 
			
		||||
 | 
			
		||||
        # coordinates should always been populated when init_backend is False, as whenever
 | 
			
		||||
        # we call init_backend we should make sure the default pg already created
 | 
			
		||||
        mesh.get_coordinate()
 | 
			
		||||
 | 
			
		||||
    def test_fake_pg_device_mesh(self):
 | 
			
		||||
        fake_store = FakeStore()
 | 
			
		||||
        init_process_group("fake", store=fake_store, rank=0, world_size=self.world_size)
 | 
			
		||||
@ -276,71 +277,47 @@ class TestDeviceMeshGetItem(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    def test_raises_invalid_mesh_dim_names(self):
 | 
			
		||||
        error_msg = "Invalid mesh_dim_name"
 | 
			
		||||
        # Case 1: the DeviceMesh does not have a mesh_dim_names attribute
 | 
			
		||||
        with self.assertRaisesRegex(
 | 
			
		||||
            RuntimeError, "Cannot slice a DeviceMesh without mesh_dim_names."
 | 
			
		||||
        ):
 | 
			
		||||
    def test_raises_no_mesh_dim_found(self):
 | 
			
		||||
        with self.assertRaisesRegex(KeyError, "No `mesh_dim_names` found."):
 | 
			
		||||
            mesh = init_device_mesh(self.device_type, (2, 4))
 | 
			
		||||
            child_mesh = mesh["DP"]
 | 
			
		||||
 | 
			
		||||
        child_mesh_dim_names = "PP"
 | 
			
		||||
        with self.assertRaisesRegex(ValueError, error_msg):
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    def test_raises_invalid_mesh_dim_name(self):
 | 
			
		||||
        child_mesh_dim_name = "PP"
 | 
			
		||||
        with self.assertRaisesRegex(
 | 
			
		||||
            KeyError, f"Mesh dimension '{child_mesh_dim_name}' does not exist."
 | 
			
		||||
        ):
 | 
			
		||||
            mesh_dim_names = ("DP", "TP")
 | 
			
		||||
            mesh = init_device_mesh(
 | 
			
		||||
                self.device_type, (2, 4), mesh_dim_names=mesh_dim_names
 | 
			
		||||
            )
 | 
			
		||||
            child_mesh = mesh[child_mesh_dim_names]
 | 
			
		||||
 | 
			
		||||
        # Case 2
 | 
			
		||||
        child_mesh_dim_names = ["PP", "CP"]
 | 
			
		||||
        with self.assertRaisesRegex(ValueError, error_msg):
 | 
			
		||||
            mesh_dim_names = ("DP", "TP")
 | 
			
		||||
            mesh = init_device_mesh(
 | 
			
		||||
                self.device_type, (2, 4), mesh_dim_names=mesh_dim_names
 | 
			
		||||
            )
 | 
			
		||||
            child_mesh = mesh[child_mesh_dim_names]
 | 
			
		||||
 | 
			
		||||
        # Case 3: a given child_mesh_dim_name is not a contiguous subset of the parent mesh's mesh_dim_names.
 | 
			
		||||
        child_mesh_dim_names = ("TP", "DP")
 | 
			
		||||
        with self.assertRaisesRegex(ValueError, error_msg):
 | 
			
		||||
            mesh_dim_names = ("DP", "TP")
 | 
			
		||||
            mesh = init_device_mesh(
 | 
			
		||||
                self.device_type, (2, 4), mesh_dim_names=mesh_dim_names
 | 
			
		||||
            )
 | 
			
		||||
            child_mesh = mesh[child_mesh_dim_names]
 | 
			
		||||
 | 
			
		||||
        # Case 3
 | 
			
		||||
        child_mesh_dim_names = ("PP", "TP")
 | 
			
		||||
        with self.assertRaisesRegex(ValueError, error_msg):
 | 
			
		||||
            mesh_dim_names = ("PP", "DP", "TP")
 | 
			
		||||
            mesh = init_device_mesh(
 | 
			
		||||
                self.device_type, (2, 2, 2), mesh_dim_names=mesh_dim_names
 | 
			
		||||
            )
 | 
			
		||||
            child_mesh = mesh[child_mesh_dim_names]
 | 
			
		||||
            child_mesh = mesh[child_mesh_dim_name]
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_if_lt_x_gpu(8)
 | 
			
		||||
    def test_get_item_2d(self):
 | 
			
		||||
        # TODO: `test_get_item_2d` still periodically timeout on cpu
 | 
			
		||||
        # remove `@skip_if_lt_x_gpu` after the problem is fixed.
 | 
			
		||||
    def test_get_item(self):
 | 
			
		||||
        mesh_shape = (2, 4)
 | 
			
		||||
        mesh_dim_names = ("DP", "TP")
 | 
			
		||||
        mesh_2d = init_device_mesh(
 | 
			
		||||
            self.device_type, mesh_shape, mesh_dim_names=mesh_dim_names
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        pg_ranks_by_dim_name = {}
 | 
			
		||||
        for mesh_dim_name in mesh_dim_names:
 | 
			
		||||
            mesh_dim = mesh_dim_names.index(mesh_dim_name)
 | 
			
		||||
            pg_ranks_by_dim_name[mesh_dim_name] = mesh_2d.mesh.swapdims(
 | 
			
		||||
                -1, mesh_dim
 | 
			
		||||
            ).reshape(-1, mesh_2d.mesh.size(mesh_dim))
 | 
			
		||||
 | 
			
		||||
        tp_mesh = mesh_2d["TP"]
 | 
			
		||||
        tp_group = [[0, 1, 2, 3], [4, 5, 6, 7]]
 | 
			
		||||
        tp_group_idx = self.rank // 4
 | 
			
		||||
        self.assertEqual(tp_mesh.mesh.tolist(), tp_group[tp_group_idx])
 | 
			
		||||
        self.assertEqual(tp_mesh.mesh, pg_ranks_by_dim_name["TP"][tp_group_idx])
 | 
			
		||||
 | 
			
		||||
        dp_mesh = mesh_2d["DP"]
 | 
			
		||||
        dp_group = [[0, 4], [1, 5], [2, 6], [3, 7]]
 | 
			
		||||
        dp_group_idx = self.rank % 4
 | 
			
		||||
        self.assertEqual(dp_mesh.mesh.tolist(), dp_group[dp_group_idx])
 | 
			
		||||
        self.assertEqual(mesh_2d["DP"].mesh, pg_ranks_by_dim_name["DP"][dp_group_idx])
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
@ -351,50 +328,32 @@ class TestDeviceMeshGetItem(DTensorTestBase):
 | 
			
		||||
        dp_mesh = mesh["dp"]
 | 
			
		||||
        self.assertEqual(dp_mesh, mesh)
 | 
			
		||||
 | 
			
		||||
        with self.assertRaisesRegex(ValueError, "Invalid mesh_dim_name"):
 | 
			
		||||
        with self.assertRaisesRegex(RuntimeError, "Invalid mesh_dim_name"):
 | 
			
		||||
            dp_mesh = mesh["dim0"]
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @skip_if_lt_x_gpu(8)
 | 
			
		||||
    def test_get_item_3d(self):
 | 
			
		||||
        # TODO: `test_get_item_3d` still periodically timeout on cpu
 | 
			
		||||
        # remove `@skip_if_lt_x_gpu` after the problem is fixed.
 | 
			
		||||
        mesh_shape = (2, 2, 2)
 | 
			
		||||
        mesh_dim_names = ("Replicate", "Shard", "TP")
 | 
			
		||||
        mesh_3d = init_device_mesh(
 | 
			
		||||
            self.device_type, mesh_shape, mesh_dim_names=mesh_dim_names
 | 
			
		||||
        )
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    def test_cache_and_reuse_submesh_slice_result(self):
 | 
			
		||||
        mesh = init_device_mesh(self.device_type, (2, 4), mesh_dim_names=("dp", "tp"))
 | 
			
		||||
 | 
			
		||||
        tp_group = [[0, 1], [2, 3], [4, 5], [6, 7]]
 | 
			
		||||
        tp_group_idx = int(self.rank / 2)
 | 
			
		||||
        self.assertEqual(mesh_3d["TP"].mesh.tolist(), tp_group[tp_group_idx])
 | 
			
		||||
        dp_mesh = mesh["dp"]
 | 
			
		||||
        ref_pg_count = _world.group_count
 | 
			
		||||
 | 
			
		||||
        shard_group = [[0, 2], [1, 3], [4, 6], [5, 7]]
 | 
			
		||||
        shard_group_idx = self.rank % 2 + self.rank // 4 * 2
 | 
			
		||||
        self.assertEqual(mesh_3d["Shard"].mesh.tolist(), shard_group[shard_group_idx])
 | 
			
		||||
        # When we call the "dp" slice second time, it should not create any new pg.
 | 
			
		||||
        # As we are just using the cached result so the pg count should be the same.
 | 
			
		||||
        dp_mesh_2 = mesh["dp"]
 | 
			
		||||
        self.assertEqual(ref_pg_count, _world.group_count)
 | 
			
		||||
 | 
			
		||||
        replicate_group = [[0, 4], [1, 5], [2, 6], [3, 7]]
 | 
			
		||||
        replicate_group_idx = self.rank % 4
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            mesh_3d["Replicate"].mesh.tolist(), replicate_group[replicate_group_idx]
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # We support both UX for nD slicing.
 | 
			
		||||
        # mesh_3d[["Replicate", "Shard"]] or mesh_3d["Replicate", "Shard"]
 | 
			
		||||
        hsdp_mesh_1 = mesh_3d[["Replicate", "Shard"]]
 | 
			
		||||
        hsdp_mesh_2 = mesh_3d["Replicate", "Shard"]
 | 
			
		||||
        hsdp_group = [[[0, 2], [4, 6]], [[1, 3], [5, 7]]]
 | 
			
		||||
        hsdp_group_idx = self.rank % 2
 | 
			
		||||
        self.assertEqual(hsdp_mesh_1.mesh.tolist(), hsdp_group[hsdp_group_idx])
 | 
			
		||||
        self.assertEqual(hsdp_mesh_2.mesh.tolist(), hsdp_group[hsdp_group_idx])
 | 
			
		||||
        self.assertEqual(hsdp_mesh_1, hsdp_mesh_2)
 | 
			
		||||
        # When we call the "tp" slice, it should not create a new pg, as the "tp" slice would
 | 
			
		||||
        # just reuse the parent mesh pg.
 | 
			
		||||
        tp_mesh = mesh["tp"]
 | 
			
		||||
        self.assertEqual(_world.group_count, ref_pg_count)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@instantiate_parametrized_tests
 | 
			
		||||
class TestMeshEnv(DTensorTestBase):
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_parent_mesh(self):
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_dim_names = ("DP", "TP")
 | 
			
		||||
@ -415,7 +374,6 @@ class TestMeshEnv(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_parent_mesh_dim_exist(self):
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_dim_names = ("DP", "TP")
 | 
			
		||||
@ -428,7 +386,6 @@ class TestMeshEnv(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_parent_mesh_dim_not_exist(self):
 | 
			
		||||
        mesh_shape = (self.world_size,)
 | 
			
		||||
        mesh = init_device_mesh(self.device_type, mesh_shape)
 | 
			
		||||
@ -437,7 +394,6 @@ class TestMeshEnv(DTensorTestBase):
 | 
			
		||||
 | 
			
		||||
    @with_comms
 | 
			
		||||
    @run_with_both_funcol_impls
 | 
			
		||||
    @skip_unless_torch_gpu
 | 
			
		||||
    def test_get_mesh_dim_by_name(self):
 | 
			
		||||
        mesh_shape = (2, self.world_size // 2)
 | 
			
		||||
        mesh_dim_names = ("DP", "TP")
 | 
			
		||||
@ -555,9 +511,11 @@ class DeviceMeshCollectiveTest(DTensorTestBase):
 | 
			
		||||
                torch.chunk(big_tensor, device_mesh.size(), dim=shard_dim)
 | 
			
		||||
            )
 | 
			
		||||
            unpadded_list = [
 | 
			
		||||
                shard_placement._unpad_tensor(big_tensor_chunks[i], pad_sizes[i])
 | 
			
		||||
                if pad_sizes[i] > 0
 | 
			
		||||
                else big_tensor_chunks[i]
 | 
			
		||||
                (
 | 
			
		||||
                    shard_placement._unpad_tensor(big_tensor_chunks[i], pad_sizes[i])
 | 
			
		||||
                    if pad_sizes[i] > 0
 | 
			
		||||
                    else big_tensor_chunks[i]
 | 
			
		||||
                )
 | 
			
		||||
                for i, big_tensor in enumerate(big_tensor_chunks)
 | 
			
		||||
            ]
 | 
			
		||||
            all_gathered_tensor = torch.cat(unpadded_list, dim=shard_dim)
 | 
			
		||||
 | 
			
		||||
@ -48,7 +48,6 @@ from torch._dynamo.testing import (
 | 
			
		||||
    same,
 | 
			
		||||
    skipIfNotPy311,
 | 
			
		||||
    unsupported,
 | 
			
		||||
    xfailIfPy311,
 | 
			
		||||
)
 | 
			
		||||
from torch._dynamo.utils import CompileProfiler, counters, ifdynstaticdefault
 | 
			
		||||
from torch._inductor.utils import run_and_get_code
 | 
			
		||||
@ -9740,7 +9739,6 @@ fn
 | 
			
		||||
            lambda mod: mod.fc,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    @xfailIfPy311
 | 
			
		||||
    def test_sequential_module_free(self):
 | 
			
		||||
        self._test_compile_model_free(
 | 
			
		||||
            lambda: (
 | 
			
		||||
 | 
			
		||||
@ -19,10 +19,10 @@ from torch.fx.experimental.symbolic_shapes import (
 | 
			
		||||
    StatelessSymbolicContext,
 | 
			
		||||
)
 | 
			
		||||
from torch.nested._internal.nested_tensor import (
 | 
			
		||||
    buffer_from_jagged,
 | 
			
		||||
    jagged_from_list,
 | 
			
		||||
    jagged_from_tensor_and_lengths,
 | 
			
		||||
    ViewBufferFromNested,
 | 
			
		||||
    nested_view_from_values_offsets,
 | 
			
		||||
    NestedTensor,
 | 
			
		||||
)
 | 
			
		||||
from torch.testing._internal.common_utils import (
 | 
			
		||||
    instantiate_parametrized_tests,
 | 
			
		||||
@ -1166,19 +1166,20 @@ class TestNestedTensor(torch._dynamo.test_case.TestCase):
 | 
			
		||||
        a = torch.randn(2, 3, requires_grad=True, dtype=torch.float64)
 | 
			
		||||
        b = torch.randn(3, 3, requires_grad=True, dtype=torch.float64)
 | 
			
		||||
        c = torch.randn(4, 3, requires_grad=True, dtype=torch.float64)
 | 
			
		||||
        nt, offsets = jagged_from_list([a, b, c], None)
 | 
			
		||||
        nt2, _ = jagged_from_list([a, b, c], offsets)
 | 
			
		||||
        nt = torch.nested.as_nested_tensor([a, b, c], layout=torch.jagged)
 | 
			
		||||
        # TODO: Switch to public API when it exists
 | 
			
		||||
        nt2, _ = jagged_from_list([a, b, c], nt.offsets())
 | 
			
		||||
 | 
			
		||||
        def fn1(nt1, nt2):
 | 
			
		||||
            return (nt1 + nt2).sin().cos()
 | 
			
		||||
 | 
			
		||||
        compiled_f = torch.compile(fn1, fullgraph=True, backend=backend, dynamic=True)
 | 
			
		||||
        out = compiled_f(nt, nt2)
 | 
			
		||||
        out_buffer = ViewBufferFromNested.apply(out)
 | 
			
		||||
        out_buffer = out.values()
 | 
			
		||||
        ga, gb, gc = torch.autograd.grad(out_buffer.sum(), (a, b, c))
 | 
			
		||||
 | 
			
		||||
        out_ref = fn1(nt, nt2)
 | 
			
		||||
        out_buffer_ref = ViewBufferFromNested.apply(out_ref)
 | 
			
		||||
        out_buffer_ref = out_ref.values()
 | 
			
		||||
        ga_ref, gb_ref, gc_ref = torch.autograd.grad(out_buffer_ref.sum(), (a, b, c))
 | 
			
		||||
 | 
			
		||||
        self.assertTrue(torch.allclose(ga, ga_ref))
 | 
			
		||||
@ -1218,10 +1219,10 @@ class TestNestedTensor(torch._dynamo.test_case.TestCase):
 | 
			
		||||
        ret = fn_c(nt, y)[0]
 | 
			
		||||
        ref = fn(nt_copy, y_copy)[0]
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(buffer_from_jagged(ret), buffer_from_jagged(ref))
 | 
			
		||||
        self.assertEqual(ret.values(), ref.values())
 | 
			
		||||
 | 
			
		||||
        buffer_from_jagged(ret).sum().backward()
 | 
			
		||||
        buffer_from_jagged(ref).sum().backward()
 | 
			
		||||
        ret.values().sum().backward()
 | 
			
		||||
        ref.values().sum().backward()
 | 
			
		||||
        for ref_v, res_v in zip(values_copy, values):
 | 
			
		||||
            self.assertEqual(ref_v.grad, res_v.grad)
 | 
			
		||||
 | 
			
		||||
@ -1254,83 +1255,112 @@ class TestNestedTensor(torch._dynamo.test_case.TestCase):
 | 
			
		||||
        self._check_recompiles(fn, (nt,), (nt3,), True)
 | 
			
		||||
 | 
			
		||||
    def _get_views(self):
 | 
			
		||||
        # There are three cases to consider here based on the logic in
 | 
			
		||||
        # meta_utils.py
 | 
			
		||||
        #
 | 
			
		||||
        # (1) basic case:
 | 
			
		||||
        # view is not a leaf and has the same requires grad as its basic case
 | 
			
		||||
        x, _ = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=True)
 | 
			
		||||
        self.assertEqual(x.is_leaf, False)
 | 
			
		||||
        yield x.unsqueeze(-1)
 | 
			
		||||
        # Test all cases with both an NT base and a dense base
 | 
			
		||||
        # Subclass -> Subclass
 | 
			
		||||
        # Dense -> Subclass
 | 
			
		||||
        for base_is_nt in [False, True]:
 | 
			
		||||
            # There are three cases to consider here based on the logic in
 | 
			
		||||
            # meta_utils.py
 | 
			
		||||
            #
 | 
			
		||||
            # (1) basic case:
 | 
			
		||||
            # view is not a leaf and has the same requires grad as its basic case
 | 
			
		||||
            x, _ = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=True)
 | 
			
		||||
            x = x.clone() if base_is_nt else x
 | 
			
		||||
            self.assertEqual(x.is_leaf, False)
 | 
			
		||||
            yield x.unsqueeze(-1)
 | 
			
		||||
 | 
			
		||||
        # (2) leaf view case:
 | 
			
		||||
        # the view has to be a leaf (w/ requires_grad True or requires_grad False)
 | 
			
		||||
        # base w/ requires_grad True or requires_grad False
 | 
			
		||||
        for requires_grad_1, requires_grad_2 in itertools.product(
 | 
			
		||||
            [True, False], repeat=2
 | 
			
		||||
        ):
 | 
			
		||||
            x, _ = self._get_jagged_tensor(
 | 
			
		||||
                ((2, 3, 4), 3), None, requires_grad=requires_grad_1
 | 
			
		||||
            )
 | 
			
		||||
            # (2) leaf view case:
 | 
			
		||||
            # the view has to be a leaf (w/ requires_grad True or requires_grad False)
 | 
			
		||||
            # base w/ requires_grad True or requires_grad False
 | 
			
		||||
            for requires_grad_1, requires_grad_2 in itertools.product(
 | 
			
		||||
                [True, False], repeat=2
 | 
			
		||||
            ):
 | 
			
		||||
                x, _ = self._get_jagged_tensor(
 | 
			
		||||
                    ((2, 3, 4), 3), None, requires_grad=requires_grad_1
 | 
			
		||||
                )
 | 
			
		||||
                x = x.clone() if base_is_nt else x
 | 
			
		||||
                with torch.no_grad():
 | 
			
		||||
                    x_view = x.unsqueeze(-1)
 | 
			
		||||
                    # The issue is this doesn't quite work
 | 
			
		||||
                    x_view.requires_grad_(requires_grad_2)
 | 
			
		||||
                yield x_view
 | 
			
		||||
 | 
			
		||||
            # (3) obscure case:
 | 
			
		||||
            # view is not a leaf (implies requires_grad True)
 | 
			
		||||
            # base w/ requires_grad False)
 | 
			
		||||
            x, _ = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=False)
 | 
			
		||||
            x = x.clone() if base_is_nt else x
 | 
			
		||||
            # intermediate leaf view
 | 
			
		||||
            with torch.no_grad():
 | 
			
		||||
                x_view = x.unsqueeze(-1)
 | 
			
		||||
                # The issue is this doesn't quite work
 | 
			
		||||
                x_view.requires_grad_(requires_grad_2)
 | 
			
		||||
            yield x_view
 | 
			
		||||
            x_view.requires_grad_(True)
 | 
			
		||||
            x_view_view = x_view.unsqueeze(-1)
 | 
			
		||||
            yield x_view_view
 | 
			
		||||
 | 
			
		||||
        # (3) obscure case:
 | 
			
		||||
        # view is not a leaf (implies requires_grad True)
 | 
			
		||||
        # base w/ requires_grad False)
 | 
			
		||||
        x, _ = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=False)
 | 
			
		||||
        # intermediate leaf view
 | 
			
		||||
        with torch.no_grad():
 | 
			
		||||
            x_view = x.unsqueeze(-1)
 | 
			
		||||
        x_view.requires_grad_(True)
 | 
			
		||||
        x_view_view = x_view.unsqueeze(-1)
 | 
			
		||||
        yield x_view_view
 | 
			
		||||
        # Subclass -> Dense
 | 
			
		||||
        x = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=True)[0].clone()
 | 
			
		||||
        yield x.values()
 | 
			
		||||
 | 
			
		||||
        # Dense -> Subclass -> Dense -> Subclass
 | 
			
		||||
        values = torch.randn(10, 5)
 | 
			
		||||
        offsets = torch.tensor([0, 3, 6, 10])
 | 
			
		||||
        offsets2 = offsets.clone().detach()
 | 
			
		||||
        yield nested_view_from_values_offsets(
 | 
			
		||||
            nested_view_from_values_offsets(values, offsets).values(), offsets
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def _input_view_test(self, nt_view):
 | 
			
		||||
        def fn(x):
 | 
			
		||||
            return x.sin()
 | 
			
		||||
 | 
			
		||||
        out_ref = fn(nt_view)
 | 
			
		||||
        torch._dynamo.reset()
 | 
			
		||||
        compile_fn = torch.compile(
 | 
			
		||||
            fn, fullgraph=True, backend="aot_eager", dynamic=True
 | 
			
		||||
        )
 | 
			
		||||
        out = compile_fn(nt_view)
 | 
			
		||||
 | 
			
		||||
        # Check metadata and values are correct
 | 
			
		||||
        self.assertTrue(out.size() == out_ref.size())
 | 
			
		||||
        self.assertTrue(out.stride() == out_ref.stride())
 | 
			
		||||
        if out.is_nested:
 | 
			
		||||
            self.assertTrue(torch.allclose(out.values(), out_ref.values()))
 | 
			
		||||
        else:
 | 
			
		||||
            self.assertTrue(torch.allclose(out, out_ref))
 | 
			
		||||
 | 
			
		||||
        # Check that no upper/lower bound guards are incurred
 | 
			
		||||
        def backend(gm, args):
 | 
			
		||||
            context = torch._guards.TracingContext.get()
 | 
			
		||||
            guards = [str(g.expr) for g in context.fake_mode.shape_env.guards]
 | 
			
		||||
 | 
			
		||||
            # varies based on the type of view
 | 
			
		||||
            guard_str = "\n".join(guards)
 | 
			
		||||
            if isinstance(nt_view._base, NestedTensor):
 | 
			
		||||
                self.assertExpectedInline(guard_str, """Eq(s3 - 1, s0)""")
 | 
			
		||||
            else:
 | 
			
		||||
                self.assertExpectedInline(guard_str, """""")
 | 
			
		||||
            return gm
 | 
			
		||||
 | 
			
		||||
        torch._dynamo.reset()
 | 
			
		||||
        compile_fn = torch.compile(fn, fullgraph=True, backend=backend, dynamic=True)
 | 
			
		||||
        out = compile_fn(nt_view)
 | 
			
		||||
 | 
			
		||||
    def test_inputs_to_compiled_fn_are_views(self):
 | 
			
		||||
        for nt_view in self._get_views():
 | 
			
		||||
            self._input_view_test(nt_view)
 | 
			
		||||
 | 
			
		||||
            def fn(x):
 | 
			
		||||
                return x.sin()
 | 
			
		||||
 | 
			
		||||
            out_ref = fn(nt_view)
 | 
			
		||||
            torch._dynamo.reset()
 | 
			
		||||
            compile_fn = torch.compile(
 | 
			
		||||
                fn, fullgraph=True, backend="aot_eager", dynamic=True
 | 
			
		||||
            )
 | 
			
		||||
            out = compile_fn(nt_view)
 | 
			
		||||
 | 
			
		||||
            # Check metadata and values are correct
 | 
			
		||||
            self.assertTrue(out.size() == out_ref.size())
 | 
			
		||||
            self.assertTrue(out.stride() == out_ref.stride())
 | 
			
		||||
            self.assertTrue(torch.allclose(out.values(), out_ref.values()))
 | 
			
		||||
 | 
			
		||||
            # Check that no upper/lower bound guards are incurred
 | 
			
		||||
            def backend(gm, args):
 | 
			
		||||
                context = torch._guards.TracingContext.get()
 | 
			
		||||
                guards = [str(g.expr) for g in context.fake_mode.shape_env.guards]
 | 
			
		||||
                ranges = [
 | 
			
		||||
                    f"{s}: [{vr.lower}, {vr.upper}]"
 | 
			
		||||
                    for s, vr in context.fake_mode.shape_env.var_to_range.items()
 | 
			
		||||
                ]
 | 
			
		||||
                self.assertExpectedInline("\n".join(guards), """Eq(s3 - 1, s0)""")
 | 
			
		||||
                self.assertExpectedInline(
 | 
			
		||||
                    "\n".join(ranges),
 | 
			
		||||
                    """\
 | 
			
		||||
s0: [2, 9223372036854775805]
 | 
			
		||||
s2: [2, 9223372036854775806]
 | 
			
		||||
s3: [3, 9223372036854775806]
 | 
			
		||||
s5: [2, 9223372036854775806]""",
 | 
			
		||||
                )
 | 
			
		||||
                return gm
 | 
			
		||||
 | 
			
		||||
            torch._dynamo.reset()
 | 
			
		||||
            compile_fn = torch.compile(
 | 
			
		||||
                fn, fullgraph=True, backend=backend, dynamic=True
 | 
			
		||||
            )
 | 
			
		||||
            out = compile_fn(nt_view)
 | 
			
		||||
    # NJT1 -> Dense -> NJT2 -> Dense view
 | 
			
		||||
    # During view replay, the Dense -> NJT2 part will construct an intermediate,
 | 
			
		||||
    # symbolically-sized NJT that is immediately deconstructed to return the final dense
 | 
			
		||||
    # view. To construct this intermediate properly, we need the associated nested int
 | 
			
		||||
    # to be symbolic. This view is expected to fail compilation until symbolic nested ints
 | 
			
		||||
    # are cached onto fake offsets to solve this problem.
 | 
			
		||||
    @unittest.expectedFailure
 | 
			
		||||
    def test_subclass_dense_subclass_dense_view(self):
 | 
			
		||||
        x = self._get_jagged_tensor(((2, 3, 4), 3), None, requires_grad=True)[0].clone()
 | 
			
		||||
        offsets2 = x.offsets().clone().detach()
 | 
			
		||||
        nt_view = nested_view_from_values_offsets(x.values(), offsets2).values()
 | 
			
		||||
        self._input_view_test(nt_view)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
@ -435,6 +435,13 @@ aten::_nested_from_padded
 | 
			
		||||
aten::_nested_from_padded.out
 | 
			
		||||
aten::_nested_from_padded_and_nested_example
 | 
			
		||||
aten::_nested_from_padded_and_nested_example.out
 | 
			
		||||
aten::_nested_get_jagged_dummy
 | 
			
		||||
aten::_nested_get_lengths
 | 
			
		||||
aten::_nested_get_offsets
 | 
			
		||||
aten::_nested_get_ragged_idx
 | 
			
		||||
aten::_nested_get_values
 | 
			
		||||
aten::_nested_get_values_copy
 | 
			
		||||
aten::_nested_get_values_copy.out
 | 
			
		||||
aten::_nested_select_backward
 | 
			
		||||
aten::_nested_sum_backward
 | 
			
		||||
aten::_nested_tensor_from_mask
 | 
			
		||||
@ -452,6 +459,9 @@ aten::_nested_tensor_strides.out
 | 
			
		||||
aten::_nested_view_from_buffer
 | 
			
		||||
aten::_nested_view_from_buffer_copy
 | 
			
		||||
aten::_nested_view_from_buffer_copy.out
 | 
			
		||||
aten::_nested_view_from_jagged
 | 
			
		||||
aten::_nested_view_from_jagged_copy
 | 
			
		||||
aten::_nested_view_from_jagged_copy.out
 | 
			
		||||
aten::_new_zeros_with_same_feature_meta
 | 
			
		||||
aten::_new_zeros_with_same_feature_meta.out
 | 
			
		||||
aten::_nnpack_spatial_convolution
 | 
			
		||||
 | 
			
		||||
@ -72,12 +72,28 @@ from torch.export import export
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
torch.library.define("testlib::returns_tensor_symint", "(Tensor x) -> (Tensor, SymInt)")
 | 
			
		||||
torch.library.define(
 | 
			
		||||
    "testlib::foo",
 | 
			
		||||
    "(Tensor(a!) x, Tensor(b!) z) -> (Tensor, Tensor, Tensor)",
 | 
			
		||||
    tags=torch.Tag.pt2_compliant_tag,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@torch.library.impl("testlib::returns_tensor_symint", "cpu")
 | 
			
		||||
@torch.library.impl_abstract("testlib::returns_tensor_symint")
 | 
			
		||||
def returns_tensor_symint_impl(x):
 | 
			
		||||
    return x, x.shape[0]
 | 
			
		||||
 | 
			
		||||
@torch.library.impl("testlib::foo", "cpu")
 | 
			
		||||
@torch._dynamo.disable
 | 
			
		||||
def foo_impl(x, z):
 | 
			
		||||
    x.add_(5)
 | 
			
		||||
    z.add_(5)
 | 
			
		||||
    return x, z, x + z
 | 
			
		||||
 | 
			
		||||
@torch.library.impl_abstract("testlib::foo")
 | 
			
		||||
def foo_abstract(x, z):
 | 
			
		||||
    return x, z, x + z
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@unittest.skipIf(not torchdynamo.is_dynamo_supported(), "dynamo isn't support")
 | 
			
		||||
class TestDynamismExpression(TestCase):
 | 
			
		||||
@ -3551,6 +3567,30 @@ def forward(self, arg0_1, arg1_1, arg2_1):
 | 
			
		||||
 | 
			
		||||
        self._test_export_same_as_eager(Module(), (torch.randn(4, 4),))
 | 
			
		||||
 | 
			
		||||
    def test_custom_op_auto_functionalize(self):
 | 
			
		||||
        class M(torch.nn.Module):
 | 
			
		||||
            def __init__(self):
 | 
			
		||||
                super().__init__()
 | 
			
		||||
 | 
			
		||||
            def forward(self, x, z):
 | 
			
		||||
                return torch.ops.testlib.foo(x, z)
 | 
			
		||||
 | 
			
		||||
        inps = (torch.ones(5), torch.ones(5))
 | 
			
		||||
        inps_for_export = (torch.ones(5), torch.ones(5))
 | 
			
		||||
        inps_for_export_with_decomp = (torch.ones(5), torch.ones(5))
 | 
			
		||||
 | 
			
		||||
        ep = torch.export.export(M(), inps_for_export)
 | 
			
		||||
        x_new_eager, z_new_eager, legit_eager = M()(*inps)
 | 
			
		||||
        x_new_export, z_new_export, legit_export = ep.module()(*inps_for_export)
 | 
			
		||||
        self.assertTrue(torch.allclose(x_new_eager, x_new_export))
 | 
			
		||||
        self.assertTrue(torch.allclose(z_new_eager, z_new_export))
 | 
			
		||||
        self.assertTrue(torch.allclose(legit_eager, legit_export))
 | 
			
		||||
 | 
			
		||||
        ep = ep.run_decompositions()
 | 
			
		||||
        x_new_export, z_new_export, legit_export = ep.module()(*inps_for_export_with_decomp)
 | 
			
		||||
        self.assertTrue(torch.allclose(x_new_eager, x_new_export))
 | 
			
		||||
        self.assertTrue(torch.allclose(z_new_eager, z_new_export))
 | 
			
		||||
        self.assertTrue(torch.allclose(legit_eager, legit_export))
 | 
			
		||||
 | 
			
		||||
@unittest.skipIf(not torchdynamo.is_dynamo_supported(), "dynamo isn't support")
 | 
			
		||||
class TestOneOffModelExportResult(TestCase):
 | 
			
		||||
 | 
			
		||||
@ -7,8 +7,8 @@ with test_functionalization_with_native_python_assertion)
 | 
			
		||||
import math
 | 
			
		||||
import operator
 | 
			
		||||
import unittest
 | 
			
		||||
from typing import List, Set
 | 
			
		||||
from re import escape
 | 
			
		||||
from typing import List, Set
 | 
			
		||||
 | 
			
		||||
import torch
 | 
			
		||||
from functorch.experimental.control_flow import cond
 | 
			
		||||
@ -17,22 +17,38 @@ from torch._export.pass_base import _ExportPassBaseDeprecatedDoNotUse
 | 
			
		||||
from torch._export.passes.functionalize_side_effectful_ops_pass import (
 | 
			
		||||
    _FunctionalizeSideEffectfulOpsPass,
 | 
			
		||||
)
 | 
			
		||||
from torch._export.passes.replace_set_grad_with_hop_pass import (
 | 
			
		||||
    _is_set_grad_enabled_node,
 | 
			
		||||
    _is_set_grad_enabled_sub_mod,
 | 
			
		||||
)
 | 
			
		||||
from torch._export.passes.replace_view_ops_with_view_copy_ops_pass import (
 | 
			
		||||
    get_view_copy_of_view_op,
 | 
			
		||||
    is_view_op,
 | 
			
		||||
    ReplaceViewOpsWithViewCopyOpsPass,
 | 
			
		||||
)
 | 
			
		||||
from torch._export.utils import (
 | 
			
		||||
    node_inline_,
 | 
			
		||||
    nodes_count,
 | 
			
		||||
    nodes_filter,
 | 
			
		||||
    nodes_map,
 | 
			
		||||
    sequential_split,
 | 
			
		||||
)
 | 
			
		||||
from torch._higher_order_ops.auto_functionalize import auto_functionalized
 | 
			
		||||
from torch.export import export
 | 
			
		||||
from torch.export._remove_auto_functionalized_pass import (
 | 
			
		||||
    unsafe_remove_auto_functionalized_pass,
 | 
			
		||||
)
 | 
			
		||||
from torch.fx.passes.infra.partitioner import Partition
 | 
			
		||||
from torch.fx.passes.operator_support import OperatorSupport
 | 
			
		||||
from torch.library import impl, _scoped_library
 | 
			
		||||
from torch.testing import FileCheck
 | 
			
		||||
from torch.testing._internal.common_utils import run_tests, TestCase, skipIfTorchDynamo, IS_WINDOWS
 | 
			
		||||
from torch.utils import _pytree as pytree
 | 
			
		||||
from torch._export.utils import sequential_split, nodes_filter, nodes_map, node_inline_, nodes_count
 | 
			
		||||
from torch._export.passes.replace_set_grad_with_hop_pass import (
 | 
			
		||||
    _is_set_grad_enabled_node, _is_set_grad_enabled_sub_mod
 | 
			
		||||
from torch.testing._internal.common_utils import (
 | 
			
		||||
    IS_WINDOWS,
 | 
			
		||||
    run_tests,
 | 
			
		||||
    skipIfTorchDynamo,
 | 
			
		||||
    TestCase,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
from torch.utils import _pytree as pytree
 | 
			
		||||
 | 
			
		||||
def count_call_function(graph: torch.fx.Graph, target: torch.ops.OpOverload) -> int:
 | 
			
		||||
    count = 0
 | 
			
		||||
@ -620,5 +636,96 @@ def forward(self, sin, cos):
 | 
			
		||||
            self.assertEqual(before_str, after_inline_str)
 | 
			
		||||
            self.assertEqual(gm(*args), new_gm(*args))
 | 
			
		||||
 | 
			
		||||
    def test_remove_auto_functionalized_pass(self) -> None:
 | 
			
		||||
        with _scoped_library("DO_NOT_USE_TEST_ONLY", "DEF") as lib:
 | 
			
		||||
 | 
			
		||||
            lib.define("custom_mutator(Tensor x, Tensor(a!) y) -> Tensor")
 | 
			
		||||
 | 
			
		||||
            @impl(lib, "custom_mutator", "Meta")
 | 
			
		||||
            def custom_mutator_meta(
 | 
			
		||||
                x: torch.Tensor,
 | 
			
		||||
                y: torch.Tensor,
 | 
			
		||||
            ) -> torch.Tensor:
 | 
			
		||||
                return torch.empty_like(x)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            @impl(lib, "custom_mutator", "CompositeExplicitAutograd")
 | 
			
		||||
            def custom_mutator(
 | 
			
		||||
                x: torch.Tensor,
 | 
			
		||||
                y: torch.Tensor,
 | 
			
		||||
            ) -> torch.Tensor:
 | 
			
		||||
                return x + y.add_(1)
 | 
			
		||||
 | 
			
		||||
            class M(torch.nn.Module):
 | 
			
		||||
                def __init__(self):
 | 
			
		||||
                    super().__init__()
 | 
			
		||||
                    self.register_buffer("state", torch.zeros(1))
 | 
			
		||||
 | 
			
		||||
                def forward(self, x):
 | 
			
		||||
                    return torch.ops.DO_NOT_USE_TEST_ONLY.custom_mutator(x, self.state)
 | 
			
		||||
 | 
			
		||||
            mod = M()
 | 
			
		||||
            x = torch.randn([3, 3])
 | 
			
		||||
            ep = export(mod, (x,))
 | 
			
		||||
            inplace_ep = unsafe_remove_auto_functionalized_pass(ep)
 | 
			
		||||
            nodes = inplace_ep.graph.nodes
 | 
			
		||||
            for node in nodes:
 | 
			
		||||
                if node.op == "call_function":
 | 
			
		||||
                    self.assertFalse(node.target is auto_functionalized)
 | 
			
		||||
                    self.assertFalse(node.target is operator.getitem)
 | 
			
		||||
 | 
			
		||||
            for spec in inplace_ep.graph_signature.output_specs:
 | 
			
		||||
                self.assertFalse("getitem" in spec.arg.name)
 | 
			
		||||
 | 
			
		||||
    def test_remove_auto_functionalized_pass_tuple(self) -> None:
 | 
			
		||||
        with _scoped_library("DO_NOT_USE_TEST_ONLY", "DEF") as lib:
 | 
			
		||||
 | 
			
		||||
            lib.define("custom_mutator_tuple(Tensor x, Tensor(a!) y) -> (Tensor, Tensor)")
 | 
			
		||||
 | 
			
		||||
            @impl(lib, "custom_mutator_tuple", "Meta")
 | 
			
		||||
            def custom_mutator_tuple_meta(
 | 
			
		||||
                x: torch.Tensor,
 | 
			
		||||
                y: torch.Tensor,
 | 
			
		||||
            ):
 | 
			
		||||
                return (torch.empty_like(x), torch.empty_like(x))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            @impl(lib, "custom_mutator_tuple", "CompositeExplicitAutograd")
 | 
			
		||||
            def custom_mutator_tuple(
 | 
			
		||||
                x: torch.Tensor,
 | 
			
		||||
                y: torch.Tensor,
 | 
			
		||||
            ):
 | 
			
		||||
                return (x, x + y.add_(1))
 | 
			
		||||
 | 
			
		||||
            class M(torch.nn.Module):
 | 
			
		||||
                def __init__(self):
 | 
			
		||||
                    super().__init__()
 | 
			
		||||
                    self.register_buffer("state", torch.zeros(1))
 | 
			
		||||
 | 
			
		||||
                def forward(self, x):
 | 
			
		||||
                    return torch.ops.DO_NOT_USE_TEST_ONLY.custom_mutator_tuple(
 | 
			
		||||
                        x, self.state
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
            mod = M()
 | 
			
		||||
            x = torch.randn([3, 3])
 | 
			
		||||
            ep = export(mod, (x,))
 | 
			
		||||
            inplace_ep = unsafe_remove_auto_functionalized_pass(ep)
 | 
			
		||||
 | 
			
		||||
            nodes = inplace_ep.graph.nodes
 | 
			
		||||
            getitems = 0
 | 
			
		||||
            for node in nodes:
 | 
			
		||||
                if node.op == "call_function":
 | 
			
		||||
                    self.assertFalse(node.target is auto_functionalized)
 | 
			
		||||
                    if node.target is operator.getitem:
 | 
			
		||||
                        getitems += 1
 | 
			
		||||
            self.assertEqual(getitems, 2)  # tuple return of len 2
 | 
			
		||||
 | 
			
		||||
            out_specs = inplace_ep.graph_signature.output_specs
 | 
			
		||||
            self.assertEqual(out_specs[0].arg.name, "arg0_1")  # state
 | 
			
		||||
            self.assertEqual(out_specs[1].arg.name, "getitem")  # tuple return 1
 | 
			
		||||
            self.assertEqual(out_specs[2].arg.name, "getitem_1")  # tuple return 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    run_tests()
 | 
			
		||||
 | 
			
		||||
@ -322,6 +322,7 @@ if RUN_CPU:
 | 
			
		||||
        BaseTest("test_relu"),  # multiple inputs
 | 
			
		||||
        BaseTest("test_repeat_interleave", "", test_cpu_repro.CPUReproTests()),
 | 
			
		||||
        BaseTest("test_scalar_input"),
 | 
			
		||||
        BaseTest("test_scalar_output"),
 | 
			
		||||
        BaseTest("test_scaled_dot_product_attention"),
 | 
			
		||||
        BaseTest("test_scatter1"),
 | 
			
		||||
        BaseTest("test_scatter2"),
 | 
			
		||||
 | 
			
		||||
@ -415,6 +415,12 @@ def check_model(
 | 
			
		||||
    if check_has_compiled:
 | 
			
		||||
        assert called, "Ran graph without calling compile_fx"
 | 
			
		||||
    assert type(actual) == type(correct)
 | 
			
		||||
    if isinstance(actual, (tuple, list)):
 | 
			
		||||
        assert len(actual) == len(correct)
 | 
			
		||||
        assert all(
 | 
			
		||||
            type(actual_item) == type(correct_item)
 | 
			
		||||
            for actual_item, correct_item in zip(actual, correct)
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    correct_flat, correct_spec = tree_flatten(correct)
 | 
			
		||||
    actual_flat = pytree.tree_leaves(actual)
 | 
			
		||||
@ -2452,6 +2458,20 @@ class CommonTemplate:
 | 
			
		||||
 | 
			
		||||
        self.common(fn, [torch.randint(5, (1, 8)), 5400])
 | 
			
		||||
 | 
			
		||||
    @torch._dynamo.config.patch(dynamic_shapes=True)
 | 
			
		||||
    @torch._dynamo.config.patch(assume_static_by_default=False)
 | 
			
		||||
    def test_scalar_output(self):
 | 
			
		||||
        def fn(arg0_1, arg2_1):
 | 
			
		||||
            arg1_1 = arg2_1.size(1)
 | 
			
		||||
            view = torch.ops.aten.view.default(arg2_1, [-1, arg1_1])
 | 
			
		||||
            embedding = torch.ops.aten.embedding.default(arg0_1, view)
 | 
			
		||||
            full = torch.ops.aten.full.default([1, arg1_1], 1, dtype=torch.float32)
 | 
			
		||||
            return (full, arg1_1, embedding)
 | 
			
		||||
 | 
			
		||||
        arg0_1 = rand_strided((32128, 768), (768, 1), device="cpu", dtype=torch.float32)
 | 
			
		||||
        arg2_1 = rand_strided((1, 22), (22, 1), device="cpu", dtype=torch.int64)
 | 
			
		||||
        self.common(fn, [arg0_1, arg2_1])
 | 
			
		||||
 | 
			
		||||
    def test_shape_prop_torch_ones(self):
 | 
			
		||||
        class Model(torch.nn.Module):
 | 
			
		||||
            def forward(self, attention_scores):
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ import unittest
 | 
			
		||||
 | 
			
		||||
import torch
 | 
			
		||||
 | 
			
		||||
from torch.testing._internal.common_utils import IS_LINUX
 | 
			
		||||
from torch.testing._internal.common_utils import IS_LINUX, skipIfRocm
 | 
			
		||||
from torch.testing._internal.inductor_utils import HAS_GPU
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
@ -71,6 +71,7 @@ class TestTritonHeuristics(TestCase):
 | 
			
		||||
        ]
 | 
			
		||||
        self.assertEqual(forward(*args), foo_c(*args))
 | 
			
		||||
 | 
			
		||||
    @skipIfRocm
 | 
			
		||||
    def test_artificial_zgrid(self):
 | 
			
		||||
        self._test_artificial_zgrid()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8822,7 +8822,7 @@ get_out().sum().backward()
 | 
			
		||||
                self.assertEqual(a.device, b.device)
 | 
			
		||||
                self.assertEqual(a.dtype, b.dtype)
 | 
			
		||||
 | 
			
		||||
            def _test_fn(fn, inp, *args):
 | 
			
		||||
            def _test_fn(fn, inp, *args, use_unsafe_view_func=False):
 | 
			
		||||
                outs = fn(inp, *args)
 | 
			
		||||
                # handle functions that return multiple views (e.g. split)
 | 
			
		||||
                if isinstance(outs, torch.Tensor):
 | 
			
		||||
@ -8835,7 +8835,10 @@ get_out().sum().backward()
 | 
			
		||||
                    # forward view_func
 | 
			
		||||
                    new_inp = inp.clone()
 | 
			
		||||
                    _assert_match_metadata(new_inp, inp)
 | 
			
		||||
                    new_out = out._view_func(new_inp)
 | 
			
		||||
                    if use_unsafe_view_func:
 | 
			
		||||
                        new_out = out._view_func_unsafe(new_inp)
 | 
			
		||||
                    else:
 | 
			
		||||
                        new_out = out._view_func(new_inp)
 | 
			
		||||
                    _assert_match_metadata(new_out, out)
 | 
			
		||||
                    self.assertEqual(new_out, out)
 | 
			
		||||
 | 
			
		||||
@ -8901,6 +8904,33 @@ get_out().sum().backward()
 | 
			
		||||
 | 
			
		||||
            _test_fn(chain_with_only_current_view_func, torch.randn(2, 3, 4))
 | 
			
		||||
 | 
			
		||||
            # TODO: Move this somewhere else
 | 
			
		||||
            # test NT views
 | 
			
		||||
            from torch.nested._internal.nested_tensor import nested_view_from_values_offsets
 | 
			
		||||
 | 
			
		||||
            values = torch.randn(10, 5)
 | 
			
		||||
            offsets = torch.tensor([0, 3, 6, 10])
 | 
			
		||||
            _test_fn(nested_view_from_values_offsets, values, offsets)
 | 
			
		||||
 | 
			
		||||
            nt = nested_view_from_values_offsets(values, offsets).clone().detach()
 | 
			
		||||
            _test_fn(torch.ops.aten._nested_get_values.default, nt, use_unsafe_view_func=True)
 | 
			
		||||
 | 
			
		||||
            def chain_nt_to_dense_back_and_forth(nt):
 | 
			
		||||
                # NJT1 -> dense -> NJT2 -> dense
 | 
			
		||||
                offsets2 = nt.offsets().clone().detach()
 | 
			
		||||
                return nested_view_from_values_offsets(nt.values(), offsets2).values()
 | 
			
		||||
 | 
			
		||||
            _test_fn(chain_nt_to_dense_back_and_forth, nt, use_unsafe_view_func=True)
 | 
			
		||||
 | 
			
		||||
            def chain_dense_to_nt_back_and_forth(values, offsets):
 | 
			
		||||
                offsets2 = offsets.clone().detach()
 | 
			
		||||
                # dense -> NJT1 -> dense -> NJT2
 | 
			
		||||
                return nested_view_from_values_offsets(
 | 
			
		||||
                    nested_view_from_values_offsets(values, offsets).values(),
 | 
			
		||||
                    offsets2)
 | 
			
		||||
 | 
			
		||||
            _test_fn(chain_dense_to_nt_back_and_forth, values, offsets, use_unsafe_view_func=True)
 | 
			
		||||
 | 
			
		||||
    def test_view_func_replay_with_modified_state(self):
 | 
			
		||||
        with torch.autograd._force_original_view_tracking(True):
 | 
			
		||||
            base = torch.randn(3, 4, 5)
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user