summaryrefslogtreecommitdiff
path: root/ggml/src/ggml-common.h
diff options
context:
space:
mode:
authorKawrakow <iwankawrakow@gmail.com>2024-12-17 07:51:11 +0100
committerGitHub <noreply@github.com>2024-12-17 07:51:11 +0100
commitd69344f8ea72c6fe6ec16300b939586fa9633e2e (patch)
treeb8c0efb7322169372543b020360bf0e27549fba5 /ggml/src/ggml-common.h
parent1714e46f137318152370beee16af92991042d7b4 (diff)
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 <iwan.kawrakow@gmail.com>
Diffstat (limited to 'ggml/src/ggml-common.h')
-rw-r--r--ggml/src/ggml-common.h10
1 files changed, 10 insertions, 0 deletions
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
@@ -539,6 +539,16 @@ typedef struct {
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;
uint8_t scales_h[QK_K/64];