Skip to content

[RL][Cherry-Pick] Support Fully Async and PrefixCache#6599

Open
gongshaotian wants to merge 2 commits intoPaddlePaddle:developfrom
gongshaotian:r3_cherry_pick_dev
Open

[RL][Cherry-Pick] Support Fully Async and PrefixCache#6599
gongshaotian wants to merge 2 commits intoPaddlePaddle:developfrom
gongshaotian:r3_cherry_pick_dev

Conversation

@gongshaotian
Copy link
Collaborator

@gongshaotian gongshaotian commented Mar 2, 2026

Motivation

Origin PR: #6314

Current implementation (does not support PrefixCache):
image

PrefixCache Support Solution:
image

The workflow of asynchronous transmission routing:

ModelRunner(主进程)
multiprocessing.Manager.Queue(主进程 - 子进程任务队列)
StoreProcess (子进程)
├── Main Loop (从 Queue 获取任务)
├── ThreadPoolExecutor (5个工作线程)
│   ├── Worker Thread 1: process_put_task() → 提交协程到事件循环
│   ├── Worker Thread 2: process_clear_store_task() → 提交协程到事件循环
│   └── ...
└── AsyncEventLoopThread (专用线程)
    └── asyncio Event Loop
        ├── 执行: await p2p_client.put()
        ├── 执行: await p2p_client.clear_store()
        └── 执行: await p2p_client.delete_prefix_batch()

Modifications

  1. RoutingReplayManager
  2. RoutingStore
  3. ModelRunner

Usage or Command

Pass

Accuracy Tests

Pass

Checklist

  • Add at least a tag in the PR title.
    • Tag list: [[FDConfig],[APIServer],[Engine], [Scheduler], [PD Disaggregation], [Executor], [Graph Optimization], [Speculative Decoding], [RL], [Models], [Quantization], [Loader], [OP], [KVCache], [DataProcessor], [BugFix], [Docs], [CI], [Optimization], [Feature], [Benchmark], [Others], [XPU], [HPU], [GCU], [DCU], [Iluvatar], [Metax]]
    • You can add new tags based on the PR content, but the semantics must be clear.
  • Format your code, run pre-commit before commit.
  • Add unit tests. Please write the reason in this PR if no unit tests.
  • Provide accuracy results.
  • If the current PR is submitting to the release branch, make sure the PR has been submitted to the develop branch, then cherry-pick it to the release branch with the [Cherry-Pick] PR tag.

@paddle-bot
Copy link

paddle-bot bot commented Mar 2, 2026

Thanks for your contribution!

@gongshaotian gongshaotian changed the title [Cherry-Pick] Support Fully Async and PrefixCache [RL][Cherry-Pick] Support Fully Async and PrefixCache Mar 2, 2026
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 36.21622% with 236 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (develop@6d83dcc). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...model_executor/layers/moe/routing_indices_cache.py 35.29% 219 Missing and 12 partials ⚠️
fastdeploy/worker/gpu_model_runner.py 50.00% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #6599   +/-   ##
==========================================
  Coverage           ?   71.15%           
==========================================
  Files              ?      394           
  Lines              ?    53972           
  Branches           ?     8468           
==========================================
  Hits               ?    38404           
  Misses             ?    12812           
  Partials           ?     2756           
Flag Coverage Δ
GPU 71.15% <36.21%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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