Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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-cu130-amzn2023"

build:
dockerfile: "docker/pytorch/Dockerfile.cuda"
target: "runtime"
python_version: "3.12"
cuda_version: "13.0.2"
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.16.1"
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-cu130-amzn2023-sagemaker"

build:
dockerfile: "docker/pytorch/Dockerfile.cuda"
target: "sagemaker"
python_version: "3.12"
cuda_version: "13.0.2"
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.16.1"
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