Commit graph

24 commits

Author SHA1 Message Date
Jean-Marc Valin
db26e381a4
Trying to use fma instructions when possible
Compilers sometimes replace vmlaq*() with fmul+fadd instead of fmla.
Trying to use vfmaq*() instead when possible.
2023-11-28 14:16:57 -05:00
Jean-Marc Valin
db6dad446c
Fix ARMv7 optimizations for DNN code 2023-11-26 22:21:29 -05:00
Jean-Marc Valin
cc11c078cd
First step towards DNN optimization for ARMv7 Neon
Still missing some intrinsics
2023-11-26 03:36:46 -05:00
Jean-Marc Valin
88c58cfaf3
nnet.h no longer needs to #include "vec.h" 2023-10-20 17:25:27 -04:00
Jean-Marc Valin
88c8b30785
Doing some unrolling on ARM/Neon 2023-10-20 03:28:17 -04:00
Jean-Marc Valin
e9f8402a71
Handle float matrices with multiple of 8 rows 2023-08-01 19:16:27 -04:00
Jan Buethe
be5f58d679
neon related alignment requirement warning fix 2023-07-22 11:11:49 -07:00
Jean-Marc Valin
62cd1c963b
Transition to LinearLayer and remove unused code 2023-07-20 01:01:34 -04:00
Jean-Marc Valin
f5a68a41b0
Add generic linear layer
Should be able to handle all previous GRU variants and more.
2023-07-20 01:01:32 -04:00
Michael Klingbeil
17bb81934b
add undefs in mathops.h and remove OPUS_INLINE in vec_neon.h 2023-06-30 22:54:09 -04:00
Marcus Asteborg
f36685fc97
Remove trailing whitespace in dnn 2023-06-22 13:58:37 -07:00
Jean-Marc Valin
c9b9570970 Add missing include guards 2023-05-24 12:58:05 -04:00
xnorpx
7122abde59 Rename celt_exp to lpcnet_exp
Depending on what defines are set there is collisions with the ones
in Opus. To avoid these errors we rename the exp functions and
macros.

Signed-off-by: Jean-Marc Valin <jmvalin@amazon.com>
2023-05-24 00:46:20 -04:00
Jan Buethe
c1b357ed47 first attempt of C implementation of fec encoder (not tested yet due to NEON/DOT_PROD not being separable) 2022-10-18 19:30:23 +02:00
Jean-Marc Valin
f8f12e7f3c NEON float->char conversion (same as the AVX2 version) 2021-07-10 01:59:49 -04:00
Jean-Marc Valin
a1079c2ce3 Again, same conversion as 3206cec, for NEON 2021-07-10 01:59:49 -04:00
Jean-Marc Valin
54abdb6f5d Sparse matrix indexing optimization
The 4* is now stored in the table to avoid computing it in the loop
2021-07-10 01:59:49 -04:00
Jean-Marc Valin
d332100808 Representing output pdf as binary probability tree
Saves on the MDense/softmax computation since we only need to compute
8 values instead of 256.
2021-07-10 01:59:49 -04:00
Jean-Marc Valin
c1535c8ccf Adding option to disable int8 dot products 2021-06-24 17:31:05 -04:00
Jean-Marc Valin
b9c230b346 Add NEON intrinsics 2021-01-16 02:11:22 -05:00
Jean-Marc Valin
b214e684c1 Neon WIP: Compiles but very slow 2021-01-16 02:11:21 -05:00
Jean-Marc Valin
a09815925a Neon: Make gcc actually generate VMLA instructions for sparse mul
Otherwise it was splitting the mla into a mul and an add
2019-03-20 12:58:39 -04:00
Jean-Marc Valin
492ef9b362 Neon implementation of the activation functions 2019-03-20 03:03:44 -04:00
David Rowe
7dc696b9a4 refactored for different machines, sgemv_accum16 using NEON intrisics
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-12-10 21:28:29 -05:00