Skip to content

[None][fix] Fix FlashInfer shared-KV speculative decode - #17264

Merged
2ez4bz merged 2 commits into
NVIDIA:mainfrom
2ez4bz:dev-flashinfer-mtp-ima
Aug 21, 2026
Merged

[None][fix] Fix FlashInfer shared-KV speculative decode#17264
2ez4bz merged 2 commits into
NVIDIA:mainfrom
2ez4bz:dev-flashinfer-mtp-ima

Conversation

@2ez4bz

@2ez4bz 2ez4bz commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Dev Engineer Review

  • One-model MTP scheduling synchronizes Python-side and C++ draft-token state.
  • Drafting stops when requests can exceed the legal target-position limit.
  • Speculative KV accounting uses the prompt KV boundary for the first generation step when dynamic KV-length correction is unavailable.
  • FlashInfer separates logical KV lengths from reserved generation-page capacity.
  • KV-length offsets are applied and restored across speculative decoding and CUDA graph execution.
  • These changes prevent overstated cached lengths, invalid FlashInfer page access, and incorrect KV scheduler capacity planning.
  • Added reserved-block-count APIs to KVCacheManager and KVCacheManagerV2.
  • Added context-manager support to BaseResourceManager.
  • No configuration or test-list files changed.

QA Engineer Review

  • Added tests for one-model MTP draft-token normalization, Python draft-token preservation, and sequence-position limits.
  • Added tests for prompt-boundary KV accounting and FlashInfer KV-offset application and restoration.
  • The modified test functions are not referenced in tests/integration/test_lists/ based on the available repository coverage entries.
  • Verdict: needs follow-up.

Description

  • Why?

Overlap-scheduled speculative decoding with a shared KV cache can use
draft positions beyond the logical sequence length. FlashInfer exposed
only logical generation pages, and did not reflect scheduler offsets in
its live KV metadata, while Gemma4 sized RoPE only to the logical limit.

  • What?

Expose every reserved generation page for shared-KV overlap decoding
while tracking logical KV lengths separately. Apply and restore overlap
scheduler offsets to append positions and trtllm-gen decode lengths, and
add speculative RoPE headroom to Gemma4 target and assistant models

Test Coverage

PR Checklist

Please review the following before submitting your PR:

  • PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.

  • PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.

  • Test cases are provided for new code paths (see test instructions)

  • If PR introduces API changes, an appropriate PR label is added - either api-compatible or api-breaking. For api-breaking, include BREAKING in the PR title.

  • Any new dependencies have been scanned for license and vulnerabilities

  • CODEOWNERS updated if ownership changes

  • Documentation updated as needed

  • Update tava architecture diagram if there is a significant design change in PR.

  • The reviewers assigned automatically/manually are appropriate for the PR.

  • Please check this after reviewing the above items as appropriate for this PR.

GitHub Bot Help

To see a list of available CI bot commands, please comment /bot help.

@2ez4bz

2ez4bz commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The change updates speculative decoding across executor scheduling and FlashInfer KV-cache handling. It preserves Python draft tokens, applies and restores backend KV-length offsets, separates logical lengths from reserved page-table capacity, and adds regression coverage.

Changes

Speculative decoding and KV-cache updates

Layer / File(s) Summary
Logical KV lengths and generation page tables
tensorrt_llm/_torch/attention_backend/flashinfer.py, tensorrt_llm/_torch/metadata.py, tensorrt_llm/_torch/pyexecutor/resource_manager.py, tensorrt_llm/_torch/pyexecutor/kv_cache_manager_v2.py, tests/unittest/_torch/attention/test_flashinfer_attention.py
FlashInfer tracks logical KV lengths separately from reserved generation page-table capacity. Speculative offsets update positions and decode-wrapper buffers. Cache managers expose reserved block counts.
Executor integration and cache boundaries
tensorrt_llm/_torch/pyexecutor/model_engine.py, tests/unittest/_torch/executor/test_pytorch_model_engine.py
The executor applies and restores backend offsets, enables full generation page tables when supported, and uses the prompt boundary for the first overlapping generation iteration.
One-model MTP draft state and sequence-limit safety
tensorrt_llm/_torch/pyexecutor/py_executor.py, tests/unittest/_torch/executor/test_py_executor.py
One-model MTP disables drafting when target positions reach legal limits and preserves populated Python draft tokens. Tests cover draft normalization and sequence limits.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Scheduler
  participant ModelEngine
  participant FlashInfer
  participant DecodeWrapper
  Scheduler->>ModelEngine: build speculative generation metadata
  ModelEngine->>FlashInfer: apply KV-length offsets
  FlashInfer->>DecodeWrapper: publish logical KV lengths
  ModelEngine->>FlashInfer: prepare and plan decode
  ModelEngine->>FlashInfer: restore KV-length offsets
Loading

Suggested labels: api-compatible

Suggested reviewers: schetlur-nv, chienchunhung, liji-nv

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 27.78% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the primary fix for FlashInfer shared-KV speculative decoding.
Description check ✅ Passed The description explains the problem and solution and includes the checklist, but the Test Coverage section is not filled in.
✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch dev-flashinfer-mtp-ima
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@tests/unittest/_torch/executor/test_py_executor.py`:
- Around line 2010-2013: Update the draft-token assertions in the affected
executor test to verify values, not only lengths: compare both
gen.py_draft_tokens and disagg_gen.py_draft_tokens against [0] *
self.MAX_TOTAL_DRAFT_TOKENS. Keep the existing num_draft_tokens assertions
unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: cfdc40e2-408d-41fd-8732-7561ca155193

📥 Commits

Reviewing files that changed from the base of the PR and between be93500 and 0baecbe.

📒 Files selected for processing (4)
  • tensorrt_llm/_torch/pyexecutor/model_engine.py
  • tensorrt_llm/_torch/pyexecutor/py_executor.py
  • tests/unittest/_torch/executor/test_py_executor.py
  • tests/unittest/_torch/executor/test_pytorch_model_engine.py

Comment thread tests/unittest/_torch/executor/test_py_executor.py Outdated
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63826 [ run ] triggered by Bot. Commit: 0baecbe Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63826 [ run ] completed with state SUCCESS. Commit: 0baecbe
/LLM/main/L0_MergeRequest_PR pipeline #51767 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@BowenFu

BowenFu commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Could you clarify how these two hunks relate?

  • On the one-model path, py_draft_tokens now contains dummy values when _prepare_tp_inputs first reads it. Please explain why setting only the C++ draft_tokens count would not satisfy scheduler accounting.
  • Is the py_decoding_iter == 0 cached_token_num correction required because that list is now non-empty? If the changes are coupled, please document the invariant and add a focused test. If they fix independent bugs, separate commits would make them easier to validate and revert.

The kv_lens_cuda backend guard looks appropriately scoped.

@2ez4bz
2ez4bz force-pushed the dev-flashinfer-mtp-ima branch from 0baecbe to 990299f Compare August 5, 2026 16:53
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@tests/unittest/_torch/executor/test_py_executor.py`:
- Around line 2036-2037: Update the sampler draft setup in the relevant executor
test to use a nonempty list shorter than self.MAX_TOTAL_DRAFT_TOKENS, while
retaining the assertion that request.draft_tokens uses the full scheduler budget
and request.py_draft_tokens preserves the supplied shorter list.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7989f080-973b-451a-9155-656f54711e18

📥 Commits

Reviewing files that changed from the base of the PR and between 1dfb7b1 and 990299f.

📒 Files selected for processing (4)
  • tensorrt_llm/_torch/pyexecutor/model_engine.py
  • tensorrt_llm/_torch/pyexecutor/py_executor.py
  • tests/unittest/_torch/executor/test_py_executor.py
  • tests/unittest/_torch/executor/test_pytorch_model_engine.py
🚧 Files skipped from review as they are similar to previous changes (3)
  • tests/unittest/_torch/executor/test_pytorch_model_engine.py
  • tensorrt_llm/_torch/pyexecutor/py_executor.py
  • tensorrt_llm/_torch/pyexecutor/model_engine.py

Comment thread tests/unittest/_torch/executor/test_py_executor.py Outdated
@2ez4bz

2ez4bz commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator Author

@BowenFu

These changes address two parts of the same MTP + FlashInfer + block-reuse failure path.

The python and C++ draft-token representations must both be populated because they have different consumers: the C++ micro-batch scheduler uses draft_tokens, while python scheduling and model-input preparation use py_draft_tokens.

The first-generation cached_token_num correction handles the same context-to-generation transition: a previous overlap tensor exists, but no speculative target forward has populated draft-token KV entries yet. Without using the prompt boundary, FlashInfer can access an invalid reused page. The focused tests cover the two state assumptions independently.

I’m keeping them together because both are needed for this MTP + FlashInfer + block-reuse fix.

@2ez4bz
2ez4bz force-pushed the dev-flashinfer-mtp-ima branch from 990299f to 9ff8de8 Compare August 5, 2026 17:26
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@2ez4bz

2ez4bz commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64088 [ run ] triggered by Bot. Commit: 9ff8de8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64088 [ run ] completed with state SUCCESS. Commit: 9ff8de8
/LLM/main/L0_MergeRequest_PR pipeline #52015 completed with status: 'FAILURE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@2ez4bz

2ez4bz commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64146 [ run ] triggered by Bot. Commit: 9ff8de8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64146 [ run ] completed with state FAILURE. Commit: 9ff8de8
/LLM/main/L0_MergeRequest_PR pipeline #52064 completed with status: 'FAILURE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@2ez4bz

2ez4bz commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64208 [ run ] triggered by Bot. Commit: 9ff8de8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64208 [ run ] completed with state FAILURE. Commit: 9ff8de8
/LLM/main/L0_MergeRequest_PR pipeline #52120 completed with status: 'FAILURE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@2ez4bz

2ez4bz commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@2ez4bz
2ez4bz enabled auto-merge (squash) August 20, 2026 17:43
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #67910 [ run ] triggered by Bot. Commit: 80ed499 Link to invocation

@aswinvisva aswinvisva left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@2ez4bz

2ez4bz commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

max_draft_len=5 + forced acceptance length also surfaces another IMA, which should be fixed once we update flashinfer to include flashinfer-ai/flashinfer#4382 .

@2ez4bz

2ez4bz commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68018 [ run ] triggered by Bot. Commit: 80ed499 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #67910 [ run ] completed with state ABORTED. Commit: 80ed499

Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68018 [ run ] completed with state SUCCESS. Commit: 80ed499
/LLM/main/L0_MergeRequest_PR pipeline #55471 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@2ez4bz

2ez4bz commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68140 [ run ] triggered by Bot. Commit: 80ed499 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68140 [ run ] completed with state SUCCESS. Commit: 80ed499
/LLM/main/L0_MergeRequest_PR pipeline #55588 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

2ez4bz added 2 commits August 21, 2026 00:32
* Why?

Overlap-scheduled speculative decoding with a shared KV cache can use
draft positions beyond the logical sequence length. FlashInfer exposed
only logical generation pages, and did not reflect scheduler offsets in
its live KV metadata, while Gemma4 sized RoPE only to the logical limit.

* What?

Expose every reserved generation page for shared-KV overlap decoding
while tracking logical KV lengths separately. Apply and restore overlap
scheduler offsets to append positions and trtllm-gen decode lengths, and
add speculative RoPE headroom to Gemma4 target and assistant models

Signed-off-by: William Zhang <133824995+2ez4bz@users.noreply.github.com>
* Why?

Cached decode plans ignored query length and generation batch size, so
speculative decoding could reuse a plan built for an incompatible launch
shape.

* What?

Include both dimensions in the plan parameters, pass the query length to
FlashInfer, and reject batches with nonuniform generation query lengths.

Signed-off-by: William Zhang <133824995+2ez4bz@users.noreply.github.com>
@2ez4bz
2ez4bz force-pushed the dev-flashinfer-mtp-ima branch from 80ed499 to 9ef9c81 Compare August 21, 2026 07:32
@2ez4bz

2ez4bz commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68210 [ run ] triggered by Bot. Commit: 9ef9c81 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68210 [ run ] completed with state FAILURE. Commit: 9ef9c81
/LLM/main/L0_MergeRequest_PR pipeline #55650 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@2ez4bz

2ez4bz commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68321 [ run ] triggered by Bot. Commit: 9ef9c81 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68321 [ run ] completed with state SUCCESS. Commit: 9ef9c81
/LLM/main/L0_MergeRequest_PR pipeline #55748 completed with status: 'UNSTABLE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

Link to invocation

@2ez4bz

2ez4bz commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68403 [ run ] triggered by Bot. Commit: 9ef9c81 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #68403 [ run ] completed with state SUCCESS. Commit: 9ef9c81
/LLM/main/L0_MergeRequest_PR pipeline #55822 completed with status: 'SUCCESS'

CI Report

Link to invocation

@2ez4bz
2ez4bz merged commit 5264ed5 into NVIDIA:main Aug 21, 2026
10 checks passed
2ez4bz pushed a commit to ai-dynamo/dynamo that referenced this pull request Aug 24, 2026
Adds recipes/gemma4-31b/trtllm/agg-gb200-agentic/deploy.yaml, derived
from the B200 sibling with the GB200-specific deltas:
- nodeAffinity: NVIDIA-GB200 + kubernetes.io/arch=arm64
- Rename b200 -> gb200 (DGD, ConfigMap, labels)
- runtimeVersionOverride: "1.4.0" (image tag isn't pure semver)
- imagePullSecrets: nvcr-docker-config
- image: aarch64 TRT-LLM 1.3.0rc25 + NVIDIA/TensorRT-LLM#17264

recipes/gemma4-31b/perf/perf.yaml gains one-line comments naming the
two places (podAffinity + ENDPOINT env) to retarget together when
switching between b200 and gb200 variants.

Validation: aiperf trace replay, 3541 requests @ c=192, MTP DL=3
  output_token_throughput           8,554 tok/s (aggregate)
  output_token_throughput_per_user   52.9 tok/s/user (p50)
  time_to_first_token                2.52 s (p50)
  request_latency                   16.9 s (p50)
Signed-off-by: Aswin Visva <31215515+aswinvisva@users.noreply.github.com>
2ez4bz pushed a commit to ai-dynamo/dynamo that referenced this pull request Aug 25, 2026
Adds recipes/gemma4-31b/trtllm/agg-gb200-agentic/deploy.yaml, derived
from the B200 sibling with the GB200-specific deltas:
- nodeAffinity: NVIDIA-GB200 + kubernetes.io/arch=arm64
- Rename b200 -> gb200 (DGD, ConfigMap, labels)
- runtimeVersionOverride: "1.4.0" (image tag isn't pure semver)
- imagePullSecrets: nvcr-docker-config
- image: aarch64 TRT-LLM 1.3.0rc25 + NVIDIA/TensorRT-LLM#17264

recipes/gemma4-31b/perf/perf.yaml gains one-line comments naming the
two places (podAffinity + ENDPOINT env) to retarget together when
switching between b200 and gb200 variants.

Validation: aiperf trace replay, 3541 requests @ c=192, MTP DL=3
  output_token_throughput           8,554 tok/s (aggregate)
  output_token_throughput_per_user   52.9 tok/s/user (p50)
  time_to_first_token                2.52 s (p50)
  request_latency                   16.9 s (p50)
Signed-off-by: Aswin Visva <31215515+aswinvisva@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants