From 067f41bdf067d7337dd3bc9a371ea3909bac336a Mon Sep 17 00:00:00 2001 From: Marvin Date: Sat, 5 Sep 2026 18:19:49 -0300 Subject: [PATCH] Silence IQK merge build warnings - Guard GGML_RESTRICT redefine in iqk_quantize.h - Declare iq1_bn quantize helpers in iqk_quantize.h - Handle IQK repacked types in clamp abort switch (ops.cpp) Assisted-by: opencode (Muse Spark) --- turboquant/ggml/src/ggml-cpu/ops.cpp | 57 ++++++++++++++++++++++++++ turboquant/ggml/src/iqk/iqk_quantize.h | 11 ++++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/turboquant/ggml/src/ggml-cpu/ops.cpp b/turboquant/ggml/src/ggml-cpu/ops.cpp index 19911ae..fe821a0 100644 --- a/turboquant/ggml/src/ggml-cpu/ops.cpp +++ b/turboquant/ggml/src/ggml-cpu/ops.cpp @@ -5838,6 +5838,63 @@ void ggml_compute_forward_clamp( case GGML_TYPE_I32: case GGML_TYPE_I64: case GGML_TYPE_F64: + case GGML_TYPE_Q6_0: + case GGML_TYPE_Q8_0_X4: + case GGML_TYPE_Q8_1_X4: + case GGML_TYPE_Q8_2_X4: + case GGML_TYPE_Q4_0_R8: + case GGML_TYPE_Q5_0_R4: + case GGML_TYPE_Q8_0_R8: + case GGML_TYPE_Q2_K_R4: + case GGML_TYPE_Q3_K_R4: + case GGML_TYPE_Q4_K_R4: + case GGML_TYPE_Q5_K_R4: + case GGML_TYPE_Q6_K_R4: + case GGML_TYPE_Q6_0_R4: + case GGML_TYPE_IQ2_XXS_R4: + case GGML_TYPE_IQ2_XS_R4: + case GGML_TYPE_IQ3_XXS_R4: + case GGML_TYPE_IQ1_S_R4: + case GGML_TYPE_IQ4_NL_R4: + case GGML_TYPE_IQ3_S_R4: + case GGML_TYPE_IQ2_S_R4: + case GGML_TYPE_IQ4_XS_R8: + case GGML_TYPE_IQ1_M_R4: + case GGML_TYPE_BF16_R16: + case GGML_TYPE_IQ2_BN_R4: + case GGML_TYPE_IQ2_K_R4: + case GGML_TYPE_IQ3_K_R4: + case GGML_TYPE_IQ4_K_R4: + case GGML_TYPE_IQ5_K_R4: + case GGML_TYPE_IQ4_KS_R4: + case GGML_TYPE_IQ5_KS_R4: + case GGML_TYPE_MXFP4_R8: + case GGML_TYPE_Q8_K_R16: + case GGML_TYPE_Q8_KV_R8: + case GGML_TYPE_Q8_K_R8: + case GGML_TYPE_Q8_K64: + case GGML_TYPE_Q8_K128: + case GGML_TYPE_Q8_K32: + case GGML_TYPE_Q8_K16: + case GGML_TYPE_Q8_KV: + case GGML_TYPE_IQ1_BN: + case GGML_TYPE_IQ2_BN: + case GGML_TYPE_IQ2_K: + case GGML_TYPE_IQ3_K: + case GGML_TYPE_IQ4_K: + case GGML_TYPE_IQ5_K: + case GGML_TYPE_IQ6_K: + case GGML_TYPE_IQ4_KS: + case GGML_TYPE_IQ2_KS: + case GGML_TYPE_IQ4_KSS: + case GGML_TYPE_IQ5_KS: + case GGML_TYPE_IQ2_KT: + case GGML_TYPE_IQ3_KT: + case GGML_TYPE_IQ4_KT: + case GGML_TYPE_IQ3_KS: + case GGML_TYPE_IQ2_KL: + case GGML_TYPE_IQ1_KT: + case GGML_TYPE_Q8_KR8: case GGML_TYPE_COUNT: { GGML_ABORT("fatal error"); diff --git a/turboquant/ggml/src/iqk/iqk_quantize.h b/turboquant/ggml/src/iqk/iqk_quantize.h index 0c723a3..fb6cece 100644 --- a/turboquant/ggml/src/iqk/iqk_quantize.h +++ b/turboquant/ggml/src/iqk/iqk_quantize.h @@ -13,11 +13,15 @@ #include "ggml-common.h" #ifdef __cplusplus +#ifndef GGML_RESTRICT #define GGML_RESTRICT +#endif extern "C" { #else +#ifndef GGML_RESTRICT #define GGML_RESTRICT restrict #endif +#endif struct quantize_user_data; @@ -154,7 +158,12 @@ void dequantize_row_iq4_xs_r8(const block_iq4_xs_r8 * GGML_RESTRICT x, float * void vec_dot_iq4_xs_r8_q8_k(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void quantize_row_iq2_bn_ref (const float * GGML_RESTRICT x, block_iq2_bn * GGML_RESTRICT y, int64_t k); -void quantize_row_iq2_bn (const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); + +void quantize_row_iq1_bn_ref(const float * GGML_RESTRICT x, block_iq1_bn * GGML_RESTRICT y, int64_t k); +void quantize_row_iq1_bn(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); +void dequantize_row_iq1_bn(const block_iq1_bn * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); +size_t quantize_iq1_bn(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrows, int64_t n_per_row, const float * imatrix, const struct quantize_user_data * user_data); +void ggml_vec_dot_iq1_bn_q8_K64(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc);void quantize_row_iq2_bn (const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); void dequantize_row_iq2_bn (const block_iq2_bn * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); size_t quantize_iq2_bn (const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrows, int64_t n_per_row, const float * imatrix, const struct quantize_user_data * use_data); void vec_dot_iq2_bn_q8_K64(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc);