Skip to content

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

Merged
yuanlehome merged 10 commits intoPaddlePaddle:developfrom
gongshaotian:r3_cherry_pick_dev
Mar 12, 2026
Merged

[RL][Cherry-Pick] Support Fully Async and PrefixCache#6599
yuanlehome merged 10 commits intoPaddlePaddle:developfrom
gongshaotian:r3_cherry_pick_dev

Conversation

@gongshaotian
Copy link
Collaborator

@gongshaotian gongshaotian commented Mar 2, 2026

Motivation

Origin PR:

  1. [RL] R3 Support Fully Async and PrefixCache #6314
  2. [RL] R3 Fix the bug for determining the end of a request #6388
  3. [RL] Clear Requests status of R3 #6569

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-commenter commented Mar 2, 2026

Codecov Report

❌ Patch coverage is 22.53886% with 299 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (develop@7811eec). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...model_executor/layers/moe/routing_indices_cache.py 23.52% 269 Missing and 4 partials ⚠️
fastdeploy/model_executor/pre_and_post_process.py 10.00% 16 Missing and 2 partials ⚠️
fastdeploy/worker/gpu_model_runner.py 14.28% 5 Missing and 1 partial ⚠️
fastdeploy/worker/gpu_worker.py 0.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #6599   +/-   ##
==========================================
  Coverage           ?   71.61%           
==========================================
  Files              ?      395           
  Lines              ?    54875           
  Branches           ?     8635           
==========================================
  Hits               ?    39298           
  Misses             ?    12782           
  Partials           ?     2795           
Flag Coverage Δ
GPU 71.61% <22.53%> (?)

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.

@yuanlehome yuanlehome merged commit cdaf6dd into PaddlePaddle:develop Mar 12, 2026
26 of 32 checks passed
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.

3 participants