Flash-CCE backward: dh [M, hidden] (f32) = ∂(Σ_t cotangent_t · logp_t)/∂h.
lse is the forward's saved log-sum-exp [M]; cot is the per-token cotangent
∂loss/∂logp_t [M]. Recomputes logits in-kernel (no [M,V]). filterEps and
blockEps default to the composed epsilons; pass "0" for guaranteed-exact
gradients (the parity gate does). The block skip fires only with the
forward's blockMax. Caller owns the result.
OptionalblockMax: MlxArrayFlash-CCE forward over hResp [M, hidden]: logp [M], the log-sum-exp [M]
the backward reuses, and the per-vocab-block maxima [M, NBLK] that drive its
block skip. The caller owns all three.
The flash-CCE head's kernels, dispatched with the choices its owner composed for the training run (
FlashCceOptions), fixed at construction.