Repository navigation
perf(attention): add opt-in Iluvatar fused causal Prefill - #610
Open
superme1one wants to merge 2 commits into
Open
superme1one wants to merge 2 commits into
superme1one wants to merge 2 commits into
Conversation
superme1one
force-pushed
the
perf/iluvatar-fused-causal-prefill
branch
from
November 6, 2026 03:14
5d2509f to
60bd0fe
Compare
superme1one
marked this pull request as ready for review
November 6, 2026 03:16
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.
Summary
Use normal runtime operator submission for fused causal Softmax on eligible Iluvatar BF16 Prefill inputs.
INFINILM_ILUVATAR_FUSED_CAUSAL_PREFILL=1opts in; the default and ineligible paths retain Fill/Triu/Tril/Add plus Softmax. The companion InfiniOps #1025 FP32 causal provider is required.Current CoreX build and GPU verification
CoreX current-code validation completed on 2026-11-06 against InfiniLM
12a4492f70dd33235e3d142e333ad4a9629d3b7band InfiniOps1a68b261d19f0ed6f76bbabeab7a25f479f05e07. Both complete SDKs compiledand imported. Both roles used the identical documented CoreX validation adapter
and ABI0, with automatic tuning disabled. The adapter includes existing CUDA
Argmax/Triu/Tril registrations, unchanged rejecting unavailable factories, a
copy-on-write read-only-view loader, and the existing paged-only FlashVarlen
provider's metadata gate. See the companion InfiniLM
docs/performance/corex-validation/README.mdfor exact scope.The affected native GPU tests passed without skips: GEMV 4, causal Softmax 8,
Decode Attention 8, plus 7 common Argmax/mask checks. The submitted device tests
now explicitly bind implementation index 0. GEMV fallback uses the supported
no-C, alpha=0.5 contract; this backend rejects C/bias at its base operator.
Original tasks 554/172 ran on one TG-V200 in forward and reverse role order.
Each of the four model processes used one simultaneous two-request warmup wave
and one simultaneous two-request measured wave: 16 requests total, 8 measured.
All 16 answers were correct with natural EOS, zero errors/truncations, normal
scope return, final library maps, atexit and actual OS exit0. The original
512-token greedy budget, EOS=[2,73440], strict last-#### numeric scorer, inputs
and weights were unchanged. Two physical rows, full Prefill and graph off were
held fixed. No new independent quality questions were added.
Mean two-request measured-wave time was 14.976775177 ->
9.782192262 seconds (-34.6843%).
Completed request throughput was 0.133540096 -> 0.204453148
requests/s (+53.1024%). Published token throughput
was 20.631944884 -> 31.588011330 tokens/s and is reported separately.
The time denominator includes queue and text processing and excludes loading,
warmup and final shutdown. Both role orders reduced application time; this is
the combined four-optimization gain, not an individual-PR or component sum.
Token-different task IDs across the two measured orders: none. Answers and token differences are recorded separately.
Raw clocks, output IDs, strict scores, native receipts and ordinary exits were independently recomputed. This two-question integration check is kept separate from the historical 100-question experiment below.
Reproduction and numerical contract:
docs/performance/iluvatar-four-optimizations.md. Current machine-readable combined evidence and the common adapter are in companion InfiniLM #610. Final publication commits add documentation only to the tested production code; native fixture commits are recorded in the machine-readable evidence.Historical 100-question quality and performance evidence
Historical four-optimization TG-V200/CoreX result: 100 fixed new GSM8K targets, max_tokens=512, greedy EOS=[2,73440], unchanged strict last-
####numeric scoring. Official accuracy 82/100 → 84/100; all requests completed/parsed, zero errors and truncations. 34/100 token-different, including one correct→wrong (1097: 480→448, reference480) and three wrong→correct (672,1259,1203).Sum of per-version same-card formal paired-wave makespans 749.203818 → 505.326616 s (-32.5515%); completed request throughput +48.2613%. Published output tokens 13894→14213, so token throughput +51.6653% is reported separately. Each target's two versions used the same physical card; first20 serial, remaining80 sharded over two cards. Load/warmup/final shutdown excluded; queue/text processing included. These are combined gains, not individual-PR gains or the parallel run's wall time. Eight demonstrations came from a disjoint test-corpus subset (internal paired evaluation).
Historical official InfiniLM baseline:
6e7f9537173cd33bb30539ebf8d92ab6d869660d. The current-code two-task result above is a separate experiment.Notes for Reviewers
The integration preserves runtime owner checks, stream/recording policy and operator mapping. The flag is off by default. This PR includes the common CoreX validation adapter as reproduction documentation; both measured roles use identical adapter files.
The four PRs form the measured combination. This validation does not attribute the total gain to any one PR. The original historical individual regression remains disclosed above.
Platforms and checks
Related optimization PRs
Checklist