ggml : fix more imatrix nan cases
This commit is contained in:
parent
19d3c8293b
commit
cfb0ae7e4c
1 changed files with 6 additions and 6 deletions
|
@ -384,7 +384,7 @@ static float make_qx_quants(int n, int nmax, const float * restrict x, int8_t *
|
||||||
float ax = fabsf(x[i]);
|
float ax = fabsf(x[i]);
|
||||||
if (ax > amax) { amax = ax; max = x[i]; }
|
if (ax > amax) { amax = ax; max = x[i]; }
|
||||||
}
|
}
|
||||||
if (amax < GROUP_MAX_EPS) { // all zero
|
if (fabsf(amax) < GROUP_MAX_EPS) { // all zero
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
L[i] = 0;
|
L[i] = 0;
|
||||||
}
|
}
|
||||||
|
@ -829,7 +829,7 @@ static float make_qp_quants(int n, int nmax, const float * restrict x, uint8_t *
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
max = MAX(max, x[i]);
|
max = MAX(max, x[i]);
|
||||||
}
|
}
|
||||||
if (!max) { // all zero
|
if (fabsf(max) < GROUP_MAX_EPS) { // all zero
|
||||||
for (int i = 0; i < n; ++i) { L[i] = 0; }
|
for (int i = 0; i < n; ++i) { L[i] = 0; }
|
||||||
return 0.f;
|
return 0.f;
|
||||||
}
|
}
|
||||||
|
@ -3021,7 +3021,7 @@ static void quantize_row_iq2_xxs_impl(const float * restrict x, void * restrict
|
||||||
}
|
}
|
||||||
float max = xval[0];
|
float max = xval[0];
|
||||||
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
|
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
|
||||||
if (max < GROUP_MAX_EPS) {
|
if (fabsf(max) < GROUP_MAX_EPS) {
|
||||||
scales[ib] = 0;
|
scales[ib] = 0;
|
||||||
memset(L, 0, 32);
|
memset(L, 0, 32);
|
||||||
continue;
|
continue;
|
||||||
|
@ -3197,7 +3197,7 @@ static void quantize_row_iq2_xs_impl(const float * restrict x, void * restrict v
|
||||||
}
|
}
|
||||||
float max = xval[0];
|
float max = xval[0];
|
||||||
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
|
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
|
||||||
if (max < GROUP_MAX_EPS) {
|
if (fabsf(max) < GROUP_MAX_EPS) {
|
||||||
scales[ib] = 0;
|
scales[ib] = 0;
|
||||||
memset(L, 0, 16);
|
memset(L, 0, 16);
|
||||||
continue;
|
continue;
|
||||||
|
@ -3638,7 +3638,7 @@ static void quantize_row_iq3_xxs_impl(int grid_size, const float * restrict x, v
|
||||||
}
|
}
|
||||||
float max = xval[0];
|
float max = xval[0];
|
||||||
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
|
for (int i = 1; i < 32; ++i) max = MAX(max, xval[i]);
|
||||||
if (max < GROUP_MAX_EPS_IQ3_XXS) {
|
if (fabsf(max) < GROUP_MAX_EPS_IQ3_XXS) {
|
||||||
scales[ib] = 0;
|
scales[ib] = 0;
|
||||||
memset(L, 0, 32);
|
memset(L, 0, 32);
|
||||||
continue;
|
continue;
|
||||||
|
@ -4808,7 +4808,7 @@ static void quantize_row_iq2_s_impl(const float * restrict x, void * restrict vy
|
||||||
}
|
}
|
||||||
float max = xval[0];
|
float max = xval[0];
|
||||||
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
|
for (int i = 1; i < 16; ++i) max = MAX(max, xval[i]);
|
||||||
if (max < GROUP_MAX_EPS_IQ2_S) {
|
if (fabsf(max) < GROUP_MAX_EPS_IQ2_S) {
|
||||||
scales[ib] = 0;
|
scales[ib] = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue