diff options
author | Kawrakow <iwankawrakow@gmail.com> | 2024-12-17 10:18:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-17 10:18:33 +0100 |
commit | 4ade4c568c331acad22537f7b9519c740c7a06d0 (patch) | |
tree | 4f80795dd006c19c9e9e418f4813628dcf72decd /ggml/src/ggml-common.h | |
parent | d69344f8ea72c6fe6ec16300b939586fa9633e2e (diff) |
IQ2_K_R4 (#146)
* iq2_k_r4: Zen4
* iq2_k_r4: NEON
* iq2_k_r4: better 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.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ggml/src/ggml-common.h b/ggml/src/ggml-common.h index ca56704c..03cc3460 100644 --- a/ggml/src/ggml-common.h +++ b/ggml/src/ggml-common.h @@ -522,6 +522,14 @@ typedef struct { static_assert(sizeof(block_iq2_k) == sizeof(ggml_half) + sizeof(uint16_t) + QK_K/32 + QK_K/4, "wrong iq2_k block size/padding"); typedef struct { + ggml_half d[4]; + uint8_t extra[8]; + uint8_t scales[QK_K/8]; + uint8_t qs[QK_K]; +} block_iq2_k_r4; +static_assert(sizeof(block_iq2_k_r4) == 4*sizeof(block_iq2_k), "wrong iq2_k_r4 block size/padding"); + +typedef struct { uint16_t extra; uint8_t scales[QK_K/64]; uint8_t qs[QK_K/4]; |