*,
need_stats: bool,
) -> tuple[torch.Tensor, torch.Tensor | None, torch.Tensor | None]:
"""Run one TND FA and return dense-indexer statistics."""
query_ends, key_ends = (lengths.tolist() for lengths in sequence_lengths)
q_flat, k_flat, v_flat = (tensor.flatten(0, 1) for tensor in (query, key, value))
num_heads = q_flat.shape[1]
causal_mask = torch.ones((2048, 2048), dtype=torch.bool, device=query.device).triu(diagonal=1)
import torch_npu # pylint: disable=import-outside-toplevel,forbidden-backend-import
result = torch_npu.npu_fusion_attention(
q_flat.contiguous(), k_flat.contiguous(), v_flat.contiguous(), num_heads, "TND",
pse=None, padding_mask=None, atten_mask=causal_mask, scale=module.scaling,
pre_tockens=getattr(module, "pre_tockens", 1048576),
next_tockens=getattr(module, "next_tockens", 0), keep_prob=1.0, inner_precise=0,