Conversation
Map E4M3 and BOOL through the existing ATen adaptor and preserve the caller's CUDA device across NCCL communicator destruction. Reuse the existing paged Prefill warp kernel for NVIDIA head size 256, without changing other vendors' default dispatch. Extend existing multi-page/long-context coverage and add finite FP8/mask cast checks. Validation: fresh SM86 build, 88 paged Prefill cases, 2 cast tests, and TP2 communicator teardown from both caller devices. Closes InfiniTensor#1565
This was referenced Sep 19, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem and changes
Closes #1565. Target:
InfiniLM-v0.2.9c.Running Qwen's built-in greedy MTP on NVIDIA exposes missing E4M3/BOOL ATen conversions, CUDA device changes during TP communicator teardown, and reference-only Prefill dispatch for head size 256.
This six-file patch:
DataType::F8andDataType::BOOLto existing ATen scalar types. No new conversion kernel.ncclCommDestroy, so its existing runtime stream remains valid when an engine is destroyed and another is created.Validation
Fresh build from base
1ab85ef1with this patch: release, NVIDIA SM86, ATen, CCL, graph, OpenMP and cuDNN. 2 × RTX A6000 48 GiB, driver 580.105.08; native CUDA Toolkit 12.4, Python 3.11.15, PyTorch 2.9.0+cu128. The isolated install was verified withldd, then tested independently of the development checkout.python test/infinicore/ops/paged_attention_prefill.py --nvidia: 88/88 passed, FP16/BF16 and int32/int64 metadata, including head size 256 and existing MLA cases.python -m pytest -q test/infinicore/ops/fp8_cast.py: 2 passed, all finite E4M3 byte patterns and BOOL-to-float/int casts against PyTorch exactly.Saved logs, commands, exact revisions and measurement provenance
Performance and scope
The associated LM MTP path previously measured 33.91 → 49.57, 33.48 → 53.29, and 30.03 → 48.61 generated tok/s against ordinary Decode graphs on TP2 A6000 (63/127/1023-token prompts, FP8 block/Marlin, BF16 activations, K=2 eager, 40×64-token pages, two repeats). These are whole-stack archived results, not speedups attributed solely to this Core patch. Full definitions/raw measurements are in the evidence link; no standalone kernel speed claim is made here.
No new CUDA Graph runtime, Mamba scan, or vendor-specific backend implementation is included. Other accelerators could not be tested because no allocated usable environment was available; their default Prefill dispatch is unchanged. Please review the shared header mapping for vendor build compatibility.
Review / CI
Per
DEV.md, this contribution has a linked issue,issue/1565branch and commit/title prefix, and is submitted from a fork. Requesting @PanZezhong1725 (paged Prefill) and @spike-zhu (maintainer) review. Fork push starts the existing CPU/Linux/Windows checks; external PR jobs may require maintainer approval.Merge only after the required checks and reviewer approval. InfiniLM integration: InfiniTensor/InfiniLM#584.
Formal reviewer assignment was rejected by GitHub (
RequestReviewsByLogin: insufficient upstream permissions). A maintainer needs to assign the two reviewers above. Fork Ruff passed; the Linux/Windows build and CPU tests are running: https://github.com/big-hip/InfiniCore/actions/runs/35444866036.Upstream PR workflows currently report
action_requiredand have not executed jobs; maintainer approval is required. Fork checks are reported separately above.