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

Method build_graph_shift

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

Source from the content-addressed store, hash-verified

1596}
1597
1598ggml_cgraph * llama_kv_cache::build_graph_shift(llm_graph_result * res, llama_context * lctx) const {
1599 auto * ctx = res->get_ctx();
1600 auto * gf = res->get_gf();
1601
1602 const auto & n_embd_head_k = hparams.n_embd_head_k;
1603 //const auto & n_embd_head_v = hparams.n_embd_head_v;
1604
1605 const auto & n_rot = hparams.n_rot;
1606
1607 const auto n_embd_nope = hparams.n_lora_kv > 0 ? n_embd_head_k - n_rot : 0;
1608
1609 auto inp = std::make_unique<llm_graph_input_k_shift>(this);
1610
1611 inp->k_shift = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, (int64_t) get_size()*n_stream);
1612 ggml_set_input(inp->k_shift);
1613
1614 const auto & cparams = lctx->get_cparams();
1615
1616 for (const auto & layer : layers) {
1617 const uint32_t il = layer.il;
1618
1619 const int64_t n_head_kv = hparams.n_head_kv(il);
1620 const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(il);
1621
1622 const float freq_base_l = model.get_rope_freq_base (cparams, il);
1623 const float freq_scale_l = model.get_rope_freq_scale(cparams, il);
1624
1625 ggml_tensor * rope_factors = model.get_rope_factors(cparams, il);
1626
1627 ggml_tensor * k =
1628 ggml_view_3d(ctx, layer.k,
1629 n_rot, n_head_kv, get_size()*n_stream,
1630 ggml_row_size(layer.k->type, n_embd_head_k),
1631 ggml_row_size(layer.k->type, n_embd_k_gqa),
1632 ggml_row_size(layer.k->type, n_embd_nope));
1633
1634 ggml_tensor * cur = build_rope_shift(cparams, ctx, k, inp->k_shift, rope_factors, freq_base_l, freq_scale_l);
1635
1636 ggml_build_forward_expand(gf, cur);
1637 }
1638
1639 res->add_input(std::move(inp));
1640
1641 return gf;
1642}
1643
1644void llama_kv_cache::state_write(llama_io_write_i & io, llama_seq_id seq_id, llama_state_seq_flags flags) const {
1645 GGML_UNUSED(flags);

Callers

nothing calls this directly

Calls 13

ggml_new_tensor_1dFunction · 0.85
ggml_set_inputFunction · 0.85
ggml_view_3dFunction · 0.85
ggml_row_sizeFunction · 0.85
get_ctxMethod · 0.80
get_gfMethod · 0.80
n_head_kvMethod · 0.80
n_embd_k_gqaMethod · 0.80
get_rope_freq_baseMethod · 0.80
get_rope_freq_scaleMethod · 0.80
get_rope_factorsMethod · 0.80

Tested by

no test coverage detected