Skip to content

Cherry-pick unit, wheel, infra, and Rubin follow-ups onto release-v0.6.18 - #4764

Merged
kahyunnam merged 12 commits into
release-v0.6.18from
cherry/v0.6.18-rc8-followups
Aug 26, 2026
Merged

kahyunnam merged 12 commits into
release-v0.6.18from
cherry/v0.6.18-rc8-followups

Conversation

@kahyunnam

Copy link
Copy Markdown
Member

Summary

Cherry-picks onto release-v0.6.18 (after #4762), one commit per source PR (plus a revert of the old #4577 yaml pin so #4469 can land).

Unit tests

Wheel size

Infra

Rubin

Test plan

  • python3 ci/validate_cuda_versions.py (already run locally: 2 runtime images, 3 JIT-cache targets)
  • GitLab unit tests: non-Rubin still logs nvidia-cutlass-dsl 4.6.2; Rubin PREPARE_RUBIN_TEST_IMAGE=1 left in place
  • Sparse MLA SM120/SM121 prefill no longer hangs ([Bug]Flaky issue on Spark: test_sparse_mla_sm120 timeout with no results #3700)
  • jit-cache cu134 matrix still has 10.7a; SM75/SM121a gone

kahyunnam and others added 12 commits August 26, 2026 23:41
…al (#4667)

0.6.18 has no kda_prefill_cute / #4605 auto CuTe prefill path (public
recurrent_kda already uses Cake), so only the shared
is_cute_dsl_experimental_available probe is cherry-picked.
Alternate the math/IO barrier ids by tile parity so a leading math warp
cannot double-arrive one phase (#3700).
## 📌 Description

CUDA 13.4 changes `nvcc --dryrun` output in a way that sccache v0.17.0
parses incorrectly. The missing compile steps later surface as
`fatbinary` failures because the expected cubins were never produced.

- Bypass sccache for cu134 NVCC invocations while keeping host C++
compilation cached.
- Accept both CUDA version forms used by the release/nightly (`13.4`)
and PR (`134`) build paths.
- Trigger the Release dry-run matrix when the shared JIT-cache helper
changes, so both cu134 architecture jobs exercise this workaround before
merge.
- Remove the guard once the pinned sccache release includes the upstream
CUDA 13.3+ fix.

## 🔍 Related Issues

- Upstream fix:
[mozilla/sccache#2722](mozilla/sccache#2722)
- Failing nightly: [run
32544126473](https://github.com/flashinfer-ai/flashinfer/actions/runs/32544126473)

## 🚀 Pull Request Checklist

Thank you for contributing to FlashInfer! Before we review your pull
request, please make sure the following items are complete.

### ✅ Pre-commit Checks

- [x] I have installed `pre-commit` by running `pip install pre-commit`
(or used your preferred method).
- [x] I have installed the hooks with `pre-commit install`.
- [x] I have run the hooks manually with `pre-commit run --all-files`
and fixed any reported issues.

> If you are unsure about how to set up `pre-commit`, see [the
pre-commit documentation](https://pre-commit.com/).

## 🧪 Tests

- [x] Tests have been added or updated as needed.
- [x] All tests are passing (`unittest`, etc.).

Focused validation passed:

- `bash -n scripts/jit_cache_build_common.sh`
- `shellcheck scripts/jit_cache_build_common.sh`
- Mocked launcher checks for CUDA `13.4`, `134`, and `13.0`
- Release workflow YAML parse
- `pre-commit run --all-files`
- `git diff --check`

## Reviewer Notes

This intentionally disables only the affected NVCC launcher for cu134.
The sccache server and host C++ launcher remain enabled so safe cache
hits are preserved. The Release workflow should provide the end-to-end
cu134 x86_64 and aarch64 validation.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved CUDA 13.4 build compatibility by avoiding an incompatible
compiler-cache path.
  * Preserved compiler caching for other supported CUDA versions.

* **Chores**
* Updated release automation to recognize changes affecting shared build
tooling.
* Added clearer build logs showing which compiler-cache launchers are
enabled.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

(cherry picked from commit cf9a04d)
## 📌 Description

Keep `test_supported_jit_cache_versions_match_cuda_config` active in
source-tree presubmit runs, but skip it when `ci/cuda-versions.json` is
intentionally absent from the isolated installed-package layout used by
Nightly Release.

This fixes the identical cu129/cu130 shard 5 failures in Nightly Release
#360 without copying repository-only CI metadata into the
installed-package test directory.

## 🔍 Related Issues

- Nightly Release #360:
https://github.com/flashinfer-ai/flashinfer/actions/runs/32920335499

## 🚀 Pull Request Checklist

Thank you for contributing to FlashInfer! Before we review your pull
request, please make sure the following items are complete.

### ✅ Pre-commit Checks

- [x] I have installed `pre-commit` by running `pip install pre-commit`
(or used your preferred method).
- [x] I have installed the hooks with `pre-commit install`.
- [x] I have run the hooks manually with `pre-commit run --all-files`
and fixed any reported issues.

> If you are unsure about how to set up `pre-commit`, see [the
pre-commit documentation](https://pre-commit.com/).

## 🧪 Tests

- [x] Tests have been added or updated as needed.
- [x] All tests are passing (`unittest`, etc.).

Validation performed:

- `python3 -m compileall -q tests/cli/test_cli_cmds.py`
- `pre-commit run --files tests/cli/test_cli_cmds.py`
- `git diff --check`

Targeted pytest was not run locally because the existing repository
virtualenv does not contain a usable pytest installation. PR CI should
confirm both the source-tree pass and isolated-nightly skip behavior.

## Reviewer Notes

The test still protects the duplicated CLI/config CUDA-version invariant
during presubmit. The skip applies only when the repository-only
`ci/cuda-versions.json` file is unavailable, as it is in the Nightly
Release installed-wheel test directory.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
  * Improved CUDA version consistency testing.
* Tests now skip gracefully when the required configuration file is
unavailable.
  * Added support for running tests with `pytest`.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

(cherry picked from commit e4b7fa4)
Drop SM75 from all cache wheels and SM121a from the cache arch lists so
published jit-cache artifacts stay under GitHub's release-asset limit.
…uilds (#4760)

Skip the single-request attention modules in AOT jit-cache so those
kernels stay JIT-only and the cache wheel stays smaller.
attention-ts context and decode reject compute capability 10.7 outright:

  NotImplementedError: attention-ts context requires an SM100a/B200 or
      SM103a/B300 GPU; device cuda:0 has compute capability (10, 7)

The exclusion carries no rationale. Unlike the tinygemm2 capability tuple it
has no explaining comment, the module does not declare native_only=True (the
mechanism for kernels that need arch-specific tcgen05 instructions), and its
tcgen05 usage is limited to tcgen05_alloc/dealloc, which are family-portable.

Widen both tuples to include (10, 7) and gate on the CuTe DSL arch, so a DSL
older than 4.8 without CUTE_DSL_ARCH=sm_100f gets the actionable message from
require_cute_dsl_arch instead of KeyError: sm_107a during compilation.

Measured on SM107 hardware, tests/attention/test_attention_ts_context.py:
  test_attention_ts_context_plan_rejects_critical_public_contracts
    before: 3 failed, 2 passed
    after : 5 passed

That test is a negative test -- it feeds deliberately invalid inputs and
asserts plan() rejects each with a specific message. plan() only validates and
builds scheduling metadata, so it never compiles a kernel; with the gate closed
the device check short-circuits the contract checks mid-sequence, which is why
two cases passed and three reported the arch error instead.

KNOWN LIMITATION: this fixes the gate, not attention-ts on Rubin. The decode
suite is unchanged at 4 failed / 45 passed / 76 skipped before and after,
because those four fail earlier at kernel construction in the exhaustive
deadlock/race checker -- a failure that also reproduces on B200 (cc 10.0) and
on SM107 with stock code, so it is not Rubin-specific. Landing this alone
trades a clear NotImplementedError for an opaque checker ValueError on the
decode path.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit dd0646f)
Decline Rubin MoE tactics when the CuTe DSL lacks rubin_helpers, and pin
the multi-arch Rubin batched-GEMM cubin package.
…ass (#4753)

Move availability probes to a cutlass-free module so import flashinfer
does not hard-require nvidia-cutlass-dsl. Paths that do not exist on
0.6.18 (kda_prefill_cute, SM120 KDA prefill runtime, attn_scores) are
omitted.
@kahyunnam
kahyunnam requested a review from qiching as a code owner August 26, 2026 23:47
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 786e5e3e-71ea-47a2-8242-bf7b47738b5e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@kahyunnam
kahyunnam merged commit 1073859 into release-v0.6.18 Aug 26, 2026
14 of 16 checks passed
@kahyunnam
kahyunnam deleted the cherry/v0.6.18-rc8-followups branch August 26, 2026 23:49
@kahyunnam kahyunnam added op: linear attention KDA, mamba, GDN, etc. review filtering. op: misc norm, activation, sampling, RoPE, quantization, etc. labels Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

op: attention op: gemm op: linear attention KDA, mamba, GDN, etc. review filtering. op: misc norm, activation, sampling, RoPE, quantization, etc. op: moe

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants