@@ -3467,27 +3467,31 @@ static void ggml_compute_forward_norm_f32(
34673467
34683468 GGML_ASSERT (eps >= 0 .0f );
34693469
3470+ // kcpp: reverted back to non accelerated, because it was breaking kokoro
34703471 for (int64_t i03 = 0 ; i03 < ne03; i03++) {
34713472 for (int64_t i02 = 0 ; i02 < ne02; i02++) {
34723473 for (int64_t i01 = ith; i01 < ne01; i01 += nth) {
34733474 const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03);
34743475
3475- float sum = 0.0 ;
3476- ggml_vec_sum_f32 (ne00, &sum, x);
3476+ ggml_float sum = 0.0 ;
3477+ for (int64_t i00 = 0 ; i00 < ne00; i00++) {
3478+ sum += (ggml_float)x[i00];
3479+ }
3480+
34773481 float mean = sum/ne00;
34783482
34793483 float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3);
3480- float variance = 0 ;
34813484
3482- #ifdef GGML_USE_ACCELERATE
3483- mean = -mean;
3484- vDSP_vsadd (x, 1 , &mean, y, 1 , ne00);
3485- vDSP_measqv (y, 1 , &variance, ne00);
3486- #else
3487- variance = ggml_vec_cvar_f32 (ne00, y, x, mean);
3488- #endif // GGML_USE_ACCELERATE
3485+ ggml_float sum2 = 0.0 ;
3486+ for (int64_t i00 = 0 ; i00 < ne00; i00++) {
3487+ float v = x[i00] - mean;
3488+ y[i00] = v;
3489+ sum2 += (ggml_float)(v*v);
3490+ }
34893491
3492+ float variance = sum2/ne00;
34903493 const float scale = 1 .0f /sqrtf (variance + eps);
3494+
34913495 ggml_vec_scale_f32 (ne00, y, scale);
34923496 }
34933497 }
0 commit comments