-
Notifications
You must be signed in to change notification settings - Fork 232
[LMCache] Add LMCache arm on tuned DSV4 FP4 B300 vLLM AgentX recipe / 在调优后的 DSV4 FP4 B300 vLLM AgentX 配方上新增 LMCache 分支 #2232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
36515f7
feat(agentic): add LMCache arm to tuned DSV4 FP4 B300 vLLM AgentX recipe
ApostaC 8dec80c
chore: fill in perf-changelog pr-link with PR #2232
ApostaC 54c612d
feat(agentic): tier lmcache GPU mem util and add pure-TP lmcache arms
ApostaC eaf53b6
Merge remote-tracking branch 'origin/main' into lmcache-vllm-b300
ApostaC 947981a
Merge remote-tracking branch 'origin/main' into lmcache-vllm-b300
ApostaC bdc33ba
fix(matrix): accept agentic SWE-bench eval rows in the changelog matr…
ApostaC 189aed4
Revert "fix(matrix): accept agentic SWE-bench eval rows in the change…
ApostaC 7c8bd63
refactor(agentic): fold B300 lmcache arms into the official agentic c…
ApostaC 690b4f1
chore(agentic): DEP8 lmcache ladder at +16 conc offset capped at 208
ApostaC 8a88a78
chore(agentic): DEP8 lmcache ladder at +8 conc offset capped at 208
ApostaC 619de91
Merge remote-tracking branch 'origin/main' into lmcache-vllm-b300
ApostaC 086b276
Merge remote-tracking branch 'origin/main' into lmcache-vllm-b300
ApostaC 63422ae
Merge branch 'main' into lmcache-vllm-b300
cquil11 26bf7c7
Update perf-changelog.yaml
cquil11 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔴 The new LMCache arm's
--kv-transfer-configsetskv_connector":"LMCacheMPConnector"but omitskv_connector_module_path, unlike the two sibling scripts (dsv4_fp4_mi355x_vllm.sh:344,kimik2.5_fp4_b200.sh:150) that wire up the same connector. SinceLMCacheMPConnectoris out-of-tree, vLLM will not be able to locate the class andvllm serveshould fail at KV-connector construction, breaking every point in the newdsv4-fp4-b300-vllm-agentic-lmcacheconfig. Fix by adding"kv_connector_module_path":"lmcache.integration.vllm.lmcache_mp_connector"to the config dict.Extended reasoning...
The bug: In the
lmcache)case ofbenchmarks/single_node/agentic/dsv4_fp4_b300_vllm.sh(around lines 254-259),OFFLOAD_ARGSis built as:\n"{\"kv_connector\":\"LMCacheMPConnector\",\"kv_role\":\"kv_both\",\"kv_connector_extra_config\":{...}}"\nThis JSON blob is missing the
kv_connector_module_pathkey.Why it matters:
LMCacheMPConnectoris not a vLLM built-in connector (unlikeMooncakeStoreConnector, which vLLM resolves through its internal connector-factory registry). It lives in the externallmcachepackage, atlmcache.integration.vllm.lmcache_mp_connector. vLLM'sKVTransferConfigresolves out-of-tree connectors by dynamically importing the module named inkv_connector_module_pathbefore looking up the connector class by name — without that field, vLLM has no way to find the class.Confirmed by direct comparison with sibling scripts: I checked the two other scripts in this repo that wire up the identical
LMCacheMPConnector:benchmarks/single_node/agentic/dsv4_fp4_mi355x_vllm.sh:344:"kv_connector\":\"LMCacheMPConnector\",\"kv_connector_module_path\":\"lmcache.integration.vllm.lmcache_mp_connector\"...benchmarks/single_node/agentic/kimik2.5_fp4_b200.sh:150(also lmcache 0.5.1, matching this PR's version exactly): same pattern.Both sibling scripts explicitly set
kv_connector_module_pathalongsidekv_connector. This new B300 arm is the only one of the three that omits it.Why nothing else catches this: The script does run
python3 -c \"import lmcache.integration.vllm.lmcache_mp_connector\"earlier, but that only verifies the module is importable in the launcher process — it says nothing to vLLM about where to import the connector class from when it parses--kv-transfer-config.bash -n, the matrix-logic pytest suite, andgenerate_sweep_configs.pyall validate shell syntax and config-generation logic, not the semantics of the JSON payload passed to vLLM, so none of them would catch this.Step-by-step proof of the failure:
KV_OFFLOAD_BACKEND=lmcacheis selected, LMCache MP server starts and passes its healthcheck.OFFLOAD_ARGSis set to--kv-transfer-config '{\"kv_connector\":\"LMCacheMPConnector\",\"kv_role\":\"kv_both\",\"kv_connector_extra_config\":{...}}'(nokv_connector_module_path).vllm serveparses this into aKVTransferConfig. Sincekv_connector_module_pathis absent, vLLM falls back to its built-in connector-factory lookup by name.LMCacheMPConnectoris not registered there (it is only importable via the externallmcachepackage), so the lookup fails and vLLM raises an error during KV-connector construction, before the server can start serving.dsv4-fp4-b300-vllm-agentic-lmcachesearch space (17 points total) uses this same code path, so the entire new config fails at server startup, not just some points.Fix: add
\"kv_connector_module_path\":\"lmcache.integration.vllm.lmcache_mp_connector\"to the JSON dict at the same spot the two sibling scripts do, e.g.:\n"{\"kv_connector\":\"LMCacheMPConnector\",\"kv_connector_module_path\":\"lmcache.integration.vllm.lmcache_mp_connector\",\"kv_role\":\"kv_both\",\"kv_connector_extra_config\":{...}}"\nSeverity is normal, not a nit or pre-existing issue: this is new code introduced by this PR, and merging as-is causes a concrete, deterministic startup failure for the entire new lmcache arm — not a stylistic or description mismatch.