Adding AVX optimized routines for Linux

Multimedia / Ardour - Ayan Shafqat [gmail.com] - 11 August 2020 00:28 UTC

This commit adds AVX optimized routines for the following procedures below:

*_compute_peak
*_find_peaks
*_apply_gain_to_buffer
*_mix_buffers_with_gain
*_mix_buffers_no_gain

AVX optimized routine has the prefix of: x86_sse_avx_

Note: mix_buffer_with_gain and mix_buffers_no_gain may prefer SSE implementaion over AVX if source and destination pointers are aligned to 16 byte boundaries. Therefore, it will be optimal if _all_ audio buffers are allocated to 32 byte boundaries to take full advantage of AVX ISA extension.

03abc1076e Adding AVX optimized routines for Linux
libs/ardour/ardour/mix.h | 2 +-
libs/ardour/globals.cc | 10 +-
libs/ardour/sse_functions_avx_linux.cc | 839 ++++++++++++++++++++++++++++++++-
3 files changed, 824 insertions(+), 27 deletions(-)

  • Share