Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
747a4e5
feat(pytorch): add PyTorch 2.13 currency scaffold
Jul 8, 2026
bef8cb8
feat(pytorch): bump 2.13 deps (nccl, deepspeed, te, efa, gdrcopy)
Jul 8, 2026
eb84c58
fix(pytorch): reduce 2.13 GPU max_jobs to 4 to fit wheel-export in RAM
Jul 9, 2026
2f8489e
fix(pytorch): revert max_jobs and route GPU builds to vllm build fleet
Jul 9, 2026
f8386f1
fix(pytorch): route all builds to x86-pytorch-build-runner fleet
Jul 9, 2026
7f3372f
fix(pytorch): bump soupsieve to 2.8.4 to clear HIGH CVEs
Jul 9, 2026
2705344
fix(pytorch): forward primary build-args to wheel-export buildx call
Jul 9, 2026
66b9fe3
revert(pytorch): remove EXTRA_BUILD_ARGS forwarding in upload_wheels.sh
Jul 10, 2026
aa121a0
fix(pytorch): pass --disable-ngc to EFA installer for 1.48+
Jul 11, 2026
044d52b
fix(pytorch): include torch_version in wheel-cache S3 key
Jul 11, 2026
e1c8715
fix(pytorch): roll transformer_engine back to 2.13.0 for cuBLAS compat
Jul 11, 2026
bdc7fc7
revert(pytorch): restore transformer_engine to latest for source build
Jul 13, 2026
1d2ad70
feat(pytorch): bump transformer_engine to 2.17.0 (latest)
Jul 13, 2026
6b607ca
feat(pytorch): bump 2.13 CUDA base to 13.3.0
Jul 13, 2026
d4c59fa
fix(pytorch): bump click and pillow to clear HIGH CVEs
Jul 14, 2026
51a936c
fix(pytorch): recursively copy NCCL headers and stop masking TE build…
Jul 14, 2026
30c2a47
fix(pytorch): bypass NVIDIA requires-check for CUDA 13.3 label
Jul 14, 2026
626e8a8
fix(pytorch): restore || true on TE wheel-cache save cp
Jul 14, 2026
19b80a0
docs(pytorch): document NVIDIA_DISABLE_REQUIRE bypass removal criteria
Jul 14, 2026
c0e3285
fix(pytorch): force source build for 2.13 GPU wheels to repopulate cache
Jul 14, 2026
0851145
revert(pytorch): remove temporary skip_wheel_cache flag on 2.13 GPU c…
Jul 14, 2026
cbca116
revert(pytorch): remove SKIP_WHEEL_CACHE mechanism from pre_build.sh
Jul 14, 2026
a67ea66
feat(pytorch): add SKIP_WHEEL_CACHE with FORCE upload signal
Jul 14, 2026
b5b0a8d
feat(pytorch): honor FORCE_WHEEL_CACHE_UPLOAD in upload_wheels.sh
Jul 14, 2026
af4e110
fix(pytorch): temporarily enable skip_wheel_cache on 2.13 GPU configs
Jul 14, 2026
05f0e50
test(pytorch): move test_import_gpu cases to single_gpu suite
Jul 14, 2026
e4f98a9
revert(pytorch): remove temporary skip_wheel_cache flag on 2.13 GPU c…
Jul 15, 2026
53d647a
revert(pytorch): remove FORCE_WHEEL_CACHE_UPLOAD from upload_wheels.sh
Jul 15, 2026
fb48078
revert(pytorch): remove SKIP_WHEEL_CACHE mechanism from pre_build.sh
Jul 15, 2026
9637c9e
ci: retrigger CI with proper dependency ordering
Jul 15, 2026
ad73db2
fix(pytorch): invalidate builder-flash-attn stage cache
Jul 15, 2026
6a641f0
fix(pytorch): use shell no-op (not # comment) to invalidate flash-att…
Jul 15, 2026
a19b3b3
debug(pytorch): force flash-attn source-build + add ABI diagnostics
Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .claude/rules/ci-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,8 @@ sglang.pr-amzn2023.yml (trigger + gatekeeper + check-changes + discover-configs)
- PR callers use `cancel-in-progress: true` for build/test jobs (supersede stale runs).
### Runner fleets
- `x86-build-runner` — CPU builds (PyTorch, Base, Ray, XGBoost, Lambda)
- `x86-build-runner` — CPU builds (Base, Ray, XGBoost, Lambda)
- `x86-pytorch-build-runner` — PyTorch builds (all variants)
- `x86-vllm-build-runner` — GPU compilation (vLLM, vLLM-Omni)
- `x86-sglang-build-runner` — GPU compilation (SGLang)
- `x86-g6xl-runner` — single-GPU tests (1x L4)
Expand Down
32 changes: 32 additions & 0 deletions .github/config/image/pytorch/2.13-ec2-cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
image:
name: "pytorch-2.13-ec2-cpu"
description: "PyTorch 2.13 CPU training for EC2 instances"

metadata:
framework: "pytorch_runtime"
framework_version: "2.13.0"
os_version: "amzn2023"
customer_type: "ec2"
arch_type: "x86"
device_type: "cpu"
job_type: "training"
prod_image: "pytorch:2.13-cpu-amzn2023"

build:
dockerfile: "docker/pytorch/Dockerfile.cpu"
target: "runtime"
python_version: "3.12"
torch_version: "2.13.0"
torchvision_version: "0.28.0"
torchaudio_version: "2.11.0"
max_jobs: "8"
dlc_major_version: "1"
dlc_minor_version: "0"

release:
release: true
force_release: false
public_registry: true
private_registry: true
enable_soci: true
environment: "production"
39 changes: 39 additions & 0 deletions .github/config/image/pytorch/2.13-ec2-cuda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
image:
name: "pytorch-2.13-ec2-cuda"
description: "PyTorch 2.13 CUDA training for EC2 instances"

metadata:
framework: "pytorch_runtime"
framework_version: "2.13.0"
os_version: "amzn2023"
customer_type: "ec2"
arch_type: "x86"
device_type: "gpu"
job_type: "training"
prod_image: "pytorch:2.13-cu133-amzn2023"

build:
dockerfile: "docker/pytorch/Dockerfile.cuda"
target: "runtime"
python_version: "3.12"
cuda_version: "13.3.0"
torch_version: "2.13.0"
torchvision_version: "0.28.0"
torchaudio_version: "2.11.0"
flash_attn_version: "2.8.3"
deepspeed_version: "0.19.2"
transformer_engine_version: "2.17.0"
nccl_version: "2.30.7-1"
efa_version: "1.49.0"
gdrcopy_version: "2.6"
max_jobs: "8"
dlc_major_version: "1"
dlc_minor_version: "0"

release:
release: true
force_release: false
public_registry: true
private_registry: true
enable_soci: true
environment: "production"
33 changes: 33 additions & 0 deletions .github/config/image/pytorch/2.13-sagemaker-cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
image:
name: "pytorch-2.13-sagemaker-cpu"
description: "PyTorch 2.13 CPU training for SageMaker"

metadata:
framework: "pytorch_runtime"
framework_version: "2.13.0"
os_version: "amzn2023"
customer_type: "sagemaker"
platform: "sagemaker"
arch_type: "x86"
device_type: "cpu"
job_type: "training"
prod_image: "pytorch:2.13-cpu-amzn2023-sagemaker"

build:
dockerfile: "docker/pytorch/Dockerfile.cpu"
target: "sagemaker"
python_version: "3.12"
torch_version: "2.13.0"
torchvision_version: "0.28.0"
torchaudio_version: "2.11.0"
max_jobs: "8"
dlc_major_version: "1"
dlc_minor_version: "0"

release:
release: true
force_release: false
public_registry: true
private_registry: true
enable_soci: true
environment: "production"
40 changes: 40 additions & 0 deletions .github/config/image/pytorch/2.13-sagemaker-cuda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
image:
name: "pytorch-2.13-sagemaker-cuda"
description: "PyTorch 2.13 CUDA training for SageMaker"

metadata:
framework: "pytorch_runtime"
framework_version: "2.13.0"
os_version: "amzn2023"
customer_type: "sagemaker"
platform: "sagemaker"
arch_type: "x86"
device_type: "gpu"
job_type: "training"
prod_image: "pytorch:2.13-cu133-amzn2023-sagemaker"

build:
dockerfile: "docker/pytorch/Dockerfile.cuda"
target: "sagemaker"
python_version: "3.12"
cuda_version: "13.3.0"
torch_version: "2.13.0"
torchvision_version: "0.28.0"
torchaudio_version: "2.11.0"
flash_attn_version: "2.8.3"
deepspeed_version: "0.19.2"
transformer_engine_version: "2.17.0"
nccl_version: "2.30.7-1"
efa_version: "1.49.0"
gdrcopy_version: "2.6"
max_jobs: "8"
dlc_major_version: "1"
dlc_minor_version: "0"

release:
release: true
force_release: false
public_registry: true
private_registry: true
enable_soci: true
environment: "production"
8 changes: 8 additions & 0 deletions .github/release-schedule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ schedules:
workflow: vllm-omni.autorelease-ec2.yml
gpu: medium

- cron: "30 19 * * 2,4"
workflow: pytorch.autorelease-2.13-ec2.yml
gpu: light

- cron: "00 20 * * 2,4"
workflow: sglang.autorelease-ec2-ubuntu.yml
gpu: heavy
Expand All @@ -89,3 +93,7 @@ schedules:
- cron: "30 22 * * 2"
workflow: openfold3.autorelease-sagemaker-amzn2023.yml
gpu: heavy

- cron: "00 23 * * 2,4"
workflow: pytorch.autorelease-2.13-sagemaker.yml
gpu: light
40 changes: 40 additions & 0 deletions .github/workflows/pytorch.autorelease-2.13-ec2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: "Auto Release - PyTorch 2.13 EC2"

on:
schedule:
- cron: '30 19 * * 2,4'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

permissions:
contents: read

jobs:
discover:
runs-on: ubuntu-latest
outputs:
configs: ${{ steps.discover.outputs.configs }}
steps:
- uses: actions/checkout@v6
- id: discover
uses: ./.github/actions/discover-configs
with:
pattern: ".github/config/image/pytorch/2.13-ec2-*.yml"

pipeline:
needs: [discover]
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.discover.outputs.configs) }}
uses: ./.github/workflows/pytorch.pipeline.yml
with:
config-file: ${{ matrix.config_file }}
tag-suffix: ${{ github.run_id }}
run-multi-gpu-test: false
run-multi-node-test: false
release: true
secrets: inherit
40 changes: 40 additions & 0 deletions .github/workflows/pytorch.autorelease-2.13-sagemaker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: "Auto Release - PyTorch 2.13 SageMaker"

on:
schedule:
- cron: '00 23 * * 2,4'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

permissions:
contents: read

jobs:
discover:
runs-on: ubuntu-latest
outputs:
configs: ${{ steps.discover.outputs.configs }}
steps:
- uses: actions/checkout@v6
- id: discover
uses: ./.github/actions/discover-configs
with:
pattern: ".github/config/image/pytorch/2.13-sagemaker-*.yml"

pipeline:
needs: [discover]
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.discover.outputs.configs) }}
uses: ./.github/workflows/pytorch.pipeline.yml
with:
config-file: ${{ matrix.config_file }}
tag-suffix: ${{ github.run_id }}
run-multi-gpu-test: false
run-multi-node-test: false
release: true
secrets: inherit
2 changes: 1 addition & 1 deletion .github/workflows/pytorch.pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:
cancel-in-progress: true
runs-on:
- codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
fleet:x86-build-runner
fleet:x86-pytorch-build-runner
buildspec-override:true
timeout-minutes: 720
outputs:
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/pytorch.pr-2.13-cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: "PR - PyTorch 2.13 CPU"

on:
pull_request:
branches: [main]
types: [opened, reopened, synchronize]
paths:
- ".github/config/image/pytorch/2.13-*-cpu.yml"
- ".github/workflows/pytorch.pipeline.yml"
- ".github/workflows/pytorch.pr-2.13-cpu.yml"
- "docker/pytorch/Dockerfile.cpu"
- "docker/pytorch/2.13/cpu/**"
- "scripts/docker/common/**"
- "scripts/docker/pytorch/**"
- "scripts/docker/telemetry/**"
- "test/pytorch/unit/**"
- "test/sanity/**"
- "test/security/data/ecr_scan_allowlist/pytorch_runtime/**"
- "test/telemetry/**"
- "!docs/**"

permissions:
contents: read
pull-requests: read

jobs:
gatekeeper:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.base.sha }}
fetch-depth: 1
- uses: ./.github/actions/pr-permission-gate

check-changes:
needs: [gatekeeper]
runs-on: ubuntu-latest
outputs:
build-change: ${{ steps.changes.outputs.build-change }}
sagemaker-test-change: ${{ steps.changes.outputs.sagemaker-test-change }}
sanity-test-change: ${{ steps.changes.outputs.sanity-test-change }}
telemetry-test-change: ${{ steps.changes.outputs.telemetry-test-change }}
unit-test-change: ${{ steps.changes.outputs.unit-test-change }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v4
id: changes
with:
filters: |
build-change:
- ".github/config/image/pytorch/2.13-*-cpu.yml"
- "docker/pytorch/Dockerfile.cpu"
- "docker/pytorch/2.13/cpu/**"
- "scripts/docker/common/**"
- "scripts/docker/pytorch/**"
- "test/security/data/ecr_scan_allowlist/pytorch_runtime/**"
sagemaker-test-change:
- "test/pytorch/integration/sagemaker/**"
- ".github/workflows/pytorch.tests-sagemaker.yml"
sanity-test-change:
- "test/sanity/**"
telemetry-test-change:
- "scripts/docker/telemetry/**"
- "test/telemetry/**"
unit-test-change:
- "test/pytorch/unit/**"

discover:
needs: [gatekeeper]
runs-on: ubuntu-latest
outputs:
configs: ${{ steps.discover.outputs.configs }}
steps:
- uses: actions/checkout@v6
- id: discover
uses: ./.github/actions/discover-configs
with:
pattern: ".github/config/image/pytorch/2.13-*-cpu.yml"

pipeline:
needs: [check-changes, discover]
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.discover.outputs.configs) }}
uses: ./.github/workflows/pytorch.pipeline.yml
with:
config-file: ${{ matrix.config_file }}
tag-suffix: pr-${{ github.event.pull_request.number }}
build: ${{ needs.check-changes.outputs.build-change == 'true' }}
run-efa-test: false
run-multi-gpu-test: false
run-multi-node-test: false
run-sanity-test: ${{ needs.check-changes.outputs.build-change == 'true' || needs.check-changes.outputs.sanity-test-change == 'true' }}
run-security-test: ${{ needs.check-changes.outputs.build-change == 'true' }}
run-single-gpu-test: false
run-sagemaker-test: ${{ needs.check-changes.outputs.build-change == 'true' || needs.check-changes.outputs.sagemaker-test-change == 'true' }}
run-telemetry-test: ${{ needs.check-changes.outputs.build-change == 'true' || needs.check-changes.outputs.telemetry-test-change == 'true' }}
run-unit-test: ${{ needs.check-changes.outputs.build-change == 'true' || needs.check-changes.outputs.unit-test-change == 'true' }}
release: false
secrets: inherit
Loading
Loading