Skip to content

benchmarking between AVX/SSE4.1 #62

@jg1uaa

Description

@jg1uaa

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions