Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added cpu optimization detection and avx optimization #165

Closed
wants to merge 2 commits into from
Closed

added cpu optimization detection and avx optimization #165

wants to merge 2 commits into from

Conversation

manuvi
Copy link

@manuvi manuvi commented Nov 14, 2023

this is a proposal for avx optimization on many float loop computation inside DSP.cpp

@manuvi
Copy link
Author

manuvi commented Nov 15, 2023

I guess, if this could be interesting, to refactor the makefiles to consider a simd extension, to enable id by pragma inside code and build an infrastructure for the various platform

@michaelwillis
Copy link
Owner

michaelwillis commented Nov 16, 2023

This change breaks the build for all processor architectures except for x86_64. It also obfuscates the code in the DSP.cpp files for fairly minimal performance improvement - the vast majority of the computation being done in these plugins happens in the freeverb3 code.

It would be better to allow the compiler to automatically apply such performance improvements, as described here: https://gcc.gnu.org/projects/tree-ssa/vectorization.html

@manuvi
Copy link
Author

manuvi commented Nov 23, 2023

as far as I know, optimization has to be specified for every arch (like ffmpeg does) but I understand your pov (these opt are really rare to catch by compiler, you have to write a specific loop structures with specific loop increment...btv I don't see these structures).
It would be a good thing to open a separate branch and start to optimize all the possible flows, including all the makefiles, for every arch.
With this only optimization I got a speedup from 4% for one room-rev of DSP load (on Ardour) to 1%. Zen2 12core.
I know that I break lot of stuff, but my target was to open a branch and try to get the best.
However, thank you.

@manuvi manuvi closed this Nov 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants