Skip to main content

Module lane_link

Module lane_link 

Source
Expand description

The lane’s link: each op of the one IR, as the shared optimizer leaves it under the lane’s shim, to the launches the lane’s kernels run it with.

A lifted op takes the launch of its kind, refused in the lane’s own words where no kernel computes it. A fused op of a class the lane links whole takes the one launch that class’s kernel is — a norm with its residual sum or its sandwiched pre-norm, a product with its bias, a rotation with its per-head norm, a convolution with its SiLU and L2 norm, the gated pair, the mixture with its shared expert or over a chunk’s sorted rows, a launch over several parts — and a class it runs as its parts takes each part’s launches in turn. A placement is a field of the launch: a part of every unit read in place, a result landing in rows of a table or units of a wider tensor, values read in the key rows. A producer that quantizes its result in its epilogue writes the quantized form beside, or instead of, its f32 result. A wide chunk’s latent attention runs expanded: its key half, its value half, then the attention.

What a launch does is decided here; how it is scheduled — four rows a warp, the shared-row attention, the split counts, a batch’s sequences as one launch — is the lane’s schedule, after the link.

Structs§

Link
What the link reads beside an op: the optimized graph, where each constant lives, the lane’s shim, and the names the step carries across steps.

Functions§

link
The launches every op of g runs as, in order, each with the lifted ops it computes, or the first op the lane cannot link and why.