MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / get_v

Method get_v

subprojects/llama.cpp/src/llama-kv-cache.cpp:1036–1066  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1034}
1035
1036ggml_tensor * llama_kv_cache::get_v(ggml_context * ctx, int32_t il, uint32_t n_kv, const slot_info & sinfo) const {
1037 const int32_t ikv = map_layer_ids.at(il);
1038
1039 auto * v = layers[ikv].v;
1040
1041 const uint64_t kv_size = get_size();
1042 const uint64_t n_embd_v_gqa = v->ne[0];
1043
1044 // [TAG_V_CACHE_VARIABLE]
1045 assert(n_embd_v_gqa >= hparams.n_embd_v_gqa(il));
1046
1047 const uint32_t ns = sinfo.s1 - sinfo.s0 + 1;
1048
1049 if (!v_trans) {
1050 // note: v->nb[1] <= v->nb[2]
1051 return ggml_view_4d(ctx, v,
1052 hparams.n_embd_head_v, hparams.n_head_kv(il), n_kv, ns,
1053 ggml_row_size(v->type, hparams.n_embd_head_v), // v->nb[1]
1054 ggml_row_size(v->type, n_embd_v_gqa), // v->nb[2]
1055 ggml_row_size(v->type, n_embd_v_gqa*kv_size), // v->nb[3]
1056 ggml_row_size(v->type, n_embd_v_gqa*kv_size)*sinfo.s0);
1057 }
1058
1059 // note: v->nb[1] > v->nb[2]
1060 return ggml_view_4d(ctx, v,
1061 n_kv, hparams.n_head_kv(il), hparams.n_embd_head_v, ns,
1062 ggml_row_size(v->type, kv_size*hparams.n_embd_head_v), // v->nb[1]
1063 ggml_row_size(v->type, kv_size), // v->nb[2]
1064 ggml_row_size(v->type, kv_size*n_embd_v_gqa), // v->nb[3]
1065 ggml_row_size(v->type, kv_size*n_embd_v_gqa)*sinfo.s0);
1066}
1067
1068ggml_tensor * llama_kv_cache::cpy_k(ggml_context * ctx, ggml_tensor * k_cur, ggml_tensor * k_idxs, int32_t il, const slot_info & sinfo) const {
1069 GGML_UNUSED(sinfo);

Callers 1

build_attnMethod · 0.80

Calls 5

ggml_view_4dFunction · 0.85
ggml_row_sizeFunction · 0.85
n_embd_v_gqaMethod · 0.80
n_head_kvMethod · 0.80
atMethod · 0.65

Tested by

no test coverage detected