From 93424371952430674650b982018295642ebe8315 Mon Sep 17 00:00:00 2001 From: Andrey Talman Date: Thu, 17 Oct 2024 17:57:21 -0400 Subject: [PATCH] [BE] Remove MacOS x86 artifacts from the code (#5780) MacOS x86 support was deprecated long time ago, remove last artifacts from test-infra code --- .github/workflows/test_build_conda_macos.yml | 53 --------- .github/workflows/test_build_wheels_macos.yml | 57 --------- .github/workflows/test_macos_job.yml | 38 +----- .github/workflows/validate-domain-library.yml | 32 ----- tools/scripts/generate_binary_build_matrix.py | 110 +++++++++--------- .../assets/build_matrix_macos_conda.json | 2 +- .../assets/build_matrix_macos_wheel.json | 2 +- 7 files changed, 63 insertions(+), 231 deletions(-) delete mode 100644 .github/workflows/test_build_conda_macos.yml delete mode 100644 .github/workflows/test_build_wheels_macos.yml diff --git a/.github/workflows/test_build_conda_macos.yml b/.github/workflows/test_build_conda_macos.yml deleted file mode 100644 index 3007875092..0000000000 --- a/.github/workflows/test_build_conda_macos.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Test Build MacOS Conda - -on: - pull_request: - paths: - - .github/actions/setup-binary-builds/action.yml - - .github/workflows/test_build_conda_macos.yml - - .github/workflows/build_conda_macos.yml - - .github/workflows/generate_binary_build_matrix.yml - - .github/workflows/_binary_conda_upload.yml - - tools/scripts/generate_binary_build_matrix.py - -jobs: - generate-matrix: - uses: ./.github/workflows/generate_binary_build_matrix.yml - with: - package-type: conda - os: macos - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - test: - needs: generate-matrix - strategy: - fail-fast: false - matrix: - include: - - repository: pytorch/audio - conda-package-directory: packaging/torchaudio - smoke-test-script: test/smoke_test/smoke_test.py - package-name: torchaudio - - repository: pytorch/vision - conda-package-directory: packaging/torchvision - smoke-test-script: test/smoke_test.py - package-name: torchvision - cache-path: "" - cache-key: "" - name: ${{ matrix.repository }} - uses: ./.github/workflows/build_conda_macos.yml - with: - conda-package-directory: ${{ matrix.conda-package-directory }} - repository: ${{ matrix.repository }} - ref: nightly - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - build-matrix: ${{ needs.generate-matrix.outputs.matrix }} - smoke-test-script: ${{ matrix.smoke-test-script }} - runner-type: macos-12 - package-name: ${{ matrix.package-name }} - trigger-event: "${{ github.event_name }}" - cache-path: ${{ matrix.cache-path }} - cache-key: ${{ matrix.cache-key }} - secrets: - CONDA_PYTORCHBOT_TOKEN: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }} diff --git a/.github/workflows/test_build_wheels_macos.yml b/.github/workflows/test_build_wheels_macos.yml deleted file mode 100644 index 043f301485..0000000000 --- a/.github/workflows/test_build_wheels_macos.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Test Build MacOS Wheels - -on: - pull_request: - paths: - - .github/actions/setup-binary-builds/action.yml - - .github/workflows/test_build_wheels_macos.yml - - .github/workflows/build_wheels_macos.yml - - .github/workflows/generate_binary_build_matrix.yml - - tools/scripts/generate_binary_build_matrix.py - workflow_dispatch: - -permissions: - id-token: write - contents: read - -jobs: - generate-matrix: - uses: ./.github/workflows/generate_binary_build_matrix.yml - with: - package-type: wheel - os: macos - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - test: - needs: generate-matrix - strategy: - fail-fast: false - matrix: - include: - - repository: pytorch/audio - conda-package-directory: packaging/torchaudio - smoke-test-script: test/smoke_test/smoke_test.py - package-name: torchaudio - - repository: pytorch/vision - pre-script: packaging/pre_build_script.sh - post-script: packaging/pre_build_script.sh - smoke-test-script: test/smoke_test.py - package-name: torchvision - cache-path: "" - cache-key: "" - uses: ./.github/workflows/build_wheels_macos.yml - name: ${{ matrix.repository }} - with: - repository: ${{ matrix.repository }} - ref: nightly - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - build-matrix: ${{ needs.generate-matrix.outputs.matrix }} - pre-script: ${{ matrix.pre-script }} - post-script: ${{ matrix.post-script }} - smoke-test-script: ${{ matrix.smoke-test-script }} - runner-type: macos-12 - package-name: ${{ matrix.package-name }} - trigger-event: "${{ github.event_name }}" - cache-path: ${{ matrix.cache-path }} - cache-key: ${{ matrix.cache-key }} diff --git a/.github/workflows/test_macos_job.yml b/.github/workflows/test_macos_job.yml index 61a6b6fc94..70b4fc2310 100644 --- a/.github/workflows/test_macos_job.yml +++ b/.github/workflows/test_macos_job.yml @@ -9,53 +9,25 @@ on: workflow_dispatch: jobs: - test-x86: - uses: ./.github/workflows/macos_job.yml - with: - job-name: "macos-x86-64-py3.8" - runner: macos-12 - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - script: | - conda create --yes --quiet -n test python=3.8 - conda activate test - python3 -m pip install --index-url https://download.pytorch.org/whl/nightly/cpu --pre torch - # Can import pytorch - python3 -c 'import torch' test-m1: uses: ./.github/workflows/macos_job.yml with: - job-name: "macos-arm64-py3.8" + job-name: "macos-arm64-py3.10" runner: macos-m1-stable test-infra-repository: ${{ github.repository }} test-infra-ref: ${{ github.ref }} submodules: ${{ 'true' }} timeout: 60 script: | - conda create --yes --quiet -n test python=3.8 + conda create --yes --quiet -n test python=3.10 conda activate test python3 -m pip install --index-url https://download.pytorch.org/whl/nightly/cpu --pre torch # Can import pytorch, cuda is available python3 -c 'import torch' - test-x86-with-repo: - uses: ./.github/workflows/macos_job.yml - with: - job-name: "macos-x86-64-py3.8" - runner: macos-12 - test-infra-repository: ${{ github.repository }} - test-infra-ref: ${{ github.ref }} - repository: pytorch/vision - ref: main - script: | - conda create --yes --quiet -n test python=3.8 - conda activate test - python3 -m pip install --index-url https://download.pytorch.org/whl/nightly/cpu --pre torch - # Can import pytorch - python3 -c 'import torch' test-m1-with-repo: uses: ./.github/workflows/macos_job.yml with: - job-name: "macos-arm64-py3.8" + job-name: "macos-arm64-py3.10" runner: macos-m1-stable test-infra-repository: ${{ github.repository }} test-infra-ref: ${{ github.ref }} @@ -64,7 +36,7 @@ jobs: ref: main timeout: 60 script: | - conda create --yes --quiet -n test python=3.8 + conda create --yes --quiet -n test python=3.10 conda activate test python3 -m pip install --index-url https://download.pytorch.org/whl/nightly/cpu --pre torch # Can import pytorch, cuda is available @@ -105,7 +77,6 @@ jobs: matrix: include: - runner: macos-m1-stable - - runner: macos-13-xlarge fail-fast: false with: job-name: "test-secrets-no-filter-var" @@ -121,7 +92,6 @@ jobs: matrix: include: - runner: macos-m1-stable - - runner: macos-13-xlarge fail-fast: false with: job-name: "test-secrets-filter-var" diff --git a/.github/workflows/validate-domain-library.yml b/.github/workflows/validate-domain-library.yml index 10e3637b40..6175dae36e 100644 --- a/.github/workflows/validate-domain-library.yml +++ b/.github/workflows/validate-domain-library.yml @@ -73,14 +73,6 @@ jobs: os: windows channel: ${{ inputs.channel }} with-cuda: ${{ inputs.with_cuda }} - generate-macos-matrix: - if: (inputs.os == 'macos' || inputs.os == 'all') - uses: ./.github/workflows/generate_binary_build_matrix.yml - with: - package-type: ${{ inputs.package_type }} - os: macos - channel: ${{ inputs.channel }} - with-cuda: ${{ inputs.with_cuda }} generate-macos-arm64-matrix: if: (inputs.os == 'macos-arm64' || inputs.os == 'all') uses: ./.github/workflows/generate_binary_build_matrix.yml @@ -136,30 +128,6 @@ jobs: source "${GITHUB_WORKSPACE}/test-infra/.github/scripts/install_torch.sh" fi eval $SMOKE_TEST - validate-macos: - if: (inputs.os == 'macos' || inputs.os == 'all') - needs: generate-macos-matrix - strategy: - matrix: ${{ fromJson(needs.generate-macos-matrix.outputs.matrix) }} - fail-fast: false - uses: ./.github/workflows/macos_job.yml - name: "macos-${{ matrix.package_type }}-${{ matrix.python_version }}-${{ matrix.desired_cuda }}" - with: - runner: ${{ matrix.validation_runner }} - repository: ${{ inputs.repository }} - ref: ${{ inputs.ref || github.ref }} - job-name: "macos-${{ matrix.package_type }}-${{ matrix.python_version }}-${{ matrix.desired_cuda }}" - binary-matrix: ${{ toJSON(matrix) }} - script: | - set -ex - export ENV_NAME="conda-env-${{ github.run_id }}" - export TARGET_OS="macos" - export SMOKE_TEST="${{ inputs.smoke_test }}" - export RELEASE_VERSION=${{ inputs.version }} - if [[ ${{inputs.install_torch}} == 'true' ]]; then - source "${GITHUB_WORKSPACE}/test-infra/.github/scripts/install_torch.sh" - fi - eval $SMOKE_TEST validate-macos-arm64: if: (inputs.os == 'macos-arm64' || inputs.os == 'all') needs: generate-macos-arm64-matrix diff --git a/tools/scripts/generate_binary_build_matrix.py b/tools/scripts/generate_binary_build_matrix.py index 122ae0d946..f819ef707d 100644 --- a/tools/scripts/generate_binary_build_matrix.py +++ b/tools/scripts/generate_binary_build_matrix.py @@ -36,9 +36,9 @@ } CUDA_CUDDN_VERSIONS = { - "11.8": { "cuda": "11.8.0", "cudnn": "9" }, - "12.1": { "cuda": "12.1.1", "cudnn": "9"}, - "12.4": { "cuda": "12.4.0", "cudnn": "9"}, + "11.8": {"cuda": "11.8.0", "cudnn": "9"}, + "12.1": {"cuda": "12.1.1", "cudnn": "9"}, + "12.4": {"cuda": "12.4.0", "cudnn": "9"}, } PACKAGE_TYPES = ["wheel", "conda", "libtorch"] @@ -52,7 +52,6 @@ # OS constants LINUX = "linux" LINUX_AARCH64 = "linux-aarch64" -MACOS = "macos" MACOS_ARM64 = "macos-arm64" WINDOWS = "windows" @@ -87,7 +86,6 @@ WIN_GPU_RUNNER = "windows.g4dn.xlarge" WIN_CPU_RUNNER = "windows.4xlarge" MACOS_M1_RUNNER = "macos-m1-stable" -MACOS_RUNNER = "macos-12" PACKAGES_TO_INSTALL_WHL = "torch torchvision torchaudio" @@ -133,8 +131,6 @@ def validation_runner(arch_type: str, os: str) -> str: return WIN_CPU_RUNNER elif os == MACOS_ARM64: return MACOS_M1_RUNNER - elif os == MACOS: - return MACOS_RUNNER else: # default to linux cpu runner return LINUX_CPU_RUNNER @@ -221,7 +217,7 @@ def get_conda_install_command( if gpu_arch_type == CUDA: conda_package_type = f"pytorch-cuda={arch_version}" conda_channels = f"{conda_channels} -c nvidia" - elif os not in (MACOS, MACOS_ARM64): + elif os not in (MACOS_ARM64): conda_package_type = "cpuonly" else: return f"conda install {pytorch_channel}::{PACKAGES_TO_INSTALL_CONDA} {conda_channels}" @@ -266,8 +262,8 @@ def get_libtorch_install_command( else f"{prefix}-{_libtorch_variant}-latest.zip" ) - if os in [MACOS, MACOS_ARM64]: - arch = "x86_64" if os == MACOS else "arm64" + if os == MACOS_ARM64: + arch = "arm64" build_name = f"libtorch-macos-{arch}-latest.zip" if channel in [RELEASE, TEST]: build_name = f"libtorch-macos-{arch}-{CURRENT_VERSION}.zip" @@ -308,14 +304,17 @@ def get_wheel_install_command( if (gpu_arch_version in CUDA_ARCHES) and (os == LINUX) and (channel == NIGHTLY): return f"{WHL_INSTALL_BASE} {PACKAGES_TO_INSTALL_WHL} --index-url {get_base_download_url_for_repo('whl', channel, gpu_arch_type, desired_cuda)}_pypi_pkg" else: - raise ValueError("Split build is not supported for this configuration. It is only supported for CUDA 11.8, 12.1, 12.4 on Linux nightly builds.") - if channel == RELEASE and (not use_only_dl_pytorch_org) and ( - (gpu_arch_version == "12.4" and os == LINUX) - or ( - gpu_arch_type == CPU - and os in [WINDOWS, MACOS, MACOS_ARM64] + raise ValueError( + "Split build is not supported for this configuration. It is only supported for CUDA 11.8, 12.1, 12.4 on Linux nightly builds." + ) + if ( + channel == RELEASE + and (not use_only_dl_pytorch_org) + and ( + (gpu_arch_version == "12.4" and os == LINUX) + or (gpu_arch_type == CPU and os in [WINDOWS, MACOS_ARM64]) + or (os == LINUX_AARCH64) ) - or (os == LINUX_AARCH64) ): return f"{WHL_INSTALL_BASE} {PACKAGES_TO_INSTALL_WHL}" else: @@ -419,7 +418,7 @@ def generate_libtorch_matrix( abi_versions = [RELEASE, DEBUG] elif os == LINUX: abi_versions = [PRE_CXX11_ABI, CXX11_ABI] - elif os in [MACOS, MACOS_ARM64]: + elif os in [MACOS_ARM64]: abi_versions = [CXX11_ABI] if libtorch_variants is None: @@ -447,11 +446,11 @@ def generate_libtorch_matrix( "libtorch_variant": libtorch_variant, "libtorch_config": libtorch_config, "devtoolset": devtoolset, - "container_image": LIBTORCH_CONTAINER_IMAGES[ - (arch_version, abi_version) - ] - if os != WINDOWS - else "", + "container_image": ( + LIBTORCH_CONTAINER_IMAGES[(arch_version, abi_version)] + if os != WINDOWS + else "" + ), "package_type": "libtorch", "build_name": f"libtorch-{gpu_arch_type}{gpu_arch_version}-{libtorch_variant}-{abi_version}".replace( ".", "_" @@ -531,42 +530,47 @@ def generate_wheels_matrix( for arch_version in arches: gpu_arch_type = arch_type(arch_version) gpu_arch_version = ( - "" - if arch_version in [CPU, CPU_AARCH64, XPU] - else arch_version + "" if arch_version in [CPU, CPU_AARCH64, XPU] else arch_version ) desired_cuda = translate_desired_cuda(gpu_arch_type, gpu_arch_version) entry = { - "python_version": python_version, - "gpu_arch_type": gpu_arch_type, - "gpu_arch_version": gpu_arch_version, - "desired_cuda": desired_cuda, - "container_image": WHEEL_CONTAINER_IMAGES[arch_version], - "package_type": package_type, - "build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}".replace( - ".", "_" - ), - "validation_runner": validation_runner(gpu_arch_type, os), - "installation": get_wheel_install_command( - os, - channel, - gpu_arch_type, - gpu_arch_version, - desired_cuda, - python_version, - use_only_dl_pytorch_org, - ), - "channel": channel, - "upload_to_base_bucket": upload_to_base_bucket, - "stable_version": CURRENT_VERSION, - "use_split_build": False, - } + "python_version": python_version, + "gpu_arch_type": gpu_arch_type, + "gpu_arch_version": gpu_arch_version, + "desired_cuda": desired_cuda, + "container_image": WHEEL_CONTAINER_IMAGES[arch_version], + "package_type": package_type, + "build_name": f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}".replace( + ".", "_" + ), + "validation_runner": validation_runner(gpu_arch_type, os), + "installation": get_wheel_install_command( + os, + channel, + gpu_arch_type, + gpu_arch_version, + desired_cuda, + python_version, + use_only_dl_pytorch_org, + ), + "channel": channel, + "upload_to_base_bucket": upload_to_base_bucket, + "stable_version": CURRENT_VERSION, + "use_split_build": False, + } ret.append(entry) - if use_split_build and (gpu_arch_version in CUDA_ARCHES) and (os == LINUX) and (channel == NIGHTLY): + if ( + use_split_build + and (gpu_arch_version in CUDA_ARCHES) + and (os == LINUX) + and (channel == NIGHTLY) + ): entry = entry.copy() - entry["build_name"] = f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-split".replace( - ".", "_" + entry["build_name"] = ( + f"{package_type}-py{python_version}-{gpu_arch_type}{gpu_arch_version}-split".replace( + ".", "_" + ) ) entry["use_split_build"] = True ret.append(entry) diff --git a/tools/tests/assets/build_matrix_macos_conda.json b/tools/tests/assets/build_matrix_macos_conda.json index d34ad80507..90d9da30d8 100644 --- a/tools/tests/assets/build_matrix_macos_conda.json +++ b/tools/tests/assets/build_matrix_macos_conda.json @@ -1 +1 @@ -{"include": [{"python_version": "3.9", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_9-cpu", "validation_runner": "macos-12", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.10", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_10-cpu", "validation_runner": "macos-12", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.11", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_11-cpu", "validation_runner": "macos-12", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.12", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_12-cpu", "validation_runner": "macos-12", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}]} +{"include": [{"python_version": "3.9", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_9-cpu", "validation_runner": "linux.2xlarge", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.10", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_10-cpu", "validation_runner": "linux.2xlarge", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.11", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_11-cpu", "validation_runner": "linux.2xlarge", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}, {"python_version": "3.12", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/conda-builder:cpu", "package_type": "conda", "build_name": "conda-py3_12-cpu", "validation_runner": "linux.2xlarge", "channel": "nightly", "stable_version": "2.5.0", "installation": "conda install pytorch-nightly::pytorch torchvision torchaudio -c pytorch-nightly"}]} diff --git a/tools/tests/assets/build_matrix_macos_wheel.json b/tools/tests/assets/build_matrix_macos_wheel.json index 3b8cb32baa..d077b806a3 100644 --- a/tools/tests/assets/build_matrix_macos_wheel.json +++ b/tools/tests/assets/build_matrix_macos_wheel.json @@ -1 +1 @@ -{"include": [{"python_version": "3.9", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_9-cpu", "validation_runner": "macos-12", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.10", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_10-cpu", "validation_runner": "macos-12", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.11", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_11-cpu", "validation_runner": "macos-12", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.12", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_12-cpu", "validation_runner": "macos-12", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}]} +{"include": [{"python_version": "3.9", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_9-cpu", "validation_runner": "linux.2xlarge", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.10", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_10-cpu", "validation_runner": "linux.2xlarge", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.11", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_11-cpu", "validation_runner": "linux.2xlarge", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}, {"python_version": "3.12", "gpu_arch_type": "cpu", "gpu_arch_version": "", "desired_cuda": "cpu", "container_image": "pytorch/manylinux-builder:cpu", "package_type": "wheel", "build_name": "wheel-py3_12-cpu", "validation_runner": "linux.2xlarge", "installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu", "channel": "nightly", "upload_to_base_bucket": "yes", "stable_version": "2.5.0", "use_split_build": false}]}