Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7019bb2
feat: add prepared H3 hardware sites and serving matrices
edwingao28 Sep 9, 2026
8434389
feat: inspect H3 site identity through trusted CI
edwingao28 Sep 9, 2026
979a900
feat: report H3 runtime candidates in site preflight
edwingao28 Sep 9, 2026
0a9eff4
fix: keep H3 site preflight outside GPU slot admission
edwingao28 Sep 9, 2026
25de33c
feat: select H3 serving cells for bounded follow-up runs
edwingao28 Sep 9, 2026
ff52d14
fix: use runner UID for H3 scheduler inspection
edwingao28 Sep 9, 2026
03470a0
feat: inspect default and active H3 scheduler accounts
edwingao28 Sep 9, 2026
3e49ea0
feat: stage frozen H3 weights through AMD CI
edwingao28 Sep 9, 2026
739000b
fix: keep H3 dispatch within the input limit
edwingao28 Sep 9, 2026
0da114f
feat: inspect writable H3 persistent storage
edwingao28 Sep 9, 2026
8463894
fix: stage AMD H3 models under writable shared data
edwingao28 Sep 9, 2026
5bfa469
feat: inspect AMD H3 nodes with bounded Slurm receipts
edwingao28 Sep 9, 2026
cc3b621
fix: let AMD node inspection overlap CPU model staging
edwingao28 Sep 9, 2026
1468801
fix: retain AMD allocation rejection evidence
edwingao28 Sep 9, 2026
d1c5dd5
fix: recover completed AMD allocation accounting
edwingao28 Sep 9, 2026
6ea0bf8
fix: verify AMD GPUs from the Slurm step binding
edwingao28 Sep 9, 2026
2383d1e
feat: inspect the cached AMD H3 runtime through CI
edwingao28 Sep 9, 2026
b04b09c
fix: retain accessible AMD process and runtime telemetry evidence
edwingao28 Sep 9, 2026
0366877
feat: bind AMD H3 devices and normalize board telemetry
edwingao28 Sep 9, 2026
8b6e41b
feat: seal AMD serving inputs from inspected runtime
edwingao28 Sep 9, 2026
a42036b
chore: record AMD serving preparation recipe
edwingao28 Sep 9, 2026
9ba1aea
feat: compare retained H3 serving media in CI
edwingao28 Sep 9, 2026
21fb076
feat: record request-correlated H3 server timings
edwingao28 Sep 9, 2026
824b644
fix: keep H3 fidelity artifacts within viewer limits
edwingao28 Sep 9, 2026
9f7c214
fix: inspect interrupted AMD runtime extraction without GPUs
edwingao28 Sep 9, 2026
17e8d26
fix: recover interrupted AMD rootfs before reserving GPUs
edwingao28 Sep 9, 2026
56fc9b4
fix: probe recovered AMD rootfs before broad permission scans
edwingao28 Sep 9, 2026
df5e5cd
feat: prepare timed AMD serving from the retained runtime
edwingao28 Sep 9, 2026
dba9686
feat: run retained AMD serving within one bounded lease
edwingao28 Sep 9, 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
51 changes: 50 additions & 1 deletion .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,22 @@ on:
required: false
type: boolean
default: false
h3-cluster:
description: "Prepared H3 site: h200-dgxc, h100-dgxc, b200-nscale; mi355x-amds retained-runtime C1"
required: false
type: string
default: h200-dgxc
h3-preparation:
description: "Optional preparation: amd-node 15m or amd-runtime 60m on 8 GPUs; amd-model/amd-serving need a source run; amd-serving uses one 120m lease"
required: false
type: choice
options: [none, site-preflight, amd-model, amd-node, amd-runtime, amd-site, amd-rootfs, amd-serving, fidelity]
default: none
h3-site-config:
description: "Pinned runner-local H3 site JSON; empty uses existing H200 configuration"
required: false
type: string
default: ""
h3-reuse-run-ids:
description: "Reprocess one or two accepted H3 CI runs (comma-separated); no new H3 generation"
required: false
Expand Down Expand Up @@ -122,6 +138,21 @@ on:
required: false
type: boolean
default: false
h3-cluster:
description: "Prepared H3 site: h200-dgxc, h100-dgxc, b200-nscale; mi355x-amds retained-runtime C1"
required: false
type: string
default: h200-dgxc
h3-preparation:
description: "Optional preparation: amd-node 15m or amd-runtime 60m on 8 GPUs; amd-model/amd-serving need a source run; amd-serving uses one 120m lease"
required: false
type: string
default: none
h3-site-config:
description: "Pinned runner-local H3 site JSON; empty uses existing H200 configuration"
required: false
type: string
default: ""
h3-reuse-run-ids:
description: "Reprocess one or two accepted H3 CI runs (comma-separated); no new H3 generation"
required: false
Expand Down Expand Up @@ -227,13 +258,31 @@ on:
default: "[]"

jobs:
h3-fidelity:
if: ${{ inputs.h3-video && inputs.h3-preparation == 'fidelity' }}
permissions:
contents: read
actions: read
uses: ./.github/workflows/h3-fidelity.yml
with:
source-run-ids: ${{ inputs.h3-reuse-run-ids }}

h3-video:
if: ${{ inputs.h3-video }}
if: ${{ inputs.h3-video && inputs.h3-preparation != 'fidelity' }}
permissions:
contents: read
actions: read
uses: ./.github/workflows/h3-video.yml
with:
cluster: ${{ inputs.h3-cluster }}
preflight-only: ${{ inputs.h3-preparation == 'site-preflight' }}
stage-amd-model: ${{ inputs.h3-preparation == 'amd-model' }}
stage-amd-site: ${{ inputs.h3-preparation == 'amd-site' }}
inspect-amd-node: ${{ inputs.h3-preparation == 'amd-node' }}
prepare-amd-runtime: ${{ inputs.h3-preparation == 'amd-runtime' }}
recover-amd-rootfs: ${{ inputs.h3-preparation == 'amd-rootfs' }}
run-amd-serving: ${{ inputs.h3-preparation == 'amd-serving' }}
site-config: ${{ inputs.h3-site-config }}
source-run-ids: ${{ inputs.h3-reuse-run-ids }}
inventory-run-id: ${{ inputs.h3-inventory-run-id }}

Expand Down
60 changes: 60 additions & 0 deletions .github/workflows/h3-fidelity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: H3 Retained Media Fidelity

on:
workflow_call:
inputs:
source-run-ids:
description: "Two original H3 serving CI runs, baseline then candidate"
required: true
type: string

permissions:
contents: read
actions: read

jobs:
compare:
name: Compare original C1 video and audio on CPU
runs-on: ubuntu-latest
timeout-minutes: 30
env:
GH_TOKEN: ${{ github.token }}
H3_SOURCE_RUN_IDS: ${{ inputs.source-run-ids }}
PYTHONPATH: ${{ github.workspace }}
steps:
- name: Authorize manual repository execution
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
if (context.eventName !== 'workflow_dispatch' ||
context.repo.owner !== 'SemiAnalysisAI' || context.repo.repo !== 'InferenceX' ||
!context.ref.startsWith('refs/heads/')) {
throw new Error('H3 fidelity requires manual dispatch of an InferenceX repository branch.');
}
for (const username of new Set([context.actor, process.env.GITHUB_TRIGGERING_ACTOR])) {
const {data} = await github.rest.repos.getCollaboratorPermissionLevel({
...context.repo, username,
});
if (!['write', 'maintain', 'admin'].includes(data.permission)) {
throw new Error(username + ' must have write, maintain, or admin permission.');
}
}
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.sha }}
persist-credentials: false
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
- name: Verify sealed sources and compare every C1 media pair
run: >-
uv run --no-project --python 3.12 --with 'av==16.1.0' --with 'numpy==2.3.5'
python experimental/video-generation/compare_serving_ci.py
--source-run-ids "$H3_SOURCE_RUN_IDS" --output "$RUNNER_TEMP/h3-fidelity"
- name: Preserve comparisons, original media and any failure
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: h3-fidelity-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/h3-fidelity/
if-no-files-found: error
compression-level: 0
retention-days: 14
Loading
Loading