pub fn glm_hc_pre(
gpu: &dyn GpuBackend,
kernels: &Glm5NextMhcKernels,
streams: DevicePtr,
w: &Glm5NextMhcSiteWeights,
y_out: DevicePtr,
post_out: DevicePtr,
comb_out: DevicePtr,
num_tokens: u32,
hidden_size: u32,
hc_mult: u32,
sinkhorn_iters: u32,
norm_eps: f32,
hc_eps: f32,
stream: u64,
) -> Result<()>Expand description
2026-09-25: Collapse each token’s hc_mult FP32 streams to one BF16 row in y_out, and write
this site’s post and comb, by launching hc_mix (or hc_mix_bf16) then hc_finish.
streams is read, not written, so glm_hc_post can take it as its residual. Errors when
num_tokens exceeds mhc_mix_max_tokens().