MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / llm_build_kqv

Function llm_build_kqv

llama.cpp:4764–4850  ·  view source on GitHub ↗

if max_alibi_bias > 0 then apply ALiBi

Source from the content-addressed store, hash-verified

4762
4763// if max_alibi_bias > 0 then apply ALiBi
4764static struct ggml_tensor * llm_build_kqv(
4765 struct ggml_context * ctx,
4766 const llama_hparams & hparams,
4767 const llama_kv_cache & kv,
4768 struct ggml_tensor * wo,
4769 struct ggml_tensor * wo_b,
4770 struct ggml_tensor * q_cur,
4771 struct ggml_tensor * kq_scale,
4772 struct ggml_tensor * kq_mask,
4773 int64_t n_ctx,
4774 int32_t n_tokens,
4775 int32_t n_kv,
4776 float max_alibi_bias,
4777 const llm_build_cb & cb,
4778 int il) {
4779 const int64_t n_embd = hparams.n_embd;
4780 const int64_t n_head = hparams.n_head;
4781 const int64_t n_head_kv = hparams.n_head_kv;
4782 const int64_t n_embd_head = hparams.n_embd_head();
4783 const int64_t n_embd_gqa = hparams.n_embd_gqa();
4784
4785 struct ggml_tensor * q = ggml_permute(ctx, q_cur, 0, 2, 1, 3);
4786 cb(q, "q", il);
4787
4788 struct ggml_tensor * k =
4789 ggml_view_3d(ctx, kv.k,
4790 n_embd_head, n_kv, n_head_kv,
4791 ggml_element_size(kv.k)*n_embd_gqa,
4792 ggml_element_size(kv.k)*n_embd_head,
4793 ggml_element_size(kv.k)*n_embd_gqa*n_ctx*il);
4794 cb(k, "k", il);
4795 if (k_cpy != nullptr) {
4796 k->src[1] = k_cpy;
4797 }
4798
4799 struct ggml_tensor * kq = ggml_mul_mat(ctx, k, q);
4800 cb(kq, "kq", il);
4801
4802 kq = ggml_scale(ctx, kq, kq_scale);
4803 cb(kq, "kq_scaled", il);
4804
4805 if (max_alibi_bias > 0.0f) {
4806 // TODO: n_head or n_head_kv
4807 // TODO: K-shift is likely not working
4808 // TODO: change to ggml_add
4809 kq = ggml_alibi(ctx, kq, /*n_past*/ 0, n_head, max_alibi_bias);
4810 cb(kq, "kq_scaled_alibi", il);
4811 }
4812
4813 kq = ggml_add(ctx, kq, kq_mask);
4814 cb(kq, "kq_masked", il);
4815
4816 kq = ggml_soft_max(ctx, kq);
4817 cb(kq, "kq_soft_max", il);
4818
4819 // split cached v into n_head heads
4820 struct ggml_tensor * v =
4821 ggml_view_3d(ctx, kv.v,

Callers 12

build_llama_variantsMethod · 0.85
build_optMethod · 0.85
build_baichuanMethod · 0.85
build_falconMethod · 0.85
build_starcoderMethod · 0.85
build_persimmonMethod · 0.85
build_refactMethod · 0.85
build_bloomMethod · 0.85
build_mptMethod · 0.85
build_stablelmMethod · 0.85
build_graphMethod · 0.85
build_graphMethod · 0.85

Calls 12

cbFunction · 0.85
ggml_alibiFunction · 0.85
ggml_permuteFunction · 0.70
ggml_view_3dFunction · 0.70
ggml_element_sizeFunction · 0.70
ggml_mul_matFunction · 0.70
ggml_scaleFunction · 0.70
ggml_addFunction · 0.70
ggml_soft_maxFunction · 0.70
ggml_cont_2dFunction · 0.70
n_embd_headMethod · 0.45
n_embd_gqaMethod · 0.45

Tested by 2

build_graphMethod · 0.68
build_graphMethod · 0.68