[perf](kt-kernel): fuse CPU BF16 gradient norm reduction (#2234)

This commit is contained in:
yyj
2026-10-10 11:10:38 +08:00
committed by GitHub
parent 2ac8cf9c88
commit c76ff29b2a
5 changed files with 53 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
"""Memory-efficient norm reduction for KT-owned CPU BF16 gradients."""
from __future__ import annotations
import torch
from . import kt_kernel_ext
if not hasattr(kt_kernel_ext, "_bf16_sumsq_ptr"):
raise ImportError("The loaded kt-kernel extension does not support CPU BF16 gradient norm reduction")
def bf16_sumsq(tensor: torch.Tensor) -> float:
"""Return sum(float(value) ** 2) without materializing a float tensor."""
if tensor.device.type != "cpu" or tensor.dtype != torch.bfloat16 or tensor.layout != torch.strided:
raise TypeError("bf16_sumsq requires a strided CPU BF16 tensor")
if not tensor.is_contiguous():
raise ValueError("bf16_sumsq requires a contiguous tensor")
return kt_kernel_ext._bf16_sumsq_ptr(tensor.data_ptr(), tensor.numel())