| 12558 | } |
| 12559 | |
| 12560 | static void ggml_compute_forward_flash_attn( |
| 12561 | const struct ggml_compute_params * params, |
| 12562 | const struct ggml_tensor * q, |
| 12563 | const struct ggml_tensor * k, |
| 12564 | const struct ggml_tensor * v, |
| 12565 | const bool masked, |
| 12566 | struct ggml_tensor * dst) { |
| 12567 | switch (q->type) { |
| 12568 | case GGML_TYPE_F16: |
| 12569 | { |
| 12570 | ggml_compute_forward_flash_attn_f16(params, q, k, v, masked, dst); |
| 12571 | } break; |
| 12572 | case GGML_TYPE_F32: |
| 12573 | { |
| 12574 | ggml_compute_forward_flash_attn_f32(params, q, k, v, masked, dst); |
| 12575 | } break; |
| 12576 | default: |
| 12577 | { |
| 12578 | GGML_ASSERT(false); |
| 12579 | } break; |
| 12580 | } |
| 12581 | } |
| 12582 | |
| 12583 | // ggml_compute_forward_flash_ff |
| 12584 |
no test coverage detected