mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-11-11 11:26:34 +00:00
perf: avoid redundant MOSS QKV and value layout copies (#2209)
Co-authored-by: leejet <leejet714@gmail.com>
This commit is contained in:
1 parent
2a5f81095d
commit
e6370bf093
2 files changed
+10
-7
No files matched your search
@@ -124,7 +124,8 @@ namespace MOSSImage {
|
||||
y = ggml_add(c, ggml_add(c, y, ggml_mul(c, y, part(1))), part(0));
|
||||
auto qkv = linear("proj.qkv", y);
|
||||
auto split = [&](int i) {
|
||||
return ggml_reshape_4d(c, ggml_ext_slice(c, qkv, 0, i * config.dim, (i + 1) * config.dim), config.head_dim, config.dim / config.head_dim, x->ne[1], x->ne[2]);
|
||||
return ggml_view_4d(c, qkv, config.head_dim, config.dim / config.head_dim, x->ne[1], x->ne[2],
|
||||
config.head_dim * qkv->nb[0], qkv->nb[1], qkv->nb[2], i * config.dim * qkv->nb[0]);
|
||||
};
|
||||
auto q = norm("q_norm", split(0));
|
||||
auto k = norm("k_norm", split(1));
|
||||
|
||||
Reference in new issue
Block a user