[diffusion] Fuse LTX-2.5 decoder 3D RoPE (#35698)

This commit is contained in:
Xiaoyu Zhang
2026-08-21 10:13:09 +08:00
committed by GitHub
parent 978244d671
commit 7e80e889a2
9 changed files with 748 additions and 25 deletions
@@ -98,6 +98,7 @@ These fusion families mount under `quality="high"`:
| `fused_inplace_qknorm_rope` | JIT CUDA | one bf16 rounding step vs the split baseline; exact with `round_norm_before_rope=True` | separate QK-norm kernel + RoPE |
| `rope_rotate_half` | Triton | bit-exact | `chunk` → `cat(-x2, x1)` → two muls + add → `cat(tail)`, about 7 kernels per projection |
| `ltx2_qknorm_split_rope` | JIT CUDA | close (validated on B200) | LTX-2 QK-norm + split RoPE |
| `ltx25_decoder_rope` | JIT CUDA | bit-exact | paired LTX-2.5 decoder 3D RoPE from cached compact axis tables |
| `hunyuan_qkv_rope_pack` | Triton | bit-exact | QKV pack and RoPE in one pass |
### Activation
@@ -142,6 +143,7 @@ Kernels are written against a specific eager chain in a specific model, so cover
| Z-Image | BF16-native RMSNorm scale / tanh-residual, per-head QK RMSNorm |
| Ideogram 4 | gate RMSNorm, SwiGLU, rotate-half RoPE, modulate, residual-gate add |
| LTX-2 | QK-norm + split RoPE, ada-values split, RMSNorm+modulate, modulate, residual-gate add, linear+GELU |
| LTX-2.5 decoder | paired 3D RoPE with shared axis-table cache |
| HunyuanVideo | QKV+RoPE pack, strided QK RMSNorm, linear+GELU |
| Sana | LN+modulate, GLUMB bias+SiLU / bias+GLU, residual-gate add |
| Sana-WM | bidirectional gated delta-net, fused QK inverse-RMS |