Skip to content

Commit 20ea966

Browse files
committed
Fix ggml_vec_mad_q4_1 too
1 parent 58175e3 commit 20ea966

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

ggml.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1894,16 +1894,17 @@ inline static void ggml_vec_mad_q4_1(const int n, float * restrict y, void * res
18941894
assert(n % QK == 0);
18951895

18961896
const int nb = n / QK;
1897+
const size_t bs = 2*sizeof(float) + QK/2;
18971898

1898-
const float * restrict pm = (const float *) (x);
1899-
const float * restrict pd = (const float *) (pm + nb);
1900-
const uint8_t * restrict pb = (const uint8_t *) (pd + nb);
1899+
const uint8_t * restrict pd = ((const uint8_t *)x + 0*bs);
1900+
const uint8_t * restrict pm = ((const uint8_t *)x + 0*bs + sizeof(float));
1901+
const uint8_t * restrict pb = ((const uint8_t *)x + 0*bs + 2*sizeof(float));
19011902

19021903
for (int i = 0; i < nb; i++) {
1903-
const float m = pm[i];
1904-
const float d = pd[i];
1904+
const float d = *(const float *) (pd + i*bs);
1905+
const float m = *(const float *) (pm + i*bs);
19051906

1906-
const uint8_t * restrict pp = pb + i*QK/2;
1907+
const uint8_t * restrict pp = pb + i*bs;
19071908

19081909
for (int l = 0; l < QK; l += 2) {
19091910
const uint8_t vi = pp[l/2];

0 commit comments

Comments
 (0)