Compare commits

...

35 Commits

Author SHA1 Message Date
cae25d15de Update
[ghstack-poisoned]
2025-11-07 17:03:18 -03:00
ad2b3e4b15 Update
[ghstack-poisoned]
2025-11-07 15:30:50 -03:00
8a8b9fdde1 Update
[ghstack-poisoned]
2025-11-07 15:30:03 -03:00
6551923fe4 Update
[ghstack-poisoned]
2025-11-07 14:35:43 -03:00
370d613b86 Update
[ghstack-poisoned]
2025-11-07 13:22:37 -03:00
78d9b5f5d4 Update
[ghstack-poisoned]
2025-11-06 22:19:50 -03:00
4cb9c69051 Update
[ghstack-poisoned]
2025-11-06 21:45:55 -03:00
c95ea9da89 Update
[ghstack-poisoned]
2025-11-06 21:21:47 -03:00
9eeaed3809 Update
[ghstack-poisoned]
2025-11-06 17:24:54 -03:00
983bb54baf Update
[ghstack-poisoned]
2025-11-05 20:40:53 -03:00
065d0a09bf Update (base update)
[ghstack-poisoned]
2025-11-05 20:40:53 -03:00
a274e3ab4f Update
[ghstack-poisoned]
2025-11-05 20:38:17 -03:00
ade3856995 Update
[ghstack-poisoned]
2025-11-05 19:16:24 -03:00
bde50abe75 Update
[ghstack-poisoned]
2025-11-05 18:51:46 -03:00
404b14e30a Update
[ghstack-poisoned]
2025-11-05 18:36:56 -03:00
a26acb9a4e Update
[ghstack-poisoned]
2025-11-05 18:28:45 -03:00
c7829f034f Update
[ghstack-poisoned]
2025-11-05 15:51:59 -03:00
c79dacd48e Update (base update)
[ghstack-poisoned]
2025-11-05 13:53:03 -03:00
3cca49f7bf Update
[ghstack-poisoned]
2025-11-05 13:53:03 -03:00
9023879073 Update
[ghstack-poisoned]
2025-11-04 22:38:40 -03:00
7e474899de Update
[ghstack-poisoned]
2025-11-04 22:03:48 -03:00
8d60cec47b Update
[ghstack-poisoned]
2025-11-04 21:56:30 -03:00
169548f294 Update
[ghstack-poisoned]
2025-11-04 21:47:47 -03:00
9c7ece76de Update
[ghstack-poisoned]
2025-11-04 21:43:03 -03:00
1b579c4318 Update
[ghstack-poisoned]
2025-11-04 21:41:34 -03:00
ac12fd7d99 Update
[ghstack-poisoned]
2025-11-04 21:30:44 -03:00
3e6aa17c40 Update
[ghstack-poisoned]
2025-11-04 21:26:41 -03:00
ecdd814e15 Update (base update)
[ghstack-poisoned]
2025-11-04 18:24:50 -03:00
fe69b0c3ec Update
[ghstack-poisoned]
2025-11-04 18:24:50 -03:00
e8b9bf23c1 Update
[ghstack-poisoned]
2025-11-04 16:40:53 -03:00
ce74310a33 Update
[ghstack-poisoned]
2025-11-04 16:40:25 -03:00
bcc442cdd2 Update
[ghstack-poisoned]
2025-11-04 16:00:35 -03:00
ded922c167 Update
[ghstack-poisoned]
2025-11-04 15:37:28 -03:00
53185e4696 Update (base update)
[ghstack-poisoned]
2025-11-04 15:24:08 -03:00
77306850d9 Update
[ghstack-poisoned]
2025-11-04 15:24:08 -03:00
7 changed files with 119 additions and 2 deletions

View File

@ -168,6 +168,18 @@ case "$tag" in
VISION=yes
TRITON=yes
;;
pytorch-linux-jammy-py3.11-clang12)
ANACONDA_PYTHON_VERSION=3.11
CLANG_VERSION=12
VISION=no
TRITON=no
;;
pytorch-linux-jammy-py3.12-clang12)
ANACONDA_PYTHON_VERSION=3.12
CLANG_VERSION=12
VISION=no
TRITON=no
;;
pytorch-linux-jammy-rocm-n-py3 | pytorch-linux-jammy-rocm-n-py3-benchmarks | pytorch-linux-noble-rocm-n-py3)
if [[ $tag =~ "jammy" ]]; then
ANACONDA_PYTHON_VERSION=3.10

View File

@ -377,6 +377,13 @@ test_lazy_tensor_meta_reference_disabled() {
export -n TORCH_DISABLE_FUNCTIONALIZATION_META_REFERENCE
}
test_dynamo_core() {
time python test/run_test.py \
--dynamo-core \
--verbose \
--upload-artifacts-while-running
assert_git_not_dirty
}
test_dynamo_wrapped_shard() {
if [[ -z "$NUM_TEST_SHARDS" ]]; then
@ -1777,6 +1784,8 @@ elif [[ "${TEST_CONFIG}" == *inductor* ]]; then
test_inductor_shard "${SHARD_NUMBER}"
elif [[ "${TEST_CONFIG}" == *einops* ]]; then
test_einops
elif [[ "${TEST_CONFIG}" == *dynamo_core* ]]; then
test_dynamo_core
elif [[ "${TEST_CONFIG}" == *dynamo_wrapped* ]]; then
install_torchvision
test_dynamo_wrapped_shard "${SHARD_NUMBER}"

View File

@ -326,7 +326,7 @@ jobs:
SCCACHE_BUCKET: ${{ !contains(matrix.runner, 'b200') && 'ossci-compiler-cache-circleci-v2' || '' }}
SCCACHE_REGION: ${{ !contains(matrix.runner, 'b200') && 'us-east-1' || '' }}
SHM_SIZE: ${{ contains(inputs.build-environment, 'cuda') && '2g' || '1g' }}
DOCKER_IMAGE: ${{ inputs.docker-image }}
DOCKER_IMAGE: ${{ steps.calculate-docker-image.outputs.docker-image }}
XLA_CUDA: ${{ contains(inputs.build-environment, 'xla') && '0' || '' }}
XLA_CLANG_CACHE_S3_BUCKET_NAME: ossci-compiler-clang-cache-circleci-xla
PYTORCH_TEST_CUDA_MEM_LEAK_CHECK: ${{ matrix.mem_leak_check && '1' || '0' }}

View File

@ -56,6 +56,8 @@ jobs:
pytorch-linux-jammy-cuda12.8-cudnn9-py3-gcc9,
pytorch-linux-jammy-cuda12.4-cudnn9-py3-gcc11,
pytorch-linux-jammy-py3.10-clang12,
pytorch-linux-jammy-py3.11-clang12,
pytorch-linux-jammy-py3.12-clang12,
pytorch-linux-jammy-py3.13-clang12,
pytorch-linux-jammy-py3.14-clang12,
pytorch-linux-jammy-rocm-n-py3,

77
.github/workflows/dynamo-unittest.yml vendored Normal file
View File

@ -0,0 +1,77 @@
# Workflow: Dynamo Unit Test
# runs unit tests for dynamo.
name: dynamo-unittest
on:
pull_request:
branches-ignore:
- nightly
push:
branches:
- main
- release/*
- landchecks/*
tags:
- ciflow/pull/*
# workflow_dispatch:
# schedule:
# - cron: 29 8 * * * # about 1:29am PDT
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true
permissions:
id-token: write
contents: read
jobs:
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 }}
curr_ref_type: ${{ github.ref_type }}
opt_out_experiments: lf
dynamo-build:
name: dynamo-build
uses: ./.github/workflows/_linux-build.yml
needs: get-label-type
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
with:
runner_prefix: "${{ needs.get-label-type.outputs.label-type }}"
build-environment: linux-jammy-py${{ matrix.python-version }}-clang12
docker-image-name: ci-image:pytorch-linux-jammy-py${{ matrix.python-version }}-clang12
test-matrix: |
{ include: [
{ config: "dynamo_core", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 1, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 2, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 3, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
]}
secrets: inherit
dynamo-test:
name: dynamo-test
uses: ./.github/workflows/_linux-test.yml
needs: [get-label-type, dynamo-build]
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
with:
build-environment: linux-jammy-py${{ matrix.python-version }}-clang12
docker-image: ci-image:pytorch-linux-jammy-py${{ matrix.python-version }}-clang12
test-matrix: |
{ include: [
{ config: "dynamo_core", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 1, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 2, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
{ config: "dynamo_wrapped", shard: 3, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}linux.2xlarge" },
]}
secrets: inherit

View File

@ -920,7 +920,7 @@ class TestDynamoTimed(TestCase):
first, second = {
(3, 9): (10, 6),
(3, 10): (10, 6),
(3, 11): (10, 6),
(3, 11): (11, 7),
(3, 12): (11, 7),
(3, 13): (11, 7),
(3, 14): (11, 7),

View File

@ -400,6 +400,7 @@ AOT_DISPATCH_TESTS = [
test for test in TESTS if test.startswith("functorch/test_aotdispatch")
]
FUNCTORCH_TESTS = [test for test in TESTS if test.startswith("functorch")]
DYNAMO_CORE_TESTS = [test for test in TESTS if test.startswith("dynamo")]
ONNX_TESTS = [test for test in TESTS if test.startswith("onnx")]
QUANTIZATION_TESTS = [test for test in TESTS if test.startswith("test_quantization")]
@ -1314,6 +1315,16 @@ def parse_args():
action="store_true",
help="Run all distributed tests",
)
parser.add_argument(
"--dynamo-core",
"--dynamo-core",
action="store_true",
help=(
"If this flag is present, we will only run dynamo tests. "
"If this flag is not present, we will run all tests "
"(including dynamo tests)."
),
)
parser.add_argument(
"--functorch",
"--functorch",
@ -1580,6 +1591,12 @@ def get_selected_tests(options) -> list[str]:
filter(lambda test_name: test_name in CORE_TEST_LIST, selected_tests)
)
# Filter to only run dynamo tests when --dynamo-core option is specified
if options.dynamo_core:
selected_tests = list(
filter(lambda test_name: test_name in DYNAMO_CORE_TESTS, selected_tests)
)
# Filter to only run functorch tests when --functorch option is specified
if options.functorch:
selected_tests = list(