/** * slice.ts — strided COLUMN slice of a row-major (rows, stride) tensor. * * Every block in this engine projects into one fused tensor and then splits it: * Mamba-1 into (x, z) and (Δ, B, C), Mamba-2/3 into (x, Δ) and (x, B, C), * attention into (Q, K, V). `LINEAR_FORWARD_WGSL` writes its output `(M, N)` * ROW-major, so each of those parts is a contiguous range of COLUMNS **within * every row** — not a contiguous range of the buffer. * * Splitting them with `copyBufferToBuffer` therefore took whole ROWS instead: it * is only the right answer when `M == 1` (batch × seq_len), and for any real * sequence it silently handed the block the wrong tensor. This kernel is the one * correct implementation; every block uses it. */ export declare const COL_SLICE_WGSL: string; /** Entry point name of {@link COL_SLICE_WGSL}. */ export declare const COL_SLICE_ENTRY = "col_slice"; /** * `dst[r, 0..width) = src[r, offset..offset+width)` for every row. * * @param pipeline a pipeline built from {@link COL_SLICE_WGSL} / {@link COL_SLICE_ENTRY} * @param rows batch * seqLen * @param stride source row width (the fused projection's output features) */ export declare function dispatchColumnSlice(device: GPUDevice, pipeline: GPUComputePipeline, src: GPUBuffer, dst: GPUBuffer, rows: number, stride: number, offset: number, width: number): void; //# sourceMappingURL=slice.d.ts.map