Implement the chunk_fwd_o (output computation) kernel for Gated DeltaNet.

This kernel computes the final output by combining inter-chunk (state-based)
and intra-chunk (attention-based) contributions for the chunkwise parallel
forward pass of Gated DeltaNet (arXiv:2412.06464, ICLR 2025).

The sequence is divided into chunks of BT=64 timesteps. For each chunk
independently:
  inter = q @ h * exp(g)
  intra = causal_mask(q @ k^T * exp(g[:, None] - g[None, :])) @ v_new
  output = (inter + intra) * scale

where scale = K^(-0.5), and causal_mask zeros out entries where row < col.

Input: tuple(q, k, v_new, h, g) where:
  - q: torch.Tensor of shape [B, T, H, K] (float32) — queries
  - k: torch.Tensor of shape [B, T, H, K] (float32) — keys
  - v_new: torch.Tensor of shape [B, T, H, V] (float32) — corrected values
  - h: torch.Tensor of shape [B, NT, H, K, V] (float32) — per-chunk states
  - g: torch.Tensor of shape [B, T, H] (float32) — cumulative gate

Output: torch.Tensor of shape [B, T, H, V] (float32)

Constraint: T must be a multiple of 64. NT = T // 64. scale = K^(-0.5).
