shithub: opus

Download patch

ref: cbd3a80552a918e71ced43e7e2af35092a170629
parent: 0b7c02caf4548e3bd90c39c13913146358e4de8b
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Sat Oct 14 17:19:46 EDT 2023

minor tweaks

--- a/dnn/fargan.c
+++ b/dnn/fargan.c
@@ -86,7 +86,7 @@
 
   compute_generic_dense(&model->sig_net_cond_gain_dense, &gain, cond, ACTIVATION_LINEAR);
   gain = exp(gain);
-  gain_1 = 1.f/(1e-5 + gain);
+  gain_1 = 1.f/(1e-5f + gain);
 
   pos = PITCH_MAX_PERIOD-period-2;
   for (i=0;i<FARGAN_SUBFRAME_SIZE+4;i++) {
--- a/dnn/nnet.c
+++ b/dnn/nnet.c
@@ -150,7 +150,12 @@
    celt_assert(layer->nb_inputs == layer->nb_outputs);
    compute_linear(layer, act2, input);
    compute_activation(act2, act2, layer->nb_outputs, ACTIVATION_SIGMOID);
-   for (i=0;i<layer->nb_outputs;i++) output[i] = input[i]*act2[i];
+   if (input == output) {
+     /* Give a vectorization hint to the compiler for the in-place case. */
+     for (i=0;i<layer->nb_outputs;i++) output[i] = output[i]*act2[i];
+   } else {
+     for (i=0;i<layer->nb_outputs;i++) output[i] = input[i]*act2[i];
+   }
 }
 
 void compute_gated_activation(const LinearLayer *layer, float *output, const float *input, int activation)
--