| 8524 | if (w->type != DS4_TENSOR_Q8_K) ds4_die("expected a Q8_K expert tensor"); |
| 8525 | if (n_expert < 1 || (uint32_t)n_expert > DS4_N_EXPERT_USED) ds4_die("unexpected routed expert count"); |
| 8526 | |
| 8527 | uint64_t in_dim0 = 0; |
| 8528 | uint64_t out_dim0 = 0; |
| 8529 | matvec_q8_k_accum_ctx ctx = { |
| 8530 | .out = out, |
| 8531 | .n_expert = n_expert, |
| 8532 | }; |
| 8533 | |
| 8534 | for (int i = 0; i < n_expert; i++) { |
| 8535 | uint64_t in_dim, out_dim; |
| 8536 | ctx.base[i] = tensor_expert_bytes(m, w, (uint32_t)selected[i], |
| 8537 | &in_dim, &out_dim, &ctx.row_bytes[i]); |
| 8538 | if (i == 0) { |
| 8539 | in_dim0 = in_dim; |
| 8540 | out_dim0 = out_dim; |
| 8541 | } else if (in_dim != in_dim0 || out_dim != out_dim0) { |
no outgoing calls
no test coverage detected