pull #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Owner(s): ["module: ci"] | |
| name: pull | |
| on: | |
| pull_request: | |
| branches-ignore: | |
| - nightly | |
| push: | |
| branches: | |
| - main | |
| - release/* | |
| - landchecks/* | |
| tags: | |
| - ciflow/pull/* | |
| workflow_dispatch: | |
| inputs: | |
| jobs-to-include: | |
| description: "Space-separated list of job display names to run (empty = all)" | |
| required: false | |
| default: "" | |
| type: string | |
| tests-to-include: | |
| description: "Space-separated tests to include (passed to test runner; empty = default)" | |
| required: false | |
| default: "" | |
| type: string | |
| schedule: | |
| - cron: 29 8 * * * # about 1:29am PDT | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' && github.run_id }}-${{ github.event_name == 'schedule' }} | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| actions: read | |
| jobs: | |
| # See job-filter.yml for rules on adding job filter conditions | |
| job-filter: | |
| if: github.repository_owner == 'pytorch' | |
| name: job-filter | |
| uses: ./.github/workflows/job-filter.yml | |
| with: | |
| jobs-to-include: ${{ github.event.inputs.jobs-to-include || '' }} | |
| llm-td: | |
| if: github.repository_owner == 'pytorch' | |
| name: before-test | |
| uses: ./.github/workflows/llm_td_retrieval.yml | |
| target-determination: | |
| name: before-test | |
| uses: ./.github/workflows/target_determination.yml | |
| needs: llm-td | |
| get-label-type: | |
| name: get-label-type | |
| uses: pytorch/pytorch/.github/workflows/_runner-determinator.yml@main | |
| if: ${{ (github.event_name != 'schedule' || github.repository == 'pytorch/pytorch') && github.repository_owner == 'pytorch' }} | |
| with: | |
| triggering_actor: ${{ github.triggering_actor }} | |
| issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }} | |
| curr_branch: ${{ github.head_ref || github.ref_name }} | |
| check_experiments: lf | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.10-gcc11 (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_10-gcc11-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-gcc11 ') }} | |
| name: linux-jammy-py3.10-gcc11 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.10-gcc11 | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.10-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 8, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 9, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 10, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "docs_test", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "jit_legacy", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "backwards_compat", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.c7i.2xlarge" }, | |
| # Use m7i instead of m7a to match the existing (Intel Xeon) numerics. DTensor crossref tests like linalg.multi_dot have tight | |
| # float32 tolerances sensitive to different FMA/reduction order across CPU vendors. | |
| { config: "distributed", shard: 1, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 2, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 3, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 4, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 5, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 6, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 7, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "distributed", shard: 8, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge.amx" }, | |
| { config: "numpy_2_x", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.c7i.2xlarge" }, | |
| { config: "libtorch_agnostic_targetting", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: gcc11 | |
| secrets: inherit | |
| linux-jammy-py3_10-gcc11-test: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-gcc11 ') }} | |
| name: linux-jammy-py3.10-gcc11 | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-py3_10-gcc11-build | |
| - target-determination | |
| - job-filter | |
| - get-label-type | |
| with: | |
| build-environment: ${{ needs.linux-jammy-py3_10-gcc11-build.outputs.build-environment }} | |
| docker-image: ${{ needs.linux-jammy-py3_10-gcc11-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-py3_10-gcc11-build.outputs.test-matrix }} | |
| tests-to-include: ${{ github.event.inputs.tests-to-include || '' }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.10" | |
| compiler: gcc11 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-aarch64-py3.10-gcc11 (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-aarch64-py3_10-gcc13-build: | |
| name: linux-jammy-aarch64-py3.10 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: ${{ needs.get-label-type.outputs.label-type }} | |
| build-environment: linux-jammy-aarch64-py3.10 | |
| docker-image-name: ci-image:pytorch-linux-jammy-aarch64-py3.10-gcc13 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| runner: linux.arm64.m8g.4xlarge | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.arm64.m8g.4xlarge" }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: gcc13 | |
| secrets: inherit | |
| linux-jammy-aarch64-py3_10-gcc13-test: | |
| name: linux-jammy-aarch64-py3.10 | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-aarch64-py3_10-gcc13-build | |
| - target-determination | |
| - job-filter | |
| - get-label-type | |
| with: | |
| build-environment: ${{ needs.linux-jammy-aarch64-py3_10-gcc13-build.outputs.build-environment }} | |
| docker-image: ${{ needs.linux-jammy-aarch64-py3_10-gcc13-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-aarch64-py3_10-gcc13-build.outputs.test-matrix }} | |
| tests-to-include: ${{ github.event.inputs.tests-to-include || '' }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.10" | |
| compiler: gcc13 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.14t-clang21 (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_14t-clang21-build: | |
| name: linux-jammy-py3.14t-clang21 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: get-label-type | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.14t-clang21 | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.14t-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 8, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 9, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 10, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 11, num_shards: 11, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| # Free-threaded Python 3.14t has ~20-50% higher per-object memory overhead from biased reference counting and | |
| # per-object locks, and test_nn (531 tests) under dynamo wrapping with compiled autograd consistently OOMs at 64GB. | |
| { config: "dynamo_wrapped", shard: 1, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 2, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 3, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 4, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 5, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 6, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 7, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 8, num_shards: 8, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "einops", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| ]} | |
| python-version: "3.14t" | |
| compiler: clang21 | |
| secrets: inherit | |
| linux-jammy-py3_14t-clang21-test: | |
| name: linux-jammy-py3.14t-clang21 | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-py3_14t-clang21-build | |
| - target-determination | |
| - get-label-type | |
| with: | |
| build-environment: linux-jammy-py3.14t-clang21 | |
| docker-image: ${{ needs.linux-jammy-py3_14t-clang21-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-py3_14t-clang21-build.outputs.test-matrix }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.14t" | |
| compiler: clang21 | |
| secrets: inherit | |
| # Docs are built and the preview is published by docs-build.yml so the | |
| # preview can go up as soon as the docs finish, without waiting for the rest | |
| # of this workflow to conclude. | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.10-gcc11-no-ops (build only) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_10-gcc11-no-ops: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-gcc11-no-ops ') }} | |
| name: linux-jammy-py3.10-gcc11-no-ops | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.10-gcc11-no-ops | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.10-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 1 }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: gcc11 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.10-clang21-asan (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_10-clang21-asan-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-clang21-asan ') }} | |
| name: linux-jammy-py3.10-clang21-asan | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner: linux.c7i.4xlarge | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.10-clang21-asan | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.10-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 8, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 9, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 10, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 11, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 12, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 13, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 14, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 15, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 16, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 17, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 18, num_shards: 18, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: clang21 | |
| # TODO (huydhn): Add this back once other workflow migrates | |
| # sync-tag: asan-build | |
| secrets: inherit | |
| linux-jammy-py3_10-clang21-asan-test: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-clang21-asan ') }} | |
| name: linux-jammy-py3.10-clang21-asan | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-py3_10-clang21-asan-build | |
| - target-determination | |
| - job-filter | |
| - get-label-type | |
| with: | |
| build-environment: ${{ needs.linux-jammy-py3_10-clang21-asan-build.outputs.build-environment }} | |
| docker-image: ${{ needs.linux-jammy-py3_10-clang21-asan-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-py3_10-clang21-asan-build.outputs.test-matrix }} | |
| tests-to-include: ${{ github.event.inputs.tests-to-include || '' }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.10" | |
| compiler: clang21 | |
| # TODO (huydhn): Add this back once other workflow migrates | |
| # sync-tag: asan-test | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.10-clang21 (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_10-clang21-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-clang21 ') }} | |
| name: linux-jammy-py3.10-clang21 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.10-clang21 | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.10-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 8, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 9, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 10, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "crossref", shard: 1, num_shards: 5, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "crossref", shard: 2, num_shards: 5, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "crossref", shard: 3, num_shards: 5, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "crossref", shard: 4, num_shards: 5, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "crossref", shard: 5, num_shards: 5, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 1, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 2, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 3, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 4, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 5, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 6, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "einops", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "onnx", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: clang21 | |
| secrets: inherit | |
| linux-jammy-py3_10-clang21-test: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-clang21 ') }} | |
| name: linux-jammy-py3.10-clang21 | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-py3_10-clang21-build | |
| - target-determination | |
| - job-filter | |
| - get-label-type | |
| with: | |
| build-environment: ${{ needs.linux-jammy-py3_10-clang21-build.outputs.build-environment }} | |
| docker-image: ${{ needs.linux-jammy-py3_10-clang21-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-py3_10-clang21-build.outputs.test-matrix }} | |
| tests-to-include: ${{ github.event.inputs.tests-to-include || '' }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.10" | |
| compiler: clang21 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.14-clang21 (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_14-clang21-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.14-clang21 ') }} | |
| name: linux-jammy-py3.14-clang21 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.14-clang21 | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.14-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 2, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 3, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 4, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 5, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 6, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 7, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 8, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 9, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "default", shard: 10, num_shards: 10, runner: "${{ needs.get-label-type.outputs.label-type }}linux.4xlarge" }, | |
| { config: "dynamo_wrapped", shard: 1, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 2, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 3, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 4, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 5, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 6, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "dynamo_wrapped", shard: 7, num_shards: 7, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "einops", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| { config: "openreg", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" }, | |
| ]} | |
| python-version: "3.14" | |
| compiler: clang21 | |
| secrets: inherit | |
| linux-jammy-py3_14-clang21-test: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.14-clang21 ') }} | |
| name: linux-jammy-py3.14-clang21 | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: | |
| - linux-jammy-py3_14-clang21-build | |
| - job-filter | |
| - get-label-type | |
| with: | |
| build-environment: ${{ needs.linux-jammy-py3_14-clang21-build.outputs.build-environment }} | |
| docker-image: ${{ needs.linux-jammy-py3_14-clang21-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.linux-jammy-py3_14-clang21-build.outputs.test-matrix }} | |
| tests-to-include: ${{ github.event.inputs.tests-to-include || '' }} | |
| tests-to-exclude: "inductor/test_torchinductor_opinfo" | |
| python-version: "3.14" | |
| compiler: clang21 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-cuda13.0-cudnn9-py3.10-clang20 (build only) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-cuda13_0-cudnn9-py3_10-clang20-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-cuda13.0-cudnn9-py3.10-clang20 ') }} | |
| name: linux-jammy-cuda13.0-cudnn9-py3.10-clang20 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-cuda13.0-cudnn9-py3.10-clang20 | |
| docker-image-name: ci-image:pytorch-linux-jammy-cuda13.0-cudnn9-py3.10-clang20 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| cuda-arch-list: '7.5 8.0' | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 1 }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: clang20 | |
| cuda-version: "13.0" | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-cuda13.2-cudnn9-py3.10-clang20 (build only) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-cuda13_2-cudnn9-py3_10-clang20-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-cuda13.2-cudnn9-py3.10-clang20 ') }} | |
| name: linux-jammy-cuda13.2-cudnn9-py3.10-clang20 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-cuda13.2-cudnn9-py3.10-clang20 | |
| docker-image-name: ci-image:pytorch-linux-jammy-cuda13.2-cudnn9-py3.10-clang20 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| cuda-arch-list: '7.5 8.0' | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 1 }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: clang20 | |
| cuda-version: "13.2" | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch (build only) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-py3_10-gcc11-mobile-lightweight-dispatch-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch-build ') }} | |
| name: linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch-build | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch-build | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.10-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| build-generates-artifacts: false | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 1 }, | |
| ]} | |
| python-version: "3.10" | |
| compiler: gcc11 | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-jammy-rocm-py3.10 (build) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-jammy-rocm-py3_10-build: | |
| if: ${{ github.event_name == 'pull_request' || (needs.job-filter.outputs.jobs != '' && contains(needs.job-filter.outputs.jobs, ' linux-jammy-rocm-py3.10 ')) }} | |
| # don't run build twice on main | |
| name: linux-jammy-rocm-py3.10 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-rocm-py3.10 | |
| docker-image-name: ci-image:pytorch-linux-jammy-rocm-n-py3 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| # TODO (huydhn): Add this back once other workflow migrates | |
| # sync-tag: rocm-build | |
| python-version: "3.10" | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ linux-noble-xpu-n-py3.10 (build) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| linux-noble-xpu-n-py3_10-build: | |
| if: ${{ needs.job-filter.outputs.jobs == '' || contains(needs.job-filter.outputs.jobs, ' linux-jammy-xpu-n-py3.10 ') }} | |
| name: linux-noble-xpu-n-py3.10 | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: | |
| - get-label-type | |
| - job-filter | |
| with: | |
| runner_prefix: ${{ needs.get-label-type.outputs.label-type }} | |
| runner: linux.c7i.8xlarge | |
| build-environment: linux-noble-xpu-n-py3.10 | |
| docker-image-name: ci-image:pytorch-linux-noble-xpu-n-py3 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "default", shard: 1, num_shards: 4, runner: "linux.idc.xpu" }, | |
| { config: "default", shard: 2, num_shards: 4, runner: "linux.idc.xpu" }, | |
| { config: "default", shard: 3, num_shards: 4, runner: "linux.idc.xpu" }, | |
| { config: "default", shard: 4, num_shards: 4, runner: "linux.idc.xpu" }, | |
| ]} | |
| python-version: "3.10" | |
| secrets: inherit | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| # ║ dynamo-cpython (build + test) ║ | |
| # ╠══════════════════════════════════════════════════════════════════════╣ | |
| dynamo-cpython-build: | |
| name: dynamo-cpython-build | |
| uses: ./.github/workflows/_linux-build.yml | |
| needs: get-label-type | |
| with: | |
| runner_prefix: "${{ needs.get-label-type.outputs.label-type }}" | |
| build-environment: linux-jammy-py3.13-clang21 | |
| docker-image-name: ci-image:pytorch-linux-jammy-py3.13-clang21 | |
| ci-docker-hash: ${{ needs.get-label-type.outputs.ci-docker-hash }} | |
| test-matrix: | | |
| { include: [ | |
| { config: "dynamo_cpython", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.c7i.2xlarge" }, | |
| ]} | |
| python-version: "3.13" | |
| compiler: clang21 | |
| secrets: inherit | |
| dynamo-cpython-test: | |
| name: dynamo-cpython-test | |
| uses: ./.github/workflows/_linux-test.yml | |
| needs: [get-label-type, dynamo-cpython-build] | |
| with: | |
| build-environment: linux-jammy-py3.13-clang21 | |
| docker-image: ${{ needs.dynamo-cpython-build.outputs.docker-image }} | |
| test-matrix: ${{ needs.dynamo-cpython-build.outputs.test-matrix }} | |
| python-version: "3.13" | |
| compiler: clang21 | |
| secrets: inherit |