From d69344f8ea72c6fe6ec16300b939586fa9633e2e Mon Sep 17 00:00:00 2001 From: Kawrakow Date: Tue, 17 Dec 2024 07:51:11 +0100 Subject: IQ3_K_R4 (#145) * iq3_k_r4 WIP * iq3_k_r4: Zen4 * iq3_k_r4: AVX2 * iq3_k_r4: NEON * iq3_k_r4: faster matrix x vector multiplication on NEON --------- Co-authored-by: Iwan Kawrakow --- ggml/src/ggml-common.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ggml/src/ggml-common.h') diff --git a/ggml/src/ggml-common.h b/ggml/src/ggml-common.h index d77ba12c..ca56704c 100644 --- a/ggml/src/ggml-common.h +++ b/ggml/src/ggml-common.h @@ -538,6 +538,16 @@ typedef struct { } block_iq3_k; static_assert(sizeof(block_iq3_k) == sizeof(ggml_half) + 2*sizeof(uint16_t) + QK_K/32 + QK_K/4 + QK_K/8, "wrong iq3_k block size/padding"); +typedef struct { + ggml_half d[4]; + uint8_t extra[8]; + uint8_t scales_h[QK_K/32]; + uint8_t scales_l[QK_K/8]; + uint8_t qs[QK_K]; + uint8_t qh[QK_K/2]; +} block_iq3_k_r4; +static_assert(sizeof(block_iq3_k_r4) == 4*sizeof(block_iq3_k), "wrong iq3_k_r4 block size/padding"); + typedef struct { ggml_half d; uint16_t extra; -- cgit v1.2.3