Skip to content

[None][feat] Add PrimTS MLA prefill, MTP, and Rubin support - #19395

Draft
yuxianq wants to merge 19 commits into
NVIDIA:mainfrom
yuxianq:feat/prims-ts-mla-prefill
Draft

yuxianq wants to merge 19 commits into
NVIDIA:mainfrom
yuxianq:feat/prims-ts-mla-prefill

Conversation

@yuxianq

@yuxianq yuxianq commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

@coderabbitai summary

Description

Integrate non-absorbed MLA prefill into PrimsTSFmha, so Kimi K3 full-attention layers can use PrimTS for context and decode with BF16 or FP8 target KV cache. Add linear MTP and Helix per-query KV-bound integration. KDA execution and the default FMHA library list are unchanged; dense PrimTS remains opt-in.

  • Reuse native MLA RoPE/cache-update and FP8 packing during context preparation. Support fresh, cached-prefix, and chunked context, merging independently computed attention partitions with optional maximum/denominator statistics.
  • Keep compile-time specialization in wrapper planning and request-dependent buffers, offsets, bounds, and scales in execution. Preserve planned-wrapper reuse and workspace accounting.
  • Support linear speculative decode and Helix local KV bounds, including empty local attention partitions and CUDA graph replay.
  • Add SM107 availability with CUTLASS DSL 4.8, while retaining the existing Blackwell and compiler checks.
  • Add strict PrimTS Kimi K3 coverage, including FP8 KV with DSpark MTP, and register the end-to-end case in the 8-GPU GB300 CI stage.

Delivery snapshot: TRT-LLM a7da965b611830fbc1347e84646b687adc177f67, with FlashInfer source pin 069139a65aad98f3e5c61f049c761e28eff0b14e. The corrected dev source passed its 21-case Rubin rerun, and the final TRT-LLM source passed 26 matching-runtime B200 regression checks.

Review order

Functionality and performance remain separate commits. Review the native context-preparation interface, MLA context integration, MTP/Helix bounds, and tests first. The performance section is independently separable:

The functionality-only checkpoint is f5f0ba48b3, with the published functionality source pin df3434b1dc23df96527e202aa43ae233ed8641ee. It is followed by these four performance commits:

  1. e486a17897: normalize dense MLA context capacity buckets.
  2. c14e0abc43: precompile selected dense MLA profiles before readiness.
  3. dd49775236: cache MLA workspace sizes by request geometry.
  4. 0c80a0cfc6: import the separately committed FlashInfer kernel optimizations: bounded SM107 single-split MLA decode, packed-query tile pruning, full-tile LDRED, and request-length-bounded dense KV work.

The FlashInfer optimizations retain individual commits in the pinned source history, rather than being folded into the functionality commits.

Four subsequent correctness/test commits remain separate:

  1. 6f075ff46486ebe3dc6a427317fa6247f906cbf8: restore the prepared sparse MLA callable's trailing optional operand, with source/ABI regression coverage and the matching vendor compatibility patch.
  2. 0299c41c78b1e2444d0282f04318c756a6b4f0de: initialize PrimTS warmup collaborators in phase-selective test fixtures.
  3. 06b382b78c3a06c982e6ab0bbb3c5b429ed66c3f: retain original natural softmax scales for partition statistics, update the vendor pin, and pass the existing FP8 preparation buffer's natural-scale view alongside its base-2 view. This correctness fix is distinct from the performance commits.
  4. a7da965b611830fbc1347e84646b687adc177f67: preserve the rounded FP32 attention-sink anchor in the older dev implementation. An explicit nearest-even multiplication prevents contraction with the subsequent subtraction; statistics-disabled behavior is unchanged.

Vendored source

The lock points to the temporary branch yuxianq:prims-ts-mla-prefill--flashinfer at 069139a65aad98f3e5c61f049c761e28eff0b14e. It descends from canonical trtllm-prims-ts-dev-20261012 at aa709061230a58858375c513056e7733fa74294a; the canonical branch is not modified.

The vendor tree and immutable lock are maintained with scripts/vendor/manage.py. The 101-file selected production tree now includes the original-scale statistics fix and dev-only explicit sink-anchor rounding. TRT-LLM's explicit compatibility patch preserves main's q_token_kv_block_sparse_metadata.py fix from #20911 and supplies the prepared sparse MLA call's trailing optional operand. These adaptations are outside the measured dense-context performance changes. Other vendor entries are unchanged; this newer source is not represented as byte-identical to the historical performance snapshot.

The corresponding main-based FlashInfer work is FlashInfer #5489, published at 005d91701b95e88a3495da84e6d384efccc606d7 on base 3bcec819fc4531ce18591d5ced9e478297212ad8. Its 104 selected Rubin cases passed with zero skips. Main's broader packed-query pruning is already provided by FlashInfer #6774.

The upstream port preserves main's scalar scale API, independent base-2 LSE, runtime Q/K bounds, output-quantization arguments, and split-capacity planning. The older dev branch retains its device-tensor scale interface: statistics-enabled context overrides bind both original natural and base-2 scale tensors. TRT-LLM reuses the two views already emitted by native FP8 preparation; it does not reconstruct the natural scale from the rounded base-2 value. The resolutions below document these actual adaptations, not exact-patch matches or permission to drop them during a future canonical refresh.

schema_version: 1
vendors:
  flashinfer-prims-ts:
    upstream_prs:
      - https://github.com/flashinfer-ai/flashinfer/pull/5489
      - https://github.com/flashinfer-ai/flashinfer/pull/6774
    resolutions:
      1e357517b4653b61bd5adab44290743f494c5e96:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Port contiguous context statistics to main's existing final-LSE
          correction-row publisher instead of the older query-half softmax-store
          path. Preserve current scalar scales, runtime-length planning and
          independent LSE output in upstream
          b2d1bb78cfedaee151b3663f622772c2167c1fe2.
      c2b0baeaf36935ff35d52141949ecdc393084692:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Apply the same enable_softmax_stats to store_softmax_stats rename to
          main's revised call sites in ac49228fef3d7ce89b7f0355f37affe60b4e8cf1.
          Main replaces the old empty-offset guards with nonnegative-length handling
          and adds VC/Sage/sink admission sites, so the rename patch is not
          identical.
      9b4e7c9357a3d865dea0e19fbc38916c55dd3de5:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Forward-port paged prefill, standard decode and MLA statistics in
          188d87bbc06abed47c84b5e51eeab06b024649bf while retaining main's LSE,
          runtime max_q_len, output-quantization and split-capacity ABI. Center
          scores at main's current SmemP sites rather than replacing its shared
          exponent helpers; preserve sparse/statistics-disabled launches.
      06a1e6ed43695c14987b6ba9a22a65fe33f95487:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Preserve true context maxima, MLA one-shot workspace sizing and
          single-writer KV256 statistics after the canonical refresh. The
          current-main port retains these contracts in its revised factory,
          workspace and final-publisher paths.
      75961f74dac2c438cd7bce3dd135d527e78e49ec:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Adapt statistics arguments to the canonical positional persistent-cache
          ABI and sparse MLA reducer signature. The current-main port appends
          statistics without replacing its existing output-quantization and
          runtime-max-Q slots, preserving statistics-disabled launches.
      df3434b1dc23df96527e202aa43ae233ed8641ee:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Port per-query MLA KV bounds in ebc9792b48d4942cbd3fee8f2833864c538428e7
          with main's runtime max_q_len, independent LSE and split-capacity APIs
          intact. Append bounds after the statistics operand, retain raw-K
          producer/reducer coverage, and initialize optional-LSE neutral rows only
          for the bounded path.
      06e9cc5c084a0f5791ae4989a9bda4a7a595eaca:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Retain the same narrow automatic SM107/212-SM bounded FP8 MLA single-split
          rule in 4c4e4a03ef44d8ce9b2d44d91cefa6cb0682b2e3 before main resolves
          split capacity. Main no longer allocates an internal final-LSE buffer, so
          the updated zero-scratch expectation differs from the older dev workspace
          layout.
      502353da9e0f22d8eb1d772ecebd830d08eafbfe:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/6774
        reason: >-
          The dev branch enables a narrow SM107 packed dense query-validity pruning
          path. Upstream commit b0920463fdf39834ce2c9e9adee8d3fb863095f9 already
          enables the broader packed-query queue path. PR5489 retains that
          implementation and adds regression coverage rather than duplicating the
          narrow gate.
      9e26388ea95e5b40c924ffd2c6acef575cb5a8b1:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Port full packed-dense tile LDRED in
          f7dfe6bc70769ae4458f39a42535f98e05e61e9e while retaining main's finite
          softmax mask sentinel and VC tile_scale signature. Full tiles use the
          hardware maximum; partial/empty tiles discard that unmasked maximum and
          recompute from the prior masked state.
      76e8229748606d0e51f27f84fe19335cbe605ae9:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Port request-local dense KV task domains in
          b787f5692f68b348c93d05f34c803eb8f16afbf5 using main's runtime launch bound
          as the ceiling instead of an older fixed compile capacity. Preserve the
          narrow SM107 FP8 D192/V128 query-paired gate and consistent N/N-minus-one
          live-metadata domains, including one masked tile for empty rows.
      f87128ec8320c8ca858aa13994d036dc22f80418:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Preserve original natural FP32 scales for context and standard-decode
          statistics in upstream 525f6750b463a56fe92aff1be63062639402a329. Dev uses
          paired natural/base-2 device-tensor overrides and its older
          sink-normalization helper; upstream retains scalar scale inputs and
          existing LSE/output normalization. These are API/dataflow adaptations, not
          identical edits.
      069139a65aad98f3e5c61f049c761e28eff0b14e:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/5489
        reason: >-
          Enforce an explicit NEAREST_EVEN multiplication before centered sink
          subtraction in the older dev helper, preventing FMA contraction so
          the sink contribution uses the same rounded original-scale FP32
          maximum exported in statistics. This dev-only rounding adaptation
          implements PR5489's original-scale contract; upstream uses different
          normalization code and already passes all eight corresponding sink
          regressions. The patch is not present upstream and is not claimed
          as an exact match; statistics-disabled behavior is unchanged.

Test Coverage

Publication and rebase checks

  • Rebased onto TRT-LLM main 5d86481f60bdb137c1a2ecd283125f8d944c3635, with before/after commit-range and file-set audits. Preserved main's phased context helper, architecture-capability set, and newer CI entries. Dropped only the executor-mapping backport already present upstream.
  • Capacity/prewarm/CI-selection CPU tests: 180 passed. Workspace-cache and phase-routing source-contract checks: 36 passed, plus 17 page-size routing cases after correcting the SM107 expectation. Source-contract checks use dependency doubles and are not native-import qualification.
  • Full pre-commit checks, syntax checks, and vendor verification against the local and published immutable source passed. Mypy ran the repository's documented lightweight mode because local native bindings are absent.
  • Prior CI on 0c80a0cfc6 exposed prepared-sparse launch-ABI and phase-fixture initialization regressions; the separate 6f075ff and 0299c41 fixes are included. That failed run does not qualify the current a7da965 snapshot.
  • Original-scale source/CPU review passed on both FlashInfer branches; the focused checks were 66 upstream and 92 dev CPU cases, with GPU cases skipped locally. These overlapping selections are not summed as unique coverage.
  • Rubin job 927548 completed all 104 upstream cases at 005d917 with zero skips: context 31, standard decode 38, and MLA 35. This is full-source wrapper/kernel qualification, not a new K3 end-to-end or performance result.
  • The same job exposed an approximately 11% denominator discrepancy in dev eef263b's original-scale sink case [2-disabled]. The dev helper could contract the maximum multiplication with the sink subtraction, using a different anchor from the separately rounded published maximum. Source 069139a now explicitly uses NEAREST_EVEN multiplication before subtraction; upstream's different implementation passed all eight corresponding regressions and does not need this dev-only patch.
  • Rubin job 927692 passed all 21 dev cases at 069139a with zero skips, including the previously failing sink case, without weakening tolerances. Explicit nearest-even multiplication preserves the rounded FP32 maximum before sink subtraction; the CPU counterexample and actual DSL IR also verify the rounding boundary. The allocation completed successfully after its gated benchmark.
  • 26 B200 tests passed, zero skips, at exact TRT-LLM a7da965b611830fbc1347e84646b687adc177f67: four sparse MLA GPU regressions (graph replay, one/two-pool prepared launches, and cold/persistent-cache reload), four CPU ABI cases, two warmup-fixture cases, and 16 context-scale/plan-reuse cases. The runtime reused CI's immutable 0c80a0cfc6 DLFW native wheel plus the complete reviewed eight-file Python delta; Git verification confirmed no native/build changes. All 101 vendored files and source/test hashes were bound to the qualification manifest. Torch/CUDA 13.4, CUTLASS DSL 4.8.0, FlashInfer 0.7.2, and the actual SM100 GPU were verified. This is focused matching-runtime qualification, not a new complete native build or full-model run.
  • Current-head TRT-LLM CI is pending; the next run includes the K3 stage with fail-fast disabled. FlashInfer CI is user-managed and is not being triggered by this workflow.
  • Fresh main-based prepared-wrapper measurements are recorded below; they are distinct from the historical K3 full-model measurements and do not requalify end-to-end performance on this TRT-LLM head.

Main-based prepared-context comparison on Rubin

After the correctness gates passed, 36 fresh-process receipts completed three ABBA blocks per case. Baseline e2203f939e6c95475d7ec609fadfb916c04a2bec and candidate 005d91701b95e88a3495da84e6d384efccc606d7 contain the same original-scale correctness change. Their production delta is only full-tile dense LDRED plus request-local dense KV domains. Both use actual runtime Q/K maxima.

Synthetic case Baseline graph latency Optimized graph latency Mean paired change Sample SD
One request, statistics ON 100.212 us 91.859 us -8.335% 0.089 pp
Two ragged/empty requests, statistics ON 376.195 us 102.620 us -72.721% 0.018 pp
One request, statistics OFF 73.045 us 72.087 us -1.312% 0.040 pp

All cases use packed dense FP8 E4M3 attention, H96, Dqk192/Dv128, and BF16 output. The one-request cases use Q/K lengths 1920/1920 and Q/K capacities 2048/2048. The two-request case uses Q lengths [1664,256], K lengths [0,3840], and capacities Q2048/K4096. All eager, graph, and post-timing numerical checks passed; input identities were unchanged. An independent audit recomputed all 360 raw CUDA-event samples, receipt medians, and nine block summaries. The means of paired block ratios are reported, with sample SD across three blocks.

This is one-allocation prepared-wrapper graph replay, not a CuTeDSL/trtllm-gen comparison or a new K3 end-to-end result. The large empty-partition gain does not establish how frequently that geometry occurs in serving. Statistics ON/OFF also changes precision policy, so their absolute-time difference is not an isolated statistics-store cost.

Functionality-only Kimi K3 qualification on Rubin

  • 365 checks passed, including real K3 MLA module coverage with MTP5/MTP7 and backend/selection contracts.
  • A 1,319-question GSM8K run scored 96.058% with strict PrimTS, FP8 target KV/P64, TP8/EP8, attention DP disabled, DSpark7, CUDA graphs, and FP32 KDA state. No forced KDA-engine override was used in this functionality run.
  • This validates the functionality-only snapshot (26e9b3b33c plus FlashInfer d9f0146; published source-equivalent functionality commit df3434b1d), not every current-main combination.

Controlled DEP16 performance experiment on Rubin

The performance experiment used FP8 target KV/P128, TP16/EP16 with attention DP, DSpark5 (six target query tokens per verification step), chunked prefill, overlap scheduling, and CUDA graphs. Both policies used the same BF16 KDA state and engine prefill path; drafter KV remained BF16/P32. The fixed workload was 4,096 input / 256 output tokens at concurrency 128 and 256, seed 42, temperature 0, and ignore-EOS. This is an aggregated-serving comparison, not the original disaggregated AgentX workload.

Three allocation-bounded ABBA blocks produced 24 accepted measured windows. All measurements were retained; sealed-source/artifact and compilation-log audits passed. Observed native compilation warnings were confined to startup; no matching compilation markers occurred in accepted measured windows. This does not prove zero unlogged JIT.

Concurrency CuTeDSL + trtllm-gen output tokens/s Optimized PrimTS output tokens/s Mean paired-block change Sample SD
128 3,077.84 3,144.82 +2.18% 2.57 percentage points
256 4,671.57 4,696.30 +0.56% 2.03 percentage points

This supports near throughput parity in this workload, not a robust speedup, statistical equivalence, or noninferiority claim. Policy TPS columns are arithmetic means; percentage changes are means of paired block ratios. The experiment used the pre-rebase TRT be927b7015 runtime and the source-equivalent FlashInfer 30e7ea65/76e822974 kernels. It is not a latest-main native performance result or a causal before/after comparison across different allocation series.

Accuracy and scope limits

  • For the DEP16 performance configuration, native GSM8K scored 96.5125% (1,273/1,319) and PrimTS 95.8302% (1,264/1,319). Both passed the reused 93.2975% gate, but there is no dedicated FP8+DSpark reference row. The nine-answer net gap and exact-text differences remain; output equivalence and deployment suitability are not established.
  • Historical CP8 prepared-attention plus real FIFO2 component measurements showed approximately 1.09–1.10x graph speedup for their static-capacity/single-split composition. They are not full-model Helix results or a rerun of the final kernel bundle.
  • Strict 8-GPU aggregated full-model Helix is unsupported by the current scheduler/model and was excluded from the revised validation scope.
  • The benchmark's shared KDA-engine choice does not fix the separate Small-BH NaN issue, and no KDA behavior change is shipped here.
  • Keep this PR in draft pending current-head CI and human review.

PR Checklist

Please review the following before submitting this PR:

  • PR description explains the change, motivation, source scope, and limitations.
  • Changes follow the TRT-LLM coding guidelines.
  • Tests cover new paths; full-checkpoint and component evidence are distinguished.
  • No user-facing LLM configuration fields or public model identifiers are introduced.
  • Existing dependency and vendor CODEOWNER requirements remain applicable.
  • Documentation and related upstream PR attribution are maintained with the implementation.
  • Please check this after reviewing the above items as appropriate for this PR.

GitHub Bot Help

To see available CI bot commands, comment /bot help.

@yuxianq

yuxianq commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

@yuxianq — vendor promotion needs author action:

The pinned temporary source commit e377847b798c8203eec83802ea81794bf07303f1 does not contain the latest canonical branch tip ae3851ab5f958ba22f154059df5b38321f6369d2.

Fix: Fetch https://github.com/yuxianq/flashinfer.git / trtllm-prims-ts-dev-20261012 and rebase the temporary source branch prims-ts-mla-prefill--flashinfer onto ae3851ab5f958ba22f154059df5b38321f6369d2. Push it, then use scripts/vendor/manage.py to update the consumer lock and vendored snapshot to the rebased SHA. The consumer lock's old pin alone is not a sufficient base; updating only the PR metadata or temporary branch without its lock pin will not fix this.

The bot will recheck automatically on a later poll.

@yuxianq
yuxianq force-pushed the feat/prims-ts-mla-prefill branch from 47a02ee to d575c3f Compare October 9, 2026 08:17
@yuxianq

yuxianq commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #76928 [ run ] triggered by Bot. Commit: d575c3f Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #76928 [ run ] completed with state SUCCESS. Commit: d575c3f
/LLM/main/L0_MergeRequest_PR pipeline #63420 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

@yuxianq

yuxianq commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator Author

@yuxianq — the PrimTS upstream refresh #20155 has merged. Please update this source-update PR before merging it.

The new canonical source branch is yuxianq/flashinfer:trtllm-prims-ts-dev-20261012, initially pinned at ae312f7cc1723b06fda5168105ade0f328ee47d8.

  1. Rebase your temporary FlashInfer branch onto the new canonical branch; retain only changes not already included upstream, resolving any API differences.
  2. Rebase this TRT-LLM PR onto latest main, including the refreshed compatibility patch and integration changes.
  3. Keep vendors.flashinfer-prims-ts in 3rdparty/vendor_sources.lock.yaml pointing to your temporary source branch, update its immutable commit, and regenerate the selected vendored files and digests. Do not restore the old canonical branch/pin while resolving conflicts.
  4. Update the PR description's vendor-promotion block if the paired upstream PRs or explicit commit resolutions change after rebasing.
  5. Verify the vendored snapshot and rerun the relevant tests and CI.

The publishing bot now targets the new dated canonical branch. After this source-update PR merges, its lock-only promotion will target that branch. The old trtllm-prims-ts-dev branch is intentionally unchanged.

@yuxianq
yuxianq force-pushed the feat/prims-ts-mla-prefill branch from 8298aba to 72a6cea Compare October 13, 2026 09:32
@yuxianq

yuxianq commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #77492 [ run ] triggered by Bot. Commit: 72a6cea Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #77492 [ run ] completed with state SUCCESS. Commit: 72a6cea
/LLM/main/L0_MergeRequest_PR pipeline #63880 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

@yuxianq

yuxianq commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

The pinned temporary source commit e377847b798c8203eec83802ea81794bf07303f1 does not contain the latest canonical branch tip ae3851ab5f958ba22f154059df5b38321f6369d2.

Fix: Fetch https://github.com/yuxianq/flashinfer.git / trtllm-prims-ts-dev-20261012 and rebase the temporary source branch prims-ts-mla-prefill--flashinfer onto its latest tip (observed ae3851ab5f958ba22f154059df5b38321f6369d2). Push it, then use scripts/vendor/manage.py to update the consumer lock and vendored snapshot to the rebased SHA. The consumer lock's old pin alone is not a sufficient base; updating only the PR metadata or temporary branch without its lock pin will not fix this.

The bot will recheck automatically on a later poll.

Checked PR revision: 72a6ceab79ef. This is a snapshot; newer results are posted as new comments.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin e377847b798c8203eec83802ea81794bf07303f1.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs maintainer action:

Waiting for the preceding vendor promotion: the base lock still points to repository https://github.com/heyuhhh/flashinfer.git, branch trtllm-prims-ts-dev.

Fix: A maintainer must finish the preceding lock-only promotion back to yuxianq/flashinfer / trtllm-prims-ts-dev-20261012. After it merges, the author should rebase this consumer PR onto the latest base branch and rebase its temporary source branch onto the new canonical pin, then update the lock/vendor snapshot. No metadata edit can unblock the preceding promotion.

The bot will recheck automatically on a later poll.

Checked PR revision: 72a6ceab79ef. This is a snapshot; newer results are posted as new comments.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Source update is not a fast-forward.

Fix: Fetch canonical repository https://github.com/yuxianq/flashinfer.git, branch trtllm-prims-ts-dev-20261012, and rebase the temporary source branch prims-ts-mla-prefill--flashinfer onto its latest tip without merge commits, not just the consumer lock's pin 0e0761ef5ef10cb0762cc1b890a5c1a329bb49bf. Then use scripts/vendor/manage.py to update 3rdparty/vendor_sources.lock.yaml and the vendored snapshot to the rebased SHA, and push the source branch and consumer PR. Editing metadata alone will not fix this.

The bot will recheck automatically on a later poll.

Checked PR revision: 72a6ceab79ef. This is a snapshot; newer results are posted as new comments.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin e377847b798c8203eec83802ea81794bf07303f1.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs maintainer action:

Waiting for the preceding vendor promotion: the base lock still points to repository https://github.com/yunruis/flashinfer.git, branch trtllm-prims-ts-dev-20261023.

Fix: A maintainer must finish the preceding lock-only promotion back to yuxianq/flashinfer / trtllm-prims-ts-dev-20261012. After it merges, the author should rebase this consumer PR onto the latest base branch and rebase its temporary source branch onto the new canonical pin, then update the lock/vendor snapshot. No metadata edit can unblock the preceding promotion.

The bot will recheck automatically on a later poll.

Checked PR revision: 72a6ceab79ef. This is a snapshot; newer results are posted as new comments.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Source update is not a fast-forward.

Fix: Fetch canonical repository https://github.com/yuxianq/flashinfer.git, branch trtllm-prims-ts-dev-20261012, and rebase the temporary source branch prims-ts-mla-prefill--flashinfer onto its latest tip without merge commits, not just the consumer lock's pin aa709061230a58858375c513056e7733fa74294a. Then use scripts/vendor/manage.py to update 3rdparty/vendor_sources.lock.yaml and the vendored snapshot to the rebased SHA, and push the source branch and consumer PR. Editing metadata alone will not fix this.

The bot will recheck automatically on a later poll.

Checked PR revision: 72a6ceab79ef. This is a snapshot; newer results are posted as new comments.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin e377847b798c8203eec83802ea81794bf07303f1.

Supersedes previous vendor validation.

@yuxianq
yuxianq force-pushed the feat/prims-ts-mla-prefill branch from 72a6cea to d829f61 Compare October 26, 2026 10:46
@yuxianq

yuxianq commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@yuxianq

yuxianq commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion metadata and source attribution are valid. This is not a code-review approval. Promotion still requires the source PR to merge.

No exact match was found for the following commits; similarity matching accepted them:

  • 9b4e7c9357a3d865dea0e19fbc38916c55dd3de5: upstream PR #5489, similarity 92.06% — accepted (threshold 90.00%; similar-edits).

Scores compare normalized patch lines in lock-selected files, not semantic equivalence. These changes retain retain-until-verified refresh policy.

Checked PR revision: d829f61b3628. This is a snapshot; newer results are posted as new comments.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 75961f74dac2c438cd7bce3dd135d527e78e49ec.

Supersedes previous vendor validation.

@github-actions

Copy link
Copy Markdown

👎 Promotion blocked, new vulnerability found

Vulnerability report

Component Vulnerability Description Severity
py-filelock CVE-2026-112906 filelock is a platform-independent file lock for Python. From 4.1.0 until 4.2.1, SoftFileLock versions from 4.1.0 can reuse a stale observation when an attacker pre-dates and removes its own marker, at least two lock-user processes are waiting, coarse or matching modification times preserve the observation, and an honest contender creates a fresh marker on the reused inode, causing that live marker to be removed as stale. This issue is fixed in version 4.2.1. MEDIUM
py-filelock CVE-2026-112914 filelock is a platform-independent file lock for Python. From 4.1.0 until 4.2.1, SoftFileLock can restore a stale marker by name after moving it aside, allowing another local user with rename access in a non-sticky lock directory to swap in a symbolic link and, on a runtime that follows the link and a same-filesystem target, make the lock user hard-link one of its files into the lock directory. This issue is fixed in version 4.2.1. MEDIUM
py-filelock CVE-2026-112937 filelock is a platform-independent file lock for Python. From 4.1.0 until 4.2.1, ReadWriteLock can remove a randomized .filelock-* private-hard-link directory during cleanup, allowing another local user with rename access in a non-sticky parent to observe a live name or forge a dead-owner sweep name and rename a sibling directory onto it for deletion. This issue is fixed in version 4.2.1. MEDIUM
py-filelock CVE-2026-112940 filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock let SQLite reopen the database and side files by name; on POSIX systems an attacker with rename access in a non-sticky parent can swap those names to cause overwrite or unlink operations, while a writable adjacent hot journal is additionally required for attacker-chosen content overwrites. This issue is fixed in version 4.2.1. HIGH

Import FlashInfer 75961f74dac2c438cd7bce3dd135d527e78e49ec from prims-ts-mla-prefill--flashinfer. This consolidates the functional vendor refresh and its rebase/ABI fixups without changing the pinned source or generated bytes.

The runtime exposes store_softmax_stats for continuous/paged context, standard decode, and MLA decode. These statistics enable cached/chunked MLA partial-output merging. Dense-Q scheduling optimization is deliberately excluded and reviewed separately.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
…patch

Add mla_context_preprocess with caller-owned buffers. Reuse RoPE/cache append and FP8 QKV quantization, allow preprocessed cached/chunked inputs, and pack the strided V projection. This commit adds the prologue contract only; the PrimTS adapter follows separately.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Route fresh, cached and chunked MLA prefill through the planned PrimTS context wrapper, including FP8 scales and merge-compatible softmax statistics. Preserve full cached K/V spans and account for BF16 V-packing workspace.

Fold the FMHA-field and statistics-API rebase adaptations into this implementation. Correct MLA generation to require query-only input (is_fused_qkv=False), matching PhasedFmha. Include selector/contract and workspace tests; Rubin enablement and performance scheduling are separate commits.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Add K3 full-attention coverage for fresh/cached/chunked prefill, BF16/FP8 KV, TP/attention-DP heads, and CUDA graph decode. Check fresh prefill against independent FP64 math after preprocessing; retain direct backend comparisons for cached/chunk-merged prefill and decode.

Add forced-PrimTS GSM8K CI cases, supported KvCacheConfig dtype selection, and the missing FP8-KV reference without relaxing accuracy thresholds. Hecate qualification on the equivalent full functional snapshot passed 1319 examples per dtype (BF16 96.058%, FP8 96.740%). Scheduling optimization is not part of this commit.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Keep Blackwell on the existing DSL 4.7 minimum and require DSL 4.8 for SM107, retaining the compiler 13.3 gate. Extend availability tests and full-attention test collection to Rubin. This is architecture enablement only, not the dense-Q scheduling optimization.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Permit explicit MLA context calls under linear speculative metadata, retaining tree, custom-mask, mixed-phase and Helix-context exclusions. Cover causal fresh/final chunks, FULL cached chunks, FP8 statistics and live metadata reuse.

Validation: 363 adapter tests and 8 Kimi K3 module tests passed with no skips in the matching Rubin runtime; two independent review passes and pre-commit passed. Full-model MTP qualification remains separate.
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Add the FP8 MLA DSpark7 integration case to the existing eight-GPU CI stage. Propagate strict target FMHA selection to pre-existing workers, restore each worker environment, and cover success and failure cleanup with CPU regressions. Preserve existing model resources, GSM8K criteria, acceptance length, and FP32 KDA state.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Preserve the static PrimTS capability contract after rebasing onto the shared MLA routing helper. SM107 FP8 pages are not exclusive to CuTe DSL once PrimTS supports them.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Avoid repeated workspace policy and sizing work on warmed eager MLA calls. Scope scalar sizes to the prepared KV capacity, invalidate dependent plans when that capacity changes, and preserve workspace allocation and CUDA graph capture checks.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Import the separately reviewed FlashInfer single-split, packed-query pruning, LDRED and runtime-KV domain optimizations from the published temporary source branch. Preserve main compatibility adaptations and the functionality/performance split.

The materialized production tree matches the Rubin-validated source, except for the independently audited block-sparse metadata compatibility fix from main. Keep the benchmark results scoped to their frozen pre-rebase runtime.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
@yuxianq
yuxianq force-pushed the feat/prims-ts-mla-prefill branch from d829f61 to 0c80a0c Compare November 1, 2026 10:58
@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Upstream attribution is unresolved for these source commits:

  • df3434b1dc23df96527e202aa43ae233ed8641ee: no exact match; best similarities: upstream PR #5489: 12.95%; no PR meets the 90.00% similarity threshold
  • 06e9cc5c084a0f5791ae4989a9bda4a7a595eaca: no exact match; best similarities: upstream PR #5489: 2.63%; no PR meets the 90.00% similarity threshold
  • 502353da9e0f22d8eb1d772ecebd830d08eafbfe: no exact match; best similarities: upstream PR #5489: 6.59%; no PR meets the 90.00% similarity threshold
  • 9e26388ea95e5b40c924ffd2c6acef575cb5a8b1: no exact match; best similarities: upstream PR #5489: 7.84%; no PR meets the 90.00% similarity threshold
  • 76e8229748606d0e51f27f84fe19335cbe605ae9: no exact match; best similarities: upstream PR #5489: 5.45%; no PR meets the 90.00% similarity threshold

No exact match was found for the following commits; similarity matching accepted them:

  • 9b4e7c9357a3d865dea0e19fbc38916c55dd3de5: upstream PR #5489, similarity 92.06% — accepted (threshold 90.00%; similar-edits).

Scores compare normalized patch lines in lock-selected files, not semantic equivalence. These changes retain retain-until-verified refresh policy.

Fix: In the PR description, add missing PRs to vendors.flashinfer-prims-ts.upstream_prs, remove incorrectly listed PRs, or correct/rebase the source pin and update the vendored snapshot. For an intentional adaptation or ambiguous ownership, merge a targeted resolutions entry into the existing vendor metadata as shown below. Replace the SHA and URL and give a specific reason; preserve other entries. No complete commit_map is required. A resolution records an author assertion, not verified equivalence; it is retained during refresh until separately verified.

vendors:
  flashinfer-prims-ts:
    upstream_prs:
      - https://github.com/flashinfer-ai/flashinfer/pull/123
    resolutions:
      FULL_40_CHARACTER_SOURCE_SHA:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/123
        reason: Explain the downstream adaptation or why this PR owns the change.

The bot will recheck automatically on a later poll.

Checked PR revision: 0c80a0cfc644. This is a snapshot; newer results are posted as new comments. Observed dev/upstream tip SHAs may be stale: tip movement alone does not post a new comment when the result is unchanged. Fetch the live branch before rebasing or choosing a new pin.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 76e8229748606d0e51f27f84fe19335cbe605ae9.

Supersedes previous vendor validation.

@yuxianq yuxianq changed the title [None][feat] Add PrimTS MLA prefill and Kimi K3 coverage [None][feat] Add PrimTS MLA prefill, MTP, and Rubin support Nov 1, 2026
@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --extra-stage "GB300-8_GPUs-2_Nodes-PyTorch-SingleNvlinkDomain-Post-Merge-1"

@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Upstream attribution is unresolved for these source commits:

  • df3434b1dc23df96527e202aa43ae233ed8641ee: no exact match; best similarities: upstream PR #5489: 12.95%, upstream PR #6774: 6.24%; no PR meets the 90.00% similarity threshold
  • 06e9cc5c084a0f5791ae4989a9bda4a7a595eaca: no exact match; best similarities: upstream PR #6774: 3.92%, upstream PR #5489: 2.63%; no PR meets the 90.00% similarity threshold
  • 9e26388ea95e5b40c924ffd2c6acef575cb5a8b1: no exact match; best similarities: upstream PR #6774: 10.39%, upstream PR #5489: 7.84%; no PR meets the 90.00% similarity threshold
  • 76e8229748606d0e51f27f84fe19335cbe605ae9: no exact match; best similarities: upstream PR #6774: 9.41%, upstream PR #5489: 5.45%; no PR meets the 90.00% similarity threshold

No exact match was found for the following commits; similarity matching accepted them:

  • 9b4e7c9357a3d865dea0e19fbc38916c55dd3de5: upstream PR #5489, similarity 92.06% — accepted (threshold 90.00%; similar-edits).

Scores compare normalized patch lines in lock-selected files, not semantic equivalence. These changes retain retain-until-verified refresh policy.

Fix: In the PR description, add missing PRs to vendors.flashinfer-prims-ts.upstream_prs, remove incorrectly listed PRs, or correct/rebase the source pin and update the vendored snapshot. For an intentional adaptation or ambiguous ownership, merge a targeted resolutions entry into the existing vendor metadata as shown below. Replace the SHA and URL and give a specific reason; preserve other entries. No complete commit_map is required. A resolution records an author assertion, not verified equivalence; it is retained during refresh until separately verified.

vendors:
  flashinfer-prims-ts:
    upstream_prs:
      - https://github.com/flashinfer-ai/flashinfer/pull/123
    resolutions:
      FULL_40_CHARACTER_SOURCE_SHA:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/123
        reason: Explain the downstream adaptation or why this PR owns the change.

The bot will recheck automatically on a later poll.

Checked PR revision: 0c80a0cfc644. This is a snapshot; newer results are posted as new comments. Observed dev/upstream tip SHAs may be stale: tip movement alone does not post a new comment when the result is unchanged. Fetch the live branch before rebasing or choosing a new pin.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 76e8229748606d0e51f27f84fe19335cbe605ae9.

Supersedes previous vendor validation.

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #81839 [ run ] triggered by Bot. Commit: 0c80a0c Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #81839 [ run ] completed with state SUCCESS. Commit: 0c80a0c
/LLM/main/L0_MergeRequest_PR pipeline #67491 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

Forward the trailing disabled KV-bounds operand through the downstream prepared launcher and regenerate the vendor compatibility patch with the vendor toolkit.

Cover host argument parity for both cache layouts and workspace modes, and exercise prepared execution after persistent-kernel reload.

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
…ging

Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
Signed-off-by: Yuxian Qiu <142763828+yuxianq@users.noreply.github.com>
@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Upstream attribution is unresolved for these source commits:

  • 1e357517b4653b61bd5adab44290743f494c5e96: no exact match; best similarities: upstream PR #5489: 56.88%, upstream PR #6774: 5.95%; no PR meets the 90.00% similarity threshold
  • c2b0baeaf36935ff35d52141949ecdc393084692: no exact match; best similarities: upstream PR #5489: 82.47%, upstream PR #6774: 10.67%; no PR meets the 90.00% similarity threshold
  • 9b4e7c9357a3d865dea0e19fbc38916c55dd3de5: no exact match; best similarities: upstream PR #5489: 72.92%, upstream PR #6774: 9.18%; no PR meets the 90.00% similarity threshold
  • df3434b1dc23df96527e202aa43ae233ed8641ee: no exact match; best similarities: upstream PR #5489: 89.05%, upstream PR #6774: 6.24%; no PR meets the 90.00% similarity threshold
  • 76e8229748606d0e51f27f84fe19335cbe605ae9: no exact match; best similarities: upstream PR #5489: 80.00%, upstream PR #6774: 9.41%; no PR meets the 90.00% similarity threshold

No exact match was found for the following commits; similarity matching accepted them:

  • 06e9cc5c084a0f5791ae4989a9bda4a7a595eaca: upstream PR #5489, similarity 92.31% — accepted (threshold 90.00%; similar-edits).
  • 9e26388ea95e5b40c924ffd2c6acef575cb5a8b1: upstream PR #5489, similarity 94.23% — accepted (threshold 90.00%; similar-edits).

Scores compare normalized patch lines in lock-selected files, not semantic equivalence. These changes retain retain-until-verified refresh policy.

Fix: In the PR description, add missing PRs to vendors.flashinfer-prims-ts.upstream_prs, remove incorrectly listed PRs, or correct/rebase the source pin and update the vendored snapshot. For an intentional adaptation or ambiguous ownership, merge a targeted resolutions entry into the existing vendor metadata as shown below. Replace the SHA and URL and give a specific reason; preserve other entries. No complete commit_map is required. A resolution records an author assertion, not verified equivalence; it is retained during refresh until separately verified.

vendors:
  flashinfer-prims-ts:
    upstream_prs:
      - https://github.com/flashinfer-ai/flashinfer/pull/123
    resolutions:
      FULL_40_CHARACTER_SOURCE_SHA:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/123
        reason: Explain the downstream adaptation or why this PR owns the change.

The bot will recheck automatically on a later poll.

Checked PR revision: 0c80a0cfc644. This is a snapshot; newer results are posted as new comments. Observed dev/upstream tip SHAs may be stale: tip movement alone does not post a new comment when the result is unchanged. Fetch the live branch before rebasing or choosing a new pin.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 76e8229748606d0e51f27f84fe19335cbe605ae9.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion needs author action:

Upstream attribution is unresolved for these source commits:

  • 1e357517b4653b61bd5adab44290743f494c5e96: no exact match; best similarities: upstream PR #5489: 56.88%, upstream PR #6774: 5.95%; no PR meets the 90.00% similarity threshold
  • c2b0baeaf36935ff35d52141949ecdc393084692: no exact match; best similarities: upstream PR #5489: 82.47%, upstream PR #6774: 10.67%; no PR meets the 90.00% similarity threshold
  • 9b4e7c9357a3d865dea0e19fbc38916c55dd3de5: no exact match; best similarities: upstream PR #5489: 72.92%, upstream PR #6774: 9.18%; no PR meets the 90.00% similarity threshold
  • df3434b1dc23df96527e202aa43ae233ed8641ee: no exact match; best similarities: upstream PR #5489: 89.05%, upstream PR #6774: 6.24%; no PR meets the 90.00% similarity threshold
  • 76e8229748606d0e51f27f84fe19335cbe605ae9: no exact match; best similarities: upstream PR #5489: 80.00%, upstream PR #6774: 9.41%; no PR meets the 90.00% similarity threshold
  • f87128ec8320c8ca858aa13994d036dc22f80418: no exact match; best similarities: upstream PR #5489: 55.02%, upstream PR #6774: 8.07%; no PR meets the 90.00% similarity threshold
  • 069139a65aad98f3e5c61f049c761e28eff0b14e: no exact match; best similarities: upstream PR #6774: 5.56%, upstream PR #5489: 5.41%; no PR meets the 90.00% similarity threshold

No exact match was found for the following commits; similarity matching accepted them:

  • 06e9cc5c084a0f5791ae4989a9bda4a7a595eaca: upstream PR #5489, similarity 92.31% — accepted (threshold 90.00%; similar-edits).
  • 9e26388ea95e5b40c924ffd2c6acef575cb5a8b1: upstream PR #5489, similarity 94.23% — accepted (threshold 90.00%; similar-edits).

Scores compare normalized patch lines in lock-selected files, not semantic equivalence. These changes retain retain-until-verified refresh policy.

Fix: In the PR description, add missing PRs to vendors.flashinfer-prims-ts.upstream_prs, remove incorrectly listed PRs, or correct/rebase the source pin and update the vendored snapshot. For an intentional adaptation or ambiguous ownership, merge a targeted resolutions entry into the existing vendor metadata as shown below. Replace the SHA and URL and give a specific reason; preserve other entries. No complete commit_map is required. A resolution records an author assertion, not verified equivalence; it is retained during refresh until separately verified.

vendors:
  flashinfer-prims-ts:
    upstream_prs:
      - https://github.com/flashinfer-ai/flashinfer/pull/123
    resolutions:
      FULL_40_CHARACTER_SOURCE_SHA:
        upstream_pr: https://github.com/flashinfer-ai/flashinfer/pull/123
        reason: Explain the downstream adaptation or why this PR owns the change.

The bot will recheck automatically on a later poll.

Checked PR revision: a7da965b6118. This is a snapshot; newer results are posted as new comments. Observed dev/upstream tip SHAs may be stale: tip movement alone does not post a new comment when the result is unchanged. Fetch the live branch before rebasing or choosing a new pin.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 069139a65aad98f3e5c61f049c761e28eff0b14e.

Supersedes previous vendor validation.

@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --extra-stage "GB300-8_GPUs-2_Nodes-PyTorch-SingleNvlinkDomain-Post-Merge-1"

@yuxianq

yuxianq commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Vendor validation: flashinfer-prims-ts

@yuxianq — Vendor promotion metadata and source attribution are valid. This is not a code-review approval. Promotion still requires the source PR to merge.

Checked PR revision: a7da965b6118. This is a snapshot; newer results are posted as new comments. Observed dev/upstream tip SHAs may be stale: tip movement alone does not post a new comment when the result is unchanged. Fetch the live branch before rebasing or choosing a new pin.

Checked source: https://github.com/yuxianq/flashinfer.git / prims-ts-mla-prefill--flashinfer, pin 069139a65aad98f3e5c61f049c761e28eff0b14e.

Supersedes previous vendor validation.

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #81855 [ run ] triggered by Bot. Commit: a7da965 Link to invocation

This branch has not been deployed

No deployments
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