mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-10-28 08:31:25 +00:00
ggml-quants : rename best_mad to best_error (ggml/1283)
This commit renames the variable `best_mad` to `best_error` in the `make_qkx2_quants` function. The motivation for this is that the name `best_mad` can be somewhat confusing if mean absolute deviation (MAD) is not in use.
This commit is contained in:
committed by
Georgi Gerganov
parent
79b33b2317
commit
497be7c01d
@@ -568,14 +568,14 @@ static float make_qkx2_quants(int n, int nmax, const float * GGML_RESTRICT x, co
|
|||||||
}
|
}
|
||||||
float iscale = nmax/(max - min);
|
float iscale = nmax/(max - min);
|
||||||
float scale = 1/iscale;
|
float scale = 1/iscale;
|
||||||
float best_mad = 0;
|
float best_error = 0;
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
int l = nearest_int(iscale*(x[i] - min));
|
int l = nearest_int(iscale*(x[i] - min));
|
||||||
L[i] = MAX(0, MIN(nmax, l));
|
L[i] = MAX(0, MIN(nmax, l));
|
||||||
float diff = scale * L[i] + min - x[i];
|
float diff = scale * L[i] + min - x[i];
|
||||||
diff = use_mad ? fabsf(diff) : diff * diff;
|
diff = use_mad ? fabsf(diff) : diff * diff;
|
||||||
float w = weights[i];
|
float w = weights[i];
|
||||||
best_mad += w * diff;
|
best_error += w * diff;
|
||||||
}
|
}
|
||||||
if (nstep < 1) {
|
if (nstep < 1) {
|
||||||
*the_min = -min;
|
*the_min = -min;
|
||||||
@@ -601,18 +601,18 @@ static float make_qkx2_quants(int n, int nmax, const float * GGML_RESTRICT x, co
|
|||||||
this_min = 0;
|
this_min = 0;
|
||||||
this_scale = sum_xl / sum_l2;
|
this_scale = sum_xl / sum_l2;
|
||||||
}
|
}
|
||||||
float mad = 0;
|
float cur_error = 0;
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
float diff = this_scale * Laux[i] + this_min - x[i];
|
float diff = this_scale * Laux[i] + this_min - x[i];
|
||||||
diff = use_mad ? fabsf(diff) : diff * diff;
|
diff = use_mad ? fabsf(diff) : diff * diff;
|
||||||
float w = weights[i];
|
float w = weights[i];
|
||||||
mad += w * diff;
|
cur_error += w * diff;
|
||||||
}
|
}
|
||||||
if (mad < best_mad) {
|
if (cur_error < best_error) {
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
L[i] = Laux[i];
|
L[i] = Laux[i];
|
||||||
}
|
}
|
||||||
best_mad = mad;
|
best_error = cur_error;
|
||||||
scale = this_scale;
|
scale = this_scale;
|
||||||
min = this_min;
|
min = this_min;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user