sgl-project / sgl-project/SpecForge
[Question] Disaggregated training (producer:consumer 1:7) ~3.2x slower than DP for Qwen3.6-35B-A3B — expected?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 346
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 41
Description
Checklist
- 1. If the issue you raised is not a feature but a question, please raise a discussion at https://github.com/sgl-project/SpecForge/discussions/new/choose Otherwise, it will be closed.
- 2. Please use English, otherwise it will be closed.
Motivation
I'm training a draft model for Qwen3.6-35B-A3B using SpecForge and observing a significant wall-clock time difference between the disaggregated topology and the original DP (data-parallel) approach. I'd like to understand whether this gap is expected, and if there are recommended tuning strategies.
Setup
| Item | Value |
|---|---|
| Target model | Qwen3.6-35B-A3B |
| Dataset size | ~1.3M samples |
| Epochs | 6 |
| Training method | DFlash (disaggregated, online) |
| Producer : Consumer ratio | 1 : 7 (still experimenting with other ratios) |
| Hardware | 8× GPU single node |
Observation
| Method | Estimated total time |
|---|---|
| Original DP (colocated) | ~45 hours |
| Disaggregated (producer:consumer = 1:7) | ~6 days (~144 hours) |
The disaggregated approach is roughly 3.2× slower in wall-clock time compared to the original DP method for the same dataset and epoch count.
Questions
- Is this magnitude of slowdown expected for the disaggregated topology on a single node with a 1:7 producer-to-consumer ratio?
- What are the primary bottlenecks — is it the feature capture throughput on the producer side, the Mooncake transfer overhead, or consumer-side waiting/starvation?
- Are there recommended producer:consumer ratios or
runtimetuning knobs (e.g.,producer_lease,in_flight_high_watermark,in_flight_low_watermark) that can significantly close this gap? - Would using multiple capture servers (repeating
server_urls) or offline pre-captured features be the recommended path for this model size? - Any known scaling behavior or best-practice configs for Qwen3.6-35B-A3B disaggregated training?
Additional context
- I'm still experimenting with different producer:consumer ratios; 1:7 is the current setting.
- The DP baseline uses the same hardware and dataset, just with the colocated target-inference + trainer approach.
- Happy to provide logs, throughput stats, or config YAML if helpful.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by reviewing the disaggregated training configuration and runtime settings mentioned in the issue, then compare producer throughput, Mooncake transfer overhead, and consumer waiting using logs, throughput stats, and config YAML; done means establishing whether the slowdown is expected and documenting validated ratios or tuning guidance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, pytorch
- Domain
- distributed-systems, machine-learning, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100