summaryrefslogtreecommitdiff
path: root/ggml/src/ggml.c
diff options
context:
space:
mode:
authorKawrakow <iwankawrakow@gmail.com>2025-06-24 13:05:01 +0200
committerGitHub <noreply@github.com>2025-06-24 13:05:01 +0200
commit64f6c2dead0768049837ac6562c0c176fabc055e (patch)
tree238cc3bf6201d7089703fb2f339d827c7c24023c /ggml/src/ggml.c
parentddda4d9e64fa889389b784f28da6453f14137452 (diff)
Much faster prompt processing for k-quants (ARM_NEON) (#552)
* iq2_xxs 55.8 -> 167.5 t/s. iq2_xxs is at 93.7 t/s * iq2_xs 46.4 -> 166.6 t/s. iq2_xs_r4 is at 72.3 t/s. * iq2_s 42.8 t/s -> 166.8 t/s. iq2_s_r4 is at 71.1 t/s. * iq3_xxs 51.8 t/s -> 165.6 t/s. iq3_xxs_r4 is at 84.6 t/s. * iq3_s 46.0 t/s -> 162.0 t/s. iq3_s_r4 is at 79.4 t/s * q2_k 85.7 t/s -> 168.1 t/s. q2_k_r4 is at 111.2 t/s. * q3_K 45.7 t/s -> 170.8 t/s. q3_k_r4 is at 110.3 t/s. * q6_k 47.7 t/s -> 124 t/s. q6_k_r4 is at 112.7 t/s. * q4_k 58.2 t/s -> 114.8 t/s. iq4_k_r4 is at 130.9 t/s. As I had to add a new implementation for q8_1-quantized activations, TG became slightly faster too (25.1 -> 25.9 t/s). * q5_k 54.9 -> 114.9 t/s. q5_k_r4 is at 116.2 t/s. * iq4_xs 71.2 -> 167.8 t/s. iq4_xs_r4 is at 138.6 t/s. --------- Co-authored-by: Iwan Kawrakow <iwan.kawrakow@gmail.com>
Diffstat (limited to 'ggml/src/ggml.c')
-rw-r--r--ggml/src/ggml.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c
index cc056f89..d06f6553 100644
--- a/ggml/src/ggml.c
+++ b/ggml/src/ggml.c
@@ -979,7 +979,7 @@ static const ggml_type_traits_t type_traits[GGML_TYPE_COUNT] = {
#ifdef __AVX2__
.vec_dot_type = GGML_TYPE_Q8_2_X4,
#else
- .vec_dot_type = GGML_TYPE_Q8_K,
+ .vec_dot_type = GGML_TYPE_Q8_1_X4,
#endif
.nrows = 1,
.row_meta_size = 0,
@@ -1009,7 +1009,7 @@ static const ggml_type_traits_t type_traits[GGML_TYPE_COUNT] = {
#ifdef __AVX2__
.vec_dot_type = GGML_TYPE_Q8_2_X4,
#else
- .vec_dot_type = GGML_TYPE_Q8_K,
+ .vec_dot_type = GGML_TYPE_Q8_1_X4,
#endif
.nrows = 1,
.row_meta_size = 0,
@@ -1039,7 +1039,7 @@ static const ggml_type_traits_t type_traits[GGML_TYPE_COUNT] = {
#ifdef __AVX2__
.vec_dot_type = GGML_TYPE_Q8_2_X4,
#else
- .vec_dot_type = GGML_TYPE_Q8_K,
+ .vec_dot_type = GGML_TYPE_Q8_0_X4,
#endif
// .vec_dot_type = GGML_TYPE_Q8_K,
.nrows = 1,