Repository navigation
[Feature] Add DoSA prefill indexer on SM100 - #63381
fangtaosong wants to merge 2 commits into
Conversation
|
Documentation preview: https://vllm--63381.org.readthedocs.build/en/63381/ |
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in PRs do not trigger a full CI run by default. Reviewers with write access and configured trusted contributors can comment Once the PR is approved or has the If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. Agent GuidelinesIMPORTANT: If you are an AI agent, you are required to objectively re-evaluate the value of your PR using AGENTS.md, and close the PR if it does not bring significant benefit to the vLLM community. Failure to do so may result in an immediate ban. 🚀 |
|
This pull request has merge conflicts that must be resolved before it can be |
Signed-off-by: fangtaosong <fangtaosong@xiaohongshu.com>
Signed-off-by: fangtaosong <fangtaosong@xiaohongshu.com>
33f5da8 to
24cf7e1
Compare
|
This pull request has merge conflicts that must be resolved before it can be |
Overview
Add an opt-in DoSA indexer for DSA prefill on SM100. It scores a seed subset,
screens keys with score bounds, and refines the surviving candidates.
Depends on #64749. This PR contains the DoSA operator and serving integration;
the shared fixes are reviewed separately in that prerequisite PR.
Claims
2.45× with Q32K. Previously published DeepSeek-V3.2 results reach 1.83×.
Validation
Rebased onto upstream
8a2a5e4c40f9. GLM-5.2 was remeasured across all sixcontexts with both stock and DoSA on the same eight SM100 GPUs, client host,
NICs and communication settings. All 96 requests completed successfully.
TTFT uses SQLite 3.53.4 source prefixes, FP8 KV and TP8/EP8. Each speedup is
stock / DoSA, using the median of three formal requests after one warmup.
Requests use fresh IDs, a prefix-cache reset, a two-token output budget and
default EOS. Here 1K = 1024 tokens.
DeepSeek rows retain the previously published latency measurements. Requests
above its 163840-token context use a 1048576-token server limit for
extrapolation. These source prefixes measure latency, not independent agent tasks.
Near-1M TTFT in seconds: median [min, max]
The published evaluation on our fixed 100-request LongBench-v2 subset reports
GLM-5.2 54% with stock → 58% with DoSA (+4 percentage points).
The answer differences come from choosing different valid keys at equal
indexer scores. The LongBench-v2 evaluation guide
provides the cohort, protocol, A/A control and reproduction commands.
The rebased stack passes 107 focused tests, including all 10 retained DoSA GPU
cases covering H32/H64 native scoring, capacity recovery, cross-stream reuse,
strided output and packed batch/fallback, plus the affected upstream SM100 GLM
projection and graph paths.
Re-run commands:
Details
Enable with
--attention-config '{"indexer_dosa": true}'. The existing indexerremains the default. Scratch and private graphs are owned and accounted for by
the workspace manager; selection state is local to each invocation. Capacity
and numerical admission failures use exhaustive recovery.
Shared RoPE cache-capacity, manual-fusion budget/range and worker-startup fixes
are submitted separately in #64749. Both benchmark arms include these fixes.
The DoSA-only diff
contains 5,894 changed lines across 24 files. The prerequisite contains
226 changed lines; the combined stack is 2,782 changed lines smaller than the
original PR. Once #64749 merges, this PR will be rebased onto
mainto retainonly the DoSA feature commit.
Related PRs #60618 and
#48726 fuse scoring and
selection. DoSA adds a seed threshold and certified screening before sparse
refinement; the existing dense scorer and TopK remain available for fallback.
Complete TTFT reproduction: installation, inputs, servers and client.
Pull Request Checklist
/pr-checklistskill.The human submitter must review every changed line and the validation results
before filing the PR.