ggml-cpu: fix data race for debug asserts (#20148)

This commit is contained in:
Johannes Gäßler 2026-03-06 09:12:49 +01:00 committed by GitHub
parent 17a4258946
commit 2850bc6a13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 38 additions and 38 deletions

View File

@ -2129,12 +2129,12 @@ static void ggml_compute_forward_gelu_f32(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const float x = ((float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*(dst->nb[1])))[k];
GGML_UNUSED(x);
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2176,13 +2176,13 @@ static void ggml_compute_forward_gelu_f16(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*( dst->nb[1])))[k];
const float v = GGML_CPU_FP16_TO_FP32(x);
GGML_UNUSED(v);
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -2325,12 +2325,12 @@ static void ggml_compute_forward_gelu_erf_f32(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const float x = ((float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*(dst->nb[1])))[k];
GGML_UNUSED(x);
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2372,13 +2372,13 @@ static void ggml_compute_forward_gelu_erf_f16(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*( dst->nb[1])))[k];
const float v = GGML_CPU_FP16_TO_FP32(x);
GGML_UNUSED(v);
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -2444,12 +2444,12 @@ static void ggml_compute_forward_gelu_quick_f32(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const float x = ((float *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const float x = ((float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*(dst->nb[1])))[k];
GGML_UNUSED(x);
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2491,13 +2491,13 @@ static void ggml_compute_forward_gelu_quick_f16(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*( dst->nb[1])))[k];
const float v = GGML_CPU_FP16_TO_FP32(x);
GGML_UNUSED(v);
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -2563,12 +2563,12 @@ static void ggml_compute_forward_silu_f32(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const float x = ((float *) ((char *) dst->data + i1*(dst->nb[1])))[k];
const float x = ((float *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*(dst->nb[1])))[k];
GGML_UNUSED(x);
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2610,13 +2610,13 @@ static void ggml_compute_forward_silu_f16(
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i1*(dst->nb[1])))[k];
const ggml_fp16_t x = ((ggml_fp16_t *) ((char *) dst->data + i3*nb3 + i2*nb2 + i1*( dst->nb[1])))[k];
const float v = GGML_CPU_FP16_TO_FP32(x);
GGML_UNUSED(v);
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -2766,7 +2766,7 @@ static void ggml_compute_forward_silu_back_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2802,7 +2802,7 @@ static void ggml_compute_forward_silu_back_f16(
(ggml_fp16_t *) ((char *) src1->data + i1*(src1->nb[1])),
(ggml_fp16_t *) ((char *) grad->data + i1*(grad->nb[1])));
#ifndef NDEBUG
#ifndef NDEBUG
for (int k = 0; k < nc; k++) {
const float x = ((ggml_fp16_t *) ((char *) dst->data + i1*( dst->nb[1])))[k];
const float v = GGML_CPU_FP16_TO_FP32(x);
@ -2810,7 +2810,7 @@ static void ggml_compute_forward_silu_back_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -2893,7 +2893,7 @@ static void ggml_compute_forward_reglu_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -2953,7 +2953,7 @@ static void ggml_compute_forward_reglu_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -3036,7 +3036,7 @@ static void ggml_compute_forward_geglu_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -3096,7 +3096,7 @@ static void ggml_compute_forward_geglu_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -3179,7 +3179,7 @@ static void ggml_compute_forward_swiglu_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -3239,7 +3239,7 @@ static void ggml_compute_forward_swiglu_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -3330,7 +3330,7 @@ static void ggml_compute_forward_swiglu_oai_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -3409,7 +3409,7 @@ static void ggml_compute_forward_geglu_erf_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -3469,7 +3469,7 @@ static void ggml_compute_forward_geglu_erf_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -3552,7 +3552,7 @@ static void ggml_compute_forward_geglu_quick_f32(
assert(!isnan(x));
assert(!isinf(x));
}
#endif
#endif // NDEBUG
}
}
@ -3612,7 +3612,7 @@ static void ggml_compute_forward_geglu_quick_f16(
assert(!isnan(v));
assert(!isinf(v));
}
#endif
#endif // NDEBUG
}
}
@ -5303,7 +5303,7 @@ static void ggml_compute_forward_soft_max_f32(
//printf("p[%d] = %f\n", i, p[i]);
assert(!isnan(wp[i]));
}
#endif
#endif // NDEBUG
float max = -INFINITY;
ggml_vec_max_f32(ne00, &max, wp);
@ -5328,7 +5328,7 @@ static void ggml_compute_forward_soft_max_f32(
assert(!isnan(dp[i]));
assert(!isinf(dp[i]));
}
#endif
#endif // NDEBUG
}
}
}
@ -5402,7 +5402,7 @@ static void ggml_compute_forward_soft_max_ext_back_f32(
assert(!isnan(dy[i]));
assert(!isnan(y[i]));
}
#endif
#endif // NDEBUG
// Jii = yi - yi*yi
// Jij = -yi*yj
// J = diag(y)-y.T*y
@ -5435,7 +5435,7 @@ static void ggml_compute_forward_soft_max_ext_back_f32(
assert(!isnan(dx[i]));
assert(!isinf(dx[i]));
}
#endif
#endif // NDEBUG
}
}
@ -10700,7 +10700,7 @@ static void ggml_compute_forward_cross_entropy_loss_f32(
assert(!isnan(s0[i]));
assert(!isnan(s1[i]));
}
#endif
#endif // NDEBUG
float max = -INFINITY;
ggml_vec_max_f32(nc, &max, s0);
@ -10719,7 +10719,7 @@ static void ggml_compute_forward_cross_entropy_loss_f32(
assert(!isnan(st[i]));
assert(!isinf(st[i]));
}
#endif
#endif // NDEBUG
}
sums[ith] = sum_thread;
ggml_barrier(params->threadpool);
@ -10792,7 +10792,7 @@ static void ggml_compute_forward_cross_entropy_loss_back_f32(
assert(!isnan(s0[i]));
assert(!isnan(s1[i]));
}
#endif
#endif // NDEBUG
// soft_max
float max = -INFINITY;
@ -10810,7 +10810,7 @@ static void ggml_compute_forward_cross_entropy_loss_back_f32(
assert(!isnan(ds0[i]));
assert(!isinf(ds0[i]));
}
#endif
#endif // NDEBUG
}
}