#include "ggml-metal-tuning.h"

#include <cstddef>
#include <cstring>
#include <iterator>

namespace ggml_metal_tuning {

int fa_vec_ne11_bucket(int64_t ne11) {
    for (int i = 0; i < (int) std::size(FA_VEC_NE11_BUCKETS); ++i) {
        if (ne11 < FA_VEC_NE11_BUCKETS[i]) {
            return i;
        }
    }
    return (int) std::size(FA_VEC_NE11_BUCKETS);
}

int fa_vec_ne01_bucket(int64_t ne01) {
    for (int i = 0; i < (int) std::size(FA_VEC_NE01_BUCKETS); ++i) {
        if (ne01 < FA_VEC_NE01_BUCKETS[i]) {
            return i;
        }
    }
    return (int) std::size(FA_VEC_NE01_BUCKETS);
}

int fa_vec_baseline_ne(int dk, int dv) {
    if (dk == 32 && dv == 32) {
        return 4;
    }
    if (dk == 64 && dv == 64) {
        return 2;
    }
    if (dk == 96 && dv == 96) {
        return 4;
    }
    if (dk == 96 && dv == 64) {
        return 4;
    }
    if (dk == 128 && dv == 128) {
        return 1;
    }
    if (dk == 192 && dv == 192) {
        return 2;
    }
    if (dk == 192 && dv == 128) {
        return 2;
    }
    if (dk == 256 && dv == 256) {
        return 1;
    }
    if (dk == 320 && dv == 256) {
        return 2;
    }
    if (dk == 512 && dv == 512) {
        return 1;
    }
    if (dk == 576 && dv == 512) {
        return 2;
    }
    return 4;  // template default
}

fa_vec_cfg_t fa_vec_baseline_cfg(int dk, int dv) {
    return { 1, (int8_t) fa_vec_baseline_ne(dk, dv) };
}

// Generated by `ggml-metal-tuning fa-vec`; do not hand-edit.
// Keyed by Apple GPU family, retagged from the per-SKU token the tuner emits, and pooled from
// the sweeps listed at the head of each segment. One row per kept bucket, plus
// per-(dtype,dk,dv) ne11-collapsed domain defaults (ne11_b = FA_VEC_NE11_DEFAULT,
// ne01_b = domain). To retune or add a device, see tools/tuning/README.md.
// See ggml-metal-tuning.h for the row/lookup semantics.
// ref: https://github.com/ggml-org/llama.cpp/pull/27824
//      https://github.com/ggml-org/llama.cpp/discussions/27668
constexpr fa_vec_entry_t fa_vec_tuned_table[] = {
    // Apple7 - M1, M1_ULTRA
    { { 7, GGML_TYPE_F16, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 64, 64, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 128, 128, 2, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 128, 128, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 128, 128, 2, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 128, 128, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_F16, 128, 128, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_F16, 192, 128, 1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 192, 128, 1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 192, 128, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 192, 128, 1, 3 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 192, 128, 1, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 320, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_F16, 320, 256, 1, 1 }, { 1, 2 } },
    { { 7, GGML_TYPE_F16, 320, 256, 1, 2 }, { 1, 2 } },
    { { 7, GGML_TYPE_F16, 320, 256, 1, 3 }, { 1, 2 } },
    { { 7, GGML_TYPE_F16, 320, 256, 1, 4 }, { 1, 2 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 1, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 3, 2 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q4_0, 32, 32, 3, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 64, 64, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 64, 64, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 64, 64, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 96, 96, 2, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 96, 96, 3, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 128, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 192, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 1, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 2, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 3, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q4_1, 32, 32, 3, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 64, 64, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 64, 64, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 96, 96, 2, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 96, 96, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, 1, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 192, 192, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 192, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 256, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 256, 256, 3, 2 }, { 1, 1 } },
    { { 7, GGML_TYPE_Q4_1, 320, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 512, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 512, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 576, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q4_1, 576, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 32, 32, -1, 1 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_0, 32, 32, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 32, 32, 1, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 32, 32, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 64, 64, -1, 1 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_0, 64, 64, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 64, 64, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 64, 64, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 96, 96, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 96, 96, 1, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, 1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, 1, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 128, 128, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, 1, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 192, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 192, 128, 2, 3 }, { 4, 2 } },
    { { 7, GGML_TYPE_Q5_0, 192, 128, 3, 3 }, { 4, 2 } },
    { { 7, GGML_TYPE_Q5_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 256, 256, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 320, 256, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, -1, 1 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, 1, 2 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, 1, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 64, 64, -1, 1 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_1, 64, 64, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 64, 64, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 64, 64, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, 1, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, 1, 4 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, 2, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_1, 96, 96, 3, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q5_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 128, 128, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 128, 128, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 128, 128, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 192, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 192, 1, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 192, 128, 2, 3 }, { 4, 2 } },
    { { 7, GGML_TYPE_Q5_1, 192, 128, 3, 3 }, { 4, 2 } },
    { { 7, GGML_TYPE_Q5_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 256, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 256, 256, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, 2, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 320, 256, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q5_1, 512, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 512, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 576, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q5_1, 576, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 1, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 7, GGML_TYPE_Q8_0, 32, 32, 3, 4 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, 1, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, 2, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, 2, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 64, 64, 3, 2 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 96, 96, 2, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 128, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 192, 128, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 256, 256, -1, 0 }, { 1, 2 } },
    { { 7, GGML_TYPE_Q8_0, 256, 256, -1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 1, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 1, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 2, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 2, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 3, 1 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 320, 256, 3, 3 }, { 2, 4 } },
    { { 7, GGML_TYPE_Q8_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 7, GGML_TYPE_Q8_0, 576, 512, -1, 1 }, { 1, 4 } },
    // Apple8 - M2, M2_MAX, M2_PRO
    { { 8, GGML_TYPE_F16, 64, 64, 1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 64, 64, 2, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 64, 64, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 64, 64, 1, 2 }, { 1, 2 } },
    { { 8, GGML_TYPE_F16, 64, 64, 3, 2 }, { 1, 2 } },
    { { 8, GGML_TYPE_F16, 64, 64, 3, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_F16, 64, 64, 3, 4 }, { 1, 2 } },
    { { 8, GGML_TYPE_F16, 128, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 128, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 128, 128, 3, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_F16, 192, 128, 1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 192, 128, 1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 192, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 320, 256, 2, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 320, 256, 2, 3 }, { 1, 4 } },
    { { 8, GGML_TYPE_F16, 320, 256, 2, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 2, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 3, 2 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 64, 64, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 64, 64, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 64, 64, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 96, 96, 1, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 96, 96, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 96, 96, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, 1, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 128, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 192, 128, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 320, 256, 3, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q4_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 1, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_1, 32, 32, 3, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 64, 64, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 64, 64, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 64, 64, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 64, 64, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 96, 96, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 96, 96, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q4_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 128, 128, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 128, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 128, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 1, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 2, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 2, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 192, 3, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 192, 128, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 3, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 1, 3 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 256, 256, 1, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 320, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 512, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 512, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 576, 512, 1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 576, 512, 1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 576, 512, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 576, 512, 1, 3 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q4_1, 576, 512, 1, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, 1, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, 2, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 64, 64, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_0, 64, 64, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 64, 64, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 64, 64, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 96, 96, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_0, 96, 96, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 128, 128, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, 2, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, 1, 2 }, { 1, 2 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, 1, 4 }, { 1, 2 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 192, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, 2, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 192, 128, 3, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, 1, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 256, 256, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 32, 32, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 32, 32, 1, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 64, 64, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_1, 64, 64, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 64, 64, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 64, 64, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 96, 96, -1, 1 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_1, 96, 96, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 96, 96, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 128, 128, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 192, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 192, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 192, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 192, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, -1, 1 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 1, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 192, 128, 3, 4 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q5_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 256, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 320, 256, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 512, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 512, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 576, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q5_1, 576, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, 2, 4 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, 3, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, 1, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, 2, 2 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, 3, 2 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q8_0, 64, 64, 3, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q8_0, 96, 96, 2, 3 }, { 4, 4 } },
    { { 8, GGML_TYPE_Q8_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 128, 128, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 192, 128, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 256, 256, -1, 0 }, { 1, 2 } },
    { { 8, GGML_TYPE_Q8_0, 256, 256, -1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 1, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 1, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 2, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 2, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 3, 1 }, { 2, 4 } },
    { { 8, GGML_TYPE_Q8_0, 320, 256, 3, 3 }, { 4, 2 } },
    { { 8, GGML_TYPE_Q8_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 8, GGML_TYPE_Q8_0, 576, 512, -1, 1 }, { 1, 4 } },
    // Apple9 - A18_PRO, M3_MAX, M3_PRO, M3_ULTRA, M4, M4_MAX, M4_PRO
    { { 9, GGML_TYPE_F16, 32, 32, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 32, 32, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 32, 32, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 32, 32, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 64, 64, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 64, 64, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 64, 64, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 64, 64, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 64, 64, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, 1, 3 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, 1, 4 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 96, 96, 2, 4 }, { 1, 4 } },
    { { 9, GGML_TYPE_F16, 128, 128, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_F16, 128, 128, 1, 1 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 128, 128, 1, 2 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 128, 128, 1, 4 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 128, 128, 2, 2 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 128, 128, 2, 4 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 192, 192, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_F16, 192, 192, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 192, 1, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 192, 1, 4 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 128, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_F16, 192, 128, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 128, 1, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 128, 1, 4 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 192, 128, 2, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 256, 256, 2, 0 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 256, 256, 3, 0 }, { 1, 2 } },
    { { 9, GGML_TYPE_F16, 256, 256, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_F16, 256, 256, 1, 2 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 256, 256, 1, 4 }, { 1, 1 } },
    { { 9, GGML_TYPE_F16, 320, 256, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q4_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 32, 32, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 32, 32, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 64, 64, 2, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_0, 64, 64, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_0, 64, 64, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_0, 96, 96, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 96, 96, 3, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 128, 128, 3, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 192, 1, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 192, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 128, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 128, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 192, 128, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 320, 256, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 320, 256, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 1, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 1, 3 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_0, 576, 512, 1, 4 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 32, 32, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 32, 32, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 32, 32, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_1, 32, 32, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_1, 64, 64, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q4_1, 96, 96, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 96, 96, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 96, 96, 3, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, 1, 2 }, { 1, 1 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, 1, 4 }, { 1, 1 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, 2, 2 }, { 1, 1 } },
    { { 9, GGML_TYPE_Q4_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, 1, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 192, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 192, 128, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 256, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 320, 256, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 320, 256, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 320, 256, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 320, 256, 3, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 1, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 1, 3 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q4_1, 576, 512, 1, 4 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, 1, 2 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, 1, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 64, 64, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 64, 64, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 64, 64, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 64, 64, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 96, 96, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 96, 96, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 96, 96, 1, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 1, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 1, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 2, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 2, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 128, 128, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 192, 192, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, 1, 4 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 256, 256, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 320, 256, 2, 3 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q5_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, 1, 2 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, 1, 3 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q5_0, 576, 512, 1, 4 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, 1, 2 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, 1, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 64, 64, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_1, 64, 64, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 64, 64, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 64, 64, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 96, 96, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_1, 96, 96, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 96, 96, 1, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 96, 96, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, -1, 1 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, 1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, 1, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 128, 128, 3, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 192, 192, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 192, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, -1, 1 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, 1, 4 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 256, 256, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 320, 256, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 320, 256, 1, 3 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q5_1, 320, 256, 3, 3 }, { 2, 2 } },
    { { 9, GGML_TYPE_Q5_1, 512, 512, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 512, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 576, 512, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 576, 512, 2, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 576, 512, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 576, 512, 2, 3 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q5_1, 576, 512, 2, 4 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 32, 32, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q8_0, 32, 32, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q8_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q8_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 64, 64, 3, 2 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q8_0, 64, 64, 3, 3 }, { 4, 4 } },
    { { 9, GGML_TYPE_Q8_0, 96, 96, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 96, 96, 3, 2 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 96, 96, 3, 4 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 128, 128, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 128, 128, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 192, 1, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 192, 2, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 192, 2, 3 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 128, 1, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 128, 2, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 192, 128, 3, 2 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 512, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, 2, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, 3, 0 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, 1, 1 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, 1, 3 }, { 1, 2 } },
    { { 9, GGML_TYPE_Q8_0, 576, 512, 1, 4 }, { 1, 2 } },
    // Apple10 - M5_MAX
    { { 10, GGML_TYPE_F16, 32, 32, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 32, 32, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 32, 32, 1, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 32, 32, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 32, 32, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 32, 32, 3, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 64, 64, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 64, 64, 3, 0 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 64, 64, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 64, 64, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 64, 64, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 64, 64, 3, 3 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 64, 64, 3, 4 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 96, 96, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 96, 96, 3, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, 3, 0 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 128, 128, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 128, 128, 1, 2 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, 1, 4 }, { 1, 1 } },
    { { 10, GGML_TYPE_F16, 128, 128, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 128, 128, 3, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 192, 192, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 192, 192, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 192, 192, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 192, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_F16, 192, 128, 1, 4 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 192, 128, 3, 2 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 256, 256, -1, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 256, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 256, 256, 1, 2 }, { 1, 1 } },
    { { 10, GGML_TYPE_F16, 256, 256, 1, 4 }, { 1, 1 } },
    { { 10, GGML_TYPE_F16, 320, 256, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 320, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 320, 256, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 320, 256, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 512, 512, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_F16, 512, 512, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 512, 512, 2, 3 }, { 4, 2 } },
    { { 10, GGML_TYPE_F16, 512, 512, 3, 3 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 512, 512, 3, 4 }, { 4, 1 } },
    { { 10, GGML_TYPE_F16, 576, 512, 2, 0 }, { 4, 4 } },
    { { 10, GGML_TYPE_F16, 576, 512, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_F16, 576, 512, 1, 1 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 576, 512, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 576, 512, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 576, 512, 2, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_F16, 576, 512, 2, 3 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, 1, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 32, 32, 3, 4 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 64, 64, 3, 4 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 1, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 96, 96, 3, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, 1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, 2, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 128, 128, 3, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, 2, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 192, 2, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 128, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 192, 128, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 1, 4 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 2, 3 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 2, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 3, 3 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 256, 256, 3, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_0, 320, 256, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 320, 256, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 320, 256, 2, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 320, 256, 3, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 2, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 2, 3 }, { 4, 1 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 3, 1 }, { 4, 1 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 3, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q4_0, 512, 512, 3, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 2, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 2, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 3, 1 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q4_0, 576, 512, 3, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 1, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 2, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 3, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 32, 32, 3, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, 3, 0 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 64, 64, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, 1, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, 2, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 96, 96, 3, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 1, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 2, 1 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 2, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 3, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 128, 128, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 1, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 1, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 192, 3, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q4_1, 192, 128, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, 3, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, 2, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, 2, 3 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 256, 256, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 2, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 2, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 320, 256, 3, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, -1, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 1, 3 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 2, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 3, 1 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 512, 512, 3, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q4_1, 576, 512, 2, 0 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q4_1, 576, 512, 1, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q4_1, 576, 512, 2, 1 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q4_1, 576, 512, 3, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q5_0, 32, 32, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 32, 32, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 32, 32, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 32, 32, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 32, 32, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 64, 64, 3, 2 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 96, 96, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 96, 96, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 96, 96, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 96, 96, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, 1, 0 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 128, 128, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, 1, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, 1, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, 2, 4 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 192, 3, 4 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 192, 128, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 1, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 1, 2 }, { 1, 1 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 2, 2 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 2, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 256, 256, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 2, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 320, 256, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 3, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 1, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 512, 512, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 2, 1 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 2, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 3, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_0, 576, 512, 3, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 32, 32, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 32, 32, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 32, 32, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 32, 32, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 64, 64, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 96, 96, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 96, 96, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 96, 96, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 96, 96, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 128, 128, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 3, 0 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 192, 3, 3 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, 2, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, -1, 1 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, 1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 192, 128, 3, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, 2, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, 1, 2 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, 2, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 256, 256, 3, 4 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 320, 256, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 320, 256, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 320, 256, -1, 1 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q5_1, 320, 256, 2, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 320, 256, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 2, 0 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 3, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 1, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 1, 4 }, { 1, 1 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 2, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q5_1, 512, 512, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 1, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 2, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 2, 3 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q5_1, 576, 512, 3, 3 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, 1, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 32, 32, 3, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 64, 64, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 64, 64, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 64, 64, 1, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 64, 64, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 96, 96, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 96, 96, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 96, 96, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 96, 96, 3, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 1, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 2, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 2, 4 }, { 2, 2 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 3, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 128, 128, 3, 2 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, 1, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, 2, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, 3, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 192, 3, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q8_0, 192, 128, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 128, -1, 1 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 192, 128, 1, 2 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q8_0, 192, 128, 3, 2 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 256, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 256, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 256, 256, 3, 3 }, { 2, 4 } },
    { { 10, GGML_TYPE_Q8_0, 320, 256, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 320, 256, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 2, 0 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 1, 3 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 2, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 2, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 2, 3 }, { 4, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 2, 4 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 3, 1 }, { 4, 1 } },
    { { 10, GGML_TYPE_Q8_0, 512, 512, 3, 2 }, { 4, 2 } },
    { { 10, GGML_TYPE_Q8_0, 576, 512, -1, 0 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 576, 512, -1, 1 }, { 1, 4 } },
    { { 10, GGML_TYPE_Q8_0, 576, 512, 1, 4 }, { 1, 2 } },
    { { 10, GGML_TYPE_Q8_0, 576, 512, 2, 1 }, { 4, 4 } },
};

static bool         g_override_set = false;
static fa_vec_cfg_t g_override_cfg = { 1, 4 };

void fa_vec_set_override(fa_vec_cfg_t cfg) {
    g_override_cfg = cfg;
    g_override_set = true;
}

void fa_vec_clear_override() {
    g_override_set = false;
}

static const fa_vec_cfg_t * find_cfg(const fa_vec_entry_t * tbl, size_t n, const fa_vec_key_t & k) {
    for (size_t i = 0; i < n; ++i) {
        if (memcmp(&tbl[i].key, &k, sizeof(k)) == 0) {
            return &tbl[i].cfg;
        }
    }
    return nullptr;
}

fa_vec_cfg_t fa_vec_pick(int gpu_family, int dtype, int dk, int dv, int64_t ne11, int64_t ne01) {
    if (g_override_set) {
        return g_override_cfg;
    }

    const fa_vec_cfg_t baseline = fa_vec_baseline_cfg(dk, dv);

    const int ne11_b = fa_vec_ne11_bucket(ne11);
    if (ne11_b == 0) {
        return baseline;  // short KV: attention is a small slice of the step, left to baseline
    }

    const int ne01_b = fa_vec_ne01_bucket(ne01);

    fa_vec_key_t k{};
    k.family = (int8_t) gpu_family;
    k.dtype  = (int8_t) dtype;
    k.dk     = (int16_t) dk;
    k.dv     = (int16_t) dv;
    k.ne11_b = (int8_t) ne11_b;
    k.ne01_b = (int8_t) ne01_b;

    // exact bucket, then the ne01 domain default (ne11 collapsed)
    if (auto * c = find_cfg(fa_vec_tuned_table, std::size(fa_vec_tuned_table), k)) {
        return *c;
    }
    k.ne11_b = FA_VEC_NE11_DEFAULT;
    k.ne01_b = (ne01_b == 0) ? FA_VEC_DOMAIN_DECODE : FA_VEC_DOMAIN_BATCH;
    if (auto * c = find_cfg(fa_vec_tuned_table, std::size(fa_vec_tuned_table), k)) {
        return *c;
    }

    return baseline;
}

}  // namespace ggml_metal_tuning
