summaryrefslogtreecommitdiff
path: root/ggml/src/ggml-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'ggml/src/ggml-common.h')
-rw-r--r--ggml/src/ggml-common.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/ggml/src/ggml-common.h b/ggml/src/ggml-common.h
index 2af3323d..fb87a602 100644
--- a/ggml/src/ggml-common.h
+++ b/ggml/src/ggml-common.h
@@ -182,6 +182,13 @@ typedef struct {
} block_q5_0;
static_assert(sizeof(block_q5_0) == sizeof(ggml_half) + sizeof(uint32_t) + QK5_0 / 2, "wrong q5_0 block size/padding");
+typedef struct {
+ ggml_half d[4]; // delta
+ uint8_t qh[QK5_0/2]; // 5-th bit of quants
+ uint8_t qs[QK5_0*2]; // nibbles / quants
+} block_q5_0_r4;
+static_assert(sizeof(block_q5_0_r4) == 4*sizeof(ggml_half) + QK5_0*2 + QK5_0/2, "wrong q5_0_r4 block size/padding");
+
#define QK5_1 32
typedef struct {
GGML_SCALE_TYPE1(m, dm);
@@ -198,6 +205,13 @@ typedef struct {
} block_q6_0;
static_assert(sizeof(block_q6_0) == sizeof(ggml_half) + QK6_0/2 + QK6_0/4, "wrong q6_0 block size/padding");
+typedef struct {
+ ggml_half d[4]; // delta
+ uint8_t qh[QK6_0]; // 5+6-th bit of quants
+ uint8_t qs[QK6_0*2]; // nibbles / quants
+} block_q6_0_r4;
+static_assert(sizeof(block_q6_0_r4) == 4*sizeof(ggml_half) + QK6_0*2 + QK6_0, "wrong q6_0_r4 block size/padding");
+
#define QK8_0 32
typedef struct {
ggml_half d; // delta