- Kernel: zero V padding rows on partial 64-key chunks (and skip 16-key
steps wholly past the valid keys), so NaN/Inf padding in K or V cannot
reach the output; cache the SM count and the shared-memory attribute per
device in atomics instead of an unsynchronized function-static slot.
- is_supported now checks the launch limits (batch * heads <= 65535,
rows < 2^31, tiles < 2^22) via within_launch_limits; the binding checks
the row limit too. The H3 route checks the limits per call and falls
back to split-Triton instead of failing in the binding.
- H3 route: one tile-128 route cache (ptx_blackwell / sm121 / split),
resolved on a two-tile probe before tile(), so the sm121 and split routes
no longer pad odd tile counts with the ptx_blackwell partner tile.
- Warn once when a GB10 falls back to split-Triton; the fail-closed error
names the sm_121a build.
- CMake: accept 12.1f and +PTX spellings; warn when CUDA < 13 skips it.
- Docs: bf16 fallback leaves FASTVIDEO_H3_VSA_FINE_ATTENTION unset on Spark.
- Tests: the real-kernel oracle tests assert the route and spy on the
kernel entry; new tests for NaN/Inf padding, launch limits, the GB10
warning and the over-limit fallback.