feat: add native TensorRT-LLM P2P example - #540
Conversation
8f0673c to
5e1b962
Compare
5e1b962 to
15465a1
Compare
15465a1 to
7e92ef8
Compare
7e92ef8 to
46aa8ef
Compare
46aa8ef to
d231313
Compare
d231313 to
68f178c
Compare
WalkthroughChangesNative MX TensorRT-LLM P2P
Estimated code review effort: 3 (Moderate) | ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
modelexpress_client/python/tests/test_trtllm_native_example.py (1)
46-62: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winInclude the changed client README in the legacy-reference scan.
examples/p2p_transfer_k8s/client/README.mdis a changed user-facing document, but it is absent fromdocumentation. A stalellama-p2p.yamlorPRESHARDEDreference there would pass this test. Add that file and keep the list aligned with the migration documentation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@modelexpress_client/python/tests/test_trtllm_native_example.py` around lines 46 - 62, Update test_documentation_points_to_the_native_trtllm_example by adding examples/p2p_transfer_k8s/client/README.md to the documentation list, ensuring it is covered by the existing legacy-reference assertions and remains aligned with the migration documentation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@modelexpress_client/python/tests/test_trtllm_native_example.py`:
- Around line 46-62: Update
test_documentation_points_to_the_native_trtllm_example by adding
examples/p2p_transfer_k8s/client/README.md to the documentation list, ensuring
it is covered by the existing legacy-reference assertions and remains aligned
with the migration documentation.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: ca682b70-02a7-4f68-a034-df93a8530396
📒 Files selected for processing (26)
.github/workflows/modelexpress-ci-tests.ymlCONTRIBUTING.mdREADME.mdci/TEST_PLAN.mdci/k8s/client/sgl/manifest-azure.yamlci/k8s/client/test_p2p_k8s.pyci/k8s/client/trt-llm/Dockerfileci/k8s/client/trt-llm/manifest-azure.yamlci/k8s/client/trt-llm/trtllm_p2p_launcher.pyexamples/model_streamer_k8s/README.mdexamples/p2p_transfer_k8s/README.mdexamples/p2p_transfer_k8s/client/README.mdexamples/p2p_transfer_k8s/client/trtllm/Dockerfile.ph3-gcp-gb200examples/p2p_transfer_k8s/client/trtllm/README.mdexamples/p2p_transfer_k8s/client/trtllm/kimi-disagg-mx-tp8-dgd.yamlexamples/p2p_transfer_k8s/client/trtllm/kimi-source-decode-dgd.yamlexamples/p2p_transfer_k8s/client/trtllm/mx-infra-decode.yamlexamples/p2p_transfer_k8s/client/trtllm/trtllm-single-node-p2p.yamlmodelexpress_client/python/README.mdmodelexpress_client/python/modelexpress/envs.pymodelexpress_client/python/modelexpress/trtllm_live_transfer.pymodelexpress_client/python/tests/test_trtllm_native_example.pytrtllm_patches/v1.3.0rc5/README.mdtrtllm_patches/v1.3.0rc5/apply_patches.pytrtllm_patches/v1.3.0rc5/patch_model_loader.pytrtllm_patches/v1.3.0rc5/patch_tp_allgather.py
💤 Files with no reviewable changes (13)
- ci/k8s/client/trt-llm/manifest-azure.yaml
- examples/p2p_transfer_k8s/client/trtllm/kimi-disagg-mx-tp8-dgd.yaml
- examples/p2p_transfer_k8s/client/trtllm/mx-infra-decode.yaml
- modelexpress_client/python/modelexpress/envs.py
- trtllm_patches/v1.3.0rc5/patch_tp_allgather.py
- examples/p2p_transfer_k8s/client/trtllm/Dockerfile.ph3-gcp-gb200
- trtllm_patches/v1.3.0rc5/README.md
- ci/k8s/client/trt-llm/trtllm_p2p_launcher.py
- ci/k8s/client/trt-llm/Dockerfile
- trtllm_patches/v1.3.0rc5/patch_model_loader.py
- trtllm_patches/v1.3.0rc5/apply_patches.py
- examples/p2p_transfer_k8s/client/trtllm/kimi-source-decode-dgd.yaml
- .github/workflows/modelexpress-ci-tests.yml
Signed-off-by: Zheng Luo <zheluo@nvidia.com>
Summary
checkpoint_format="MX"loader through the standardtrtllm-serve --configinterface.PRESHARDEDintegration, includingpublish_from_worker,MxLiveCheckpointLoader, the TRT-LLM patch bundle, and historical Kimi/Dynamo-specific manifests.ci/TEST_PLAN.md, marked Not started until a qualified upstream image and a no-shards fallback-proof test are available.Why
The repository contained two incompatible TensorRT-LLM paths: a historical patch-based integration and a temporary CI overlay assembled from multiple upstream revisions. Neither is appropriate as the canonical production path.
This change makes the upstream-native loader the only supported architecture. ModelExpress no longer patches or overlays TensorRT-LLM. Operators must use a qualified TensorRT-LLM image that already contains the native MX checkpoint loader, with the ModelExpress client installed without replacing the image's CUDA, Torch, NIXL, UCX, or protobuf stack.
User impact
The TensorRT-LLM example now matches the normal deployment shape used by the vLLM and SGLang examples:
checkpoint_format: MXandmx_configsupplied through a standard TRT-LLM configuration file;TRT-LLM CI is intentionally not enabled by this PR. Re-enabling it requires a qualified upstream image and a target without local weight shards so storage fallback cannot produce a false pass.
Validation
740 passed, 29 skipped8 passedgit diff --checkSummary by CodeRabbit
New Features
checkpoint_format="MX".Documentation
Chores