Commit b1535f5f for whisper.cpp
commit b1535f5fb163f4443804888f7be980621226cb15
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Date: Thu Nov 5 06:08:19 2026 +0100
parakeet: use n_frame as ne[1] for rel_pos_scores
This commit updates the relative position score tensor view to use
n_frame instead of pos_window as it currently does.
The motivation for this is that after syncing with the latest ggml
running parakeet would cause the following assert to trigger and abort:
```console
parakeet_backend_init_gpu: device 0: CUDA0 (type: 2)
parakeet_backend_init_gpu: found GPU device 0: CUDA0 (type: 2, cnt: 0)
parakeet_backend_init_gpu: using CUDA0 backend
parakeet_init_state: enc_out state: 0.00 MB (meta) + 2.44 MB (data)
/whisper.cpp/ggml/src/ggml.c:1874:
GGML_ASSERT(view_src == NULL || view_size == 0 ||
view_size + view_offs <= ggml_nbytes(view_src)) failed
```
ggml Commit c20f573029cd208e79b4441c5fa66a1d13366fdd ("ggml: bound views
by the bytes their strides reach (llama/31584") changed the bounds check
on views. It now uses ggml_nbytes(view) instead of a contiguous-size
approximation. The tensor view was using ne[1]=pos_window=799 even though
only n_frame=400 elements are actually needed.
With this change all parakeet-full test pass successfully and assert is
not hit causing an abort.
diff --git a/src/parakeet.cpp b/src/parakeet.cpp
index ed663829..50dd657b 100644
--- a/src/parakeet.cpp
+++ b/src/parakeet.cpp
@@ -1855,7 +1855,7 @@ static struct ggml_cgraph * parakeet_build_graph_encode(parakeet_context & pctx,
size_t offset = rel_pos_scores->nb[0] * (center+1);
rel_pos_scores = ggml_view_3d(ctx0, rel_pos_scores,
- n_frame, pos_window, n_head_cur,
+ n_frame, n_frame, n_head_cur,
(pos_window) * 4,
rel_pos_scores->nb[2],
offset);