-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
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.
Metadata
Metadata
Assignees
Labels
No labels