loopyt 4a5606ad2d feat(ops): add a selectable Triton backend, and measure the real kernel surface
Groundwork for replacing TileLang with Triton on the H20 path, plus the first ported kernel.

The scope is measured rather than guessed. `DEEPINFER_TRACE_KERNELS=<path>` proxies every `*_tl`
factory in the dispatcher and records its first use; one full text-generation run on 8xH20 says
exactly 24 kernels execute. `H20-TRITON-PLAN.md` lists them, in dependency order.

`DEEPINFER_OPS_BACKEND` selects the backend package (unset keeps the platform default, so nothing
changes by omission) and `DEEPINFER_OPS_FALLBACK` names individual kernels that must stay on the
default. Kernels the selected backend does not export at all are taken from the default with a
one-line notice, which lets a partial port run end to end the whole way through instead of only
at the end.

That coexistence is the reason for a parallel backend rather than an in-place rewrite: the
TileLang kernel is a validated baseline, so each Triton kernel can be diffed against it on real
shapes through the same public interface function, which is a much stronger check than comparing
against a fresh Python reference. `scripts/h20_ops_ab.py` does that swap and reports per case.

First kernel: `gather_tl`, all 9 cases bitwise identical (zeros filled for out-of-range indices,
int8/bfloat16 payloads, strided rows, int32/int64 indices, empty and single-row inputs).
2026-10-22 00:04:27 +08:00
..
eplb initial commit 2026-10-20 12:09:42 +08:00
input_metadata initial commit 2026-10-20 12:09:42 +08:00
layers feat(ops): add a selectable Triton backend, and measure the real kernel surface 2026-10-22 00:04:27 +08:00
models fix(debug): move debug_dump out of h20_ops so other platforms can import it 2026-10-21 22:37:49 +08:00
parallel_utils feat: add SM90 (Hopper) support for DeepSeek-V4.1 inference 2026-10-21 15:18:56 +08:00
__init__.py initial commit 2026-10-20 12:09:42 +08:00
layer_utils.py initial commit 2026-10-20 12:09:42 +08:00
model_loader.py initial commit 2026-10-20 12:09:42 +08:00
model_metadata_utils.py initial commit 2026-10-20 12:09:42 +08:00
model_output.py initial commit 2026-10-20 12:09:42 +08:00
sampling_inputs.py initial commit 2026-10-20 12:09:42 +08:00
utils.py initial commit 2026-10-20 12:09:42 +08:00