abort on unknown KV type, single-source fa_vec_legal_ne

This commit is contained in:
forforever73
2026-08-02 12:02:07 +08:00
committed by Georgi Gerganov
parent ea337d0cda
commit f801d5db31
5 changed files with 23 additions and 17 deletions
+3 -1
View File
@@ -10578,7 +10578,8 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_from_file(const c
using set_fa_vec_override_t = void (*)(int, int);
using clear_fa_vec_override_t = void (*)(void);
// legal NE for a (dk,dv): NL = 32/NE, require (dk/4)%NL==0 && (dv/4)%NL==0
// legal NE for a (dk,dv): NL = 32/NE, require (dk/4)%NL==0 && (dv/4)%NL==0.
// keep in sync with ggml_metal_tuning::fa_vec_legal_ne in ggml-metal-tuning.h (used by the tool)
static std::vector<int> fa_vec_legal_ne(int dk, int dv) {
std::vector<int> r;
for (int ne : {1, 2, 4}) {
@@ -10595,6 +10596,7 @@ static std::vector<int> fa_vec_legal_ne(int dk, int dv) {
// per test case in the backend-agnostic case list. Covers padded rows (ne01 % Q != 0),
// per-qq sinks, kvpad, the nsg-dependent shmem offsets / parallel-reduce stride
// (ne11 -> nsg 1/2/4) and the quantized dequant-once path.
// single-threaded; g_override_set is backend-global. called only after all parallel workers have joined.
static bool run_fa_vec_slice(ggml_backend_t backend, ggml_backend_t backend_cpu) {
auto * reg = ggml_backend_dev_backend_reg(ggml_backend_get_device(backend));