Skip to content

pull

pull #7

Workflow file for this run

# 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