Skip to content

[FlyDSL] [Build] Use upstream parallel scheduler for AOT builds - #4905

Open
zhiding512 wants to merge 7 commits into
mainfrom
zhimding/jobs_parallel_0819
Open

[FlyDSL] [Build] Use upstream parallel scheduler for AOT builds#4905
zhiding512 wants to merge 7 commits into
mainfrom
zhimding/jobs_parallel_0819

Conversation

@zhiding512

Copy link
Copy Markdown
Contributor

Summary

  • replace aiter's duplicate fork pool with flydsl.utils.parallel.run_parallel_jobs across unified and standalone AOT entry points
  • preserve deterministic compile failures as structured metadata and aggregate failure causes in unified AOT reporting
  • document the upstream scheduler controls and keep setup-time AOT compilation before the CK thread pool

Depends on ROCm/FlyDSL#1038. Merge only after the scheduler is available in the resolved FlyDSL package.

Test plan

  • local setup.py -> run_aot -> run_parallel_jobs smoke test with FlyDSL 0.3.1
  • FlyDSL focused scheduler tests (20 passed)
  • Black and Ruff checks on changed Python files

Made with Cursor

zhiding512 and others added 7 commits August 19, 2026 05:28
Remove aiter's duplicate process pool and route CLI and wheel AOT compilation through the FlyDSL 0.3.2 scheduler.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update the AOT drivers and documentation to use FlyDSL's clearer run_parallel_jobs API.

Co-authored-by: Cursor <cursoragent@cursor.com>
Return deterministic compile errors with structured causes and include those causes in unified AOT failure summaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
Describe automatic worker selection, FIFO retries, and logger controls used by the upstream AOT scheduler.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document non-blocking memory-cap fallback and the corrected OOM-only concurrency backoff semantics.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update AOT guidance for concurrency-neutral retries and the conservative no-psutil fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid a premature FlyDSL version bump while clarifying that unified AOT compilation must run before the CK thread pool is created.

Co-authored-by: Cursor <cursoragent@cursor.com>
@zhiding512
zhiding512 requested review from a team and a lite review from Copilot August 21, 2026 07:49
@github-actions

Copy link
Copy Markdown
Contributor

🏷️ CI Guide

Runs automatically on every PR:

  • ✅ Pre-checks (submodule verification, code formatting)
  • ✅ Aiter op tests (gfx942 + gfx950)
  • ✅ Triton tests on MI35X (only when aiter/ops/triton/** or related paths are changed)

Extended tests (opt-in via labels):

Label Tests
ci:gfx1250-ffm-triton Run the five-shard gfx1250 FFM Triton test suite
ci:triton-300x Run an additional Triton test job on MI300X in PRs; main branch always runs both MI35X and MI300X
ci:sglang SGLang integration tests: DeepSeek-R1-MXFP4 accuracy, Qwen 3.5 accuracy
ci:atom ATOM benchmark: DeepSeek-R1-0528, GPT-OSS-120B
ci:atom_full ATOM accuracy suite for PR and main models from ATOM models_accuracy.json
ci:vllm vLLM benchmark: GPT-OSS-120B, DeepSeek-R1-0528, Kimi-K2.5
ci:all All standard extended tests (excludes ci:atom_full)

Only add ci:atom_full for FlyDSL or Triton upgrades.
Add labels via the sidebar or gh pr edit 4905 --add-label <label>

PR title tags:
Component tags ([Triton/Gluon], [HIP], [CK], [ASM], ...) are added to the PR title automatically from the changed files and re-synced on every push — change-type tags like [fix]/[Perf] and op tags like [MLA] are left untouched. Add the no-auto-title label to opt this PR out of title tagging.

@github-actions github-actions Bot changed the title [FlyDSL] Use upstream parallel scheduler for AOT builds [FlyDSL] [Build] Use upstream parallel scheduler for AOT builds Aug 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR switches FlyDSL AOT compilation entry points (both unified run_aot and standalone modules) to use FlyDSL’s upstream run_parallel_jobs scheduler instead of aiter’s bespoke fork pool, while preserving deterministic compile failures as structured metadata for unified reporting.

Changes:

  • Replace aiter’s custom multiprocessing/file-IPC AOT pool with flydsl.utils.parallel.run_parallel_jobs across unified (aiter.aot.flydsl.common.run_aot) and per-module AOT scripts.
  • Add structured failure metadata via compile_failure_info() and aggregate failure causes in unified AOT error reporting.
  • Update build-time and documentation notes to reflect upstream scheduler controls and the “fork-before-ThreadPoolExecutor” constraint.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
setup.py Updates FlyDSL AOT precompile banner/comments and keeps AOT before CK’s thread pool due to fork-based scheduler behavior.
aiter/aot/flydsl/README.md Documents upstream scheduler usage and updates env var names/behavior to FlyDSL’s controls.
aiter/aot/flydsl/common.py Removes custom fork pool, adds compile_failure_info, and runs unified AOT via run_parallel_jobs with aggregated failure reporting.
aiter/aot/flydsl/moe.py Uses run_parallel_jobs and attaches structured failure info on compile exceptions.
aiter/aot/flydsl/mxfp4_moe.py Attaches structured failure info on compile exceptions.
aiter/aot/flydsl/gemm.py Uses run_parallel_jobs and attaches structured failure info on compile exceptions.
aiter/aot/flydsl/grouped_moe.py Uses run_parallel_jobs and returns deterministic failures with structured metadata.
aiter/aot/flydsl/chunk_gdn_h.py Uses run_parallel_jobs and attaches structured failure info on compile exceptions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@zufayu
zufayu requested a review from yadaish August 24, 2026 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants