metal : optimize pad

This commit is contained in:
Georgi Gerganov
2026-05-19 18:40:49 +03:00
parent d14ce3dab4
commit aa27b85ecf
3 changed files with 15 additions and 10 deletions

View File

@@ -562,13 +562,14 @@ ggml_tensor * llm_build_delta_net_base::build_recurrent_attn(
}
const int64_t D = S_v * S_v * H_v;
const int64_t K = (int64_t) cparams.n_rs_seq + 1;
const int64_t K = cparams.n_rs_seq + 1;
// TODO: remove pad + simplify
ggml_tensor * state_in_3d = ggml_reshape_3d(ctx0, s, D, 1, n_seqs);
ggml_tensor * state_3d = ggml_pad(ctx0, state_in_3d, 0, K - 1, 0, 0);
ggml_tensor * s_4d = ggml_reshape_4d(ctx0, s, S_v, S_v*H_v, 1, n_seqs);
ggml_tensor * s_4d_pad = ggml_pad (ctx0, s_4d, 0, 0, K - 1, 0);
ggml_tensor * s_3d = ggml_reshape_3d(ctx0, s_4d_pad, D, K, n_seqs);
ggml_tensor * gdn_out = ggml_gated_delta_net(ctx0, q, k, v, g, b, state_3d);
ggml_tensor * gdn_out = ggml_gated_delta_net(ctx0, q, k, v, g, b, s_3d);
if (n_seq_tokens > 1) {
cb(gdn_out, LLAMA_TENSOR_NAME_FGDN_CH, il);
} else {