You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the per-tile attention loop (a ggml_new_tensor_2d accumulator with
ggml_set_2d writes and per-tile ggml_view_1d position slices, one rope pair
per tile per layer) with zero-copy 3D views over the batched QKV buffer: a
single rope pair runs on the collapsed n_pos*batch_size sequence, then 4D
views feed one block-diagonal build_attn per layer. Fewer graph nodes and
tensor descriptors, scaling with n_layer instead of n_layer*batch_size.
Fix the M-RoPE position layout for batch_size>1: the mrope kernel reads
section s of token i at positions[s*N + i] (N = n_pos*batch_size), so the
buffer must be section-major across the full batched sequence, not tile-
major. The old layout mis-indexed every section beyond the first tile,
encoding (y,y) instead of (y,x). batch_size==1 (the sequential path) is
unchanged. Default --image-tile-mode to sequential.
0 commit comments