| 22386 | (uint32_t)q_rank, |
| 22387 | metal_graph_kv(g), |
| 22388 | metal_graph_kv_raw(g), |
| 22389 | layer->attn_kv_a_norm->abs_offset, |
| 22390 | DS4_N_HEAD_DIM, |
| 22391 | 1, |
| 22392 | DS4_N_HEAD_KV, |
| 22393 | DS4_N_HEAD_DIM, |
| 22394 | DS4_N_ROT, |
| 22395 | pos, |
| 22396 | compressed ? (uint32_t)DS4_ROPE_ORIG_CTX : 0, |
| 22397 | false, |
| 22398 | freq_base, |
| 22399 | freq_scale, |
| 22400 | ext_factor, |
| 22401 | attn_factor, |
| 22402 | DS4_ROPE_YARN_BETA_FAST, |
| 22403 | DS4_ROPE_YARN_BETA_SLOW, |
| 22404 | DS4_RMS_EPS) != 0; |
| 22405 | kv_rope_fused = ok; |
| 22406 | } else if (ok) { |
| 22407 | /* Triple fusion: q/kv norm + KV RoPE tail + FP8/raw store in one |
| 22408 | * dispatch; verbatim arithmetic (see metal/norm.metal). */ |
| 22409 | if (!metal_graph_tp_ablate("kv") && |
| 22410 | !kvnorm_dump && |
| 22411 | !metal_graph_use_reference_kv_decode() && |
no test coverage detected