Skip to content

Commit cfb0ae7

Browse files
committed
ggml : fix more imatrix nan cases
1 parent 19d3c82 commit cfb0ae7

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

ggml/src/ggml-quants.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ static float make_qx_quants(int n, int nmax, const float * restrict x, int8_t *
384384
float ax = fabsf(x[i]);
385385
if (ax > amax) { amax = ax; max = x[i]; }
386386
}
387-
if (amax < GROUP_MAX_EPS) { // all zero
387+
if (fabsf(amax) < GROUP_MAX_EPS) { // all zero
388388
for (int i = 0; i < n; ++i) {
389389
L[i] = 0;
390390
}
@@ -829,7 +829,7 @@ static float make_qp_quants(int n, int nmax, const float * restrict x, uint8_t *
829829
for (int i = 0; i < n; ++i) {
830830
max = MAX(max, x[i]);
831831
}
832-
if (!max) { // all zero
832+
if (fabsf(max) < GROUP_MAX_EPS) { // all zero
833833
for (int i = 0; i < n; ++i) { L[i] = 0; }
834834
return 0.f;
835835
}
@@ -3021,7 +3021,7 @@ static void quantize_row_iq2_xxs_impl(const float * restrict x, void * restrict
30213021
}
30223022
float max = xval[0];
30233023
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
3024-
if (max < GROUP_MAX_EPS) {
3024+
if (fabsf(max) < GROUP_MAX_EPS) {
30253025
scales[ib] = 0;
30263026
memset(L, 0, 32);
30273027
continue;
@@ -3197,7 +3197,7 @@ static void quantize_row_iq2_xs_impl(const float * restrict x, void * restrict v
31973197
}
31983198
float max = xval[0];
31993199
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
3200-
if (max < GROUP_MAX_EPS) {
3200+
if (fabsf(max) < GROUP_MAX_EPS) {
32013201
scales[ib] = 0;
32023202
memset(L, 0, 16);
32033203
continue;
@@ -3638,7 +3638,7 @@ static void quantize_row_iq3_xxs_impl(int grid_size, const float * restrict x, v
36383638
}
36393639
float max = xval[0];
36403640
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
3641-
if (max < GROUP_MAX_EPS_IQ3_XXS) {
3641+
if (fabsf(max) < GROUP_MAX_EPS_IQ3_XXS) {
36423642
scales[ib] = 0;
36433643
memset(L, 0, 32);
36443644
continue;
@@ -4808,7 +4808,7 @@ static void quantize_row_iq2_s_impl(const float * restrict x, void * restrict vy
48084808
}
48094809
float max = xval[0];
48104810
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
4811-
if (max < GROUP_MAX_EPS_IQ2_S) {
4811+
if (fabsf(max) < GROUP_MAX_EPS_IQ2_S) {
48124812
scales[ib] = 0;
48134813
continue;
48144814
}

0 commit comments

Comments
 (0)