SSE support is renewed, I took benchmark.
method:
$ cd LPCNet/build_dir/src
$ cat ../../wav/all.wav | ./lpcnet_enc -s > test.out
$ time cat test.out | ./lpcnet_dec -s > /dev/null
results:
| CPU |
build |
time(real) |
Note |
| Intel Core i7-7700 |
AVX |
7.132s |
*1 |
| Intel Core i7-7700 |
SSE4.1 |
8.941s |
*1 |
| AMD A8-7600 |
AVX |
15.146s |
*1 |
| AMD A8-7600 |
SSE4.1 |
16.453s |
*1 |
| Intel Core i3-13100 |
AVX |
3.730s |
*2 |
| Intel Core i3-13100 |
SSE4.1 |
4.870s |
*2 |
| Intel Core i7-7700 |
AVX |
N/A |
*3 |
| Intel Core i7-7700 |
SSE4.1 |
29.428s |
*3 |
| Intel Core i7-7700 |
SSE4.1 |
10.858s |
*4 |
(*1)Debian-12.1/x86_64, gcc-12.2.0
(*2)Ubuntu-22.04.3/x86_64 LTS on WSL2, gcc-11.4.0
(*3)Slackware-15.0/i686 on QEMU-7.2.4/KVM, gcc-11.2.0
(*4)Slackware-15.0/i686 on QEMU-7.2.4/KVM, clang-13.0.0
QEMU on Slackware did not support AVX instruction.
conclusion:
on x86_64, SSE4.1 build is slightly slower than AVX but we can ignore this disadvantage.
on i686, SSE4.1 build depends with compiler.
suggestion:
we can use SSE4.1 as default on x86_64 environment.
with clever compiler, we will be able to do same things for i686.
SSE support is renewed, I took benchmark.
method:
results:
(*1)Debian-12.1/x86_64, gcc-12.2.0
(*2)Ubuntu-22.04.3/x86_64 LTS on WSL2, gcc-11.4.0
(*3)Slackware-15.0/i686 on QEMU-7.2.4/KVM, gcc-11.2.0
(*4)Slackware-15.0/i686 on QEMU-7.2.4/KVM, clang-13.0.0
QEMU on Slackware did not support AVX instruction.
conclusion:
on x86_64, SSE4.1 build is slightly slower than AVX but we can ignore this disadvantage.
on i686, SSE4.1 build depends with compiler.
suggestion:
we can use SSE4.1 as default on x86_64 environment.
with clever compiler, we will be able to do same things for i686.