-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Build option for show vectorization info #4861
Build option for show vectorization info #4861
Conversation
This is a compasion of the loops in sample.cpp
|
Yet another reason to use xsimd in favor of auto-vectorization |
Yes, I agree. |
Great. The problem with that is that this requires large scale change to our audio processing. Essentially every xsimd-related code needs to be templated on the vector instruction set (unless we want to dynamically dispatch everywhere). Also the binary size and build time will be increased because we're generating the same code for many architectures. The advantage would be that portable builds could include avx2, sse4, etc code so the official portable binaries can run almost as fast as native builds. |
Did you call all these compilers with the same processor instruction set extensions as target? |
This is the output from our default build settings on GitHub. That goes to our release builds as well. Maybe our MSVC build flags are bad? Do you have better results in you local build? |
Could you rerun your benchmark with https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-170 |
To provide portable builds, we can only distribute with SSE2. gcc only builds with sse2 and is able to a good job at autovectorization. So specifying a different target instruction set does not make sense. Especially not |
I have testes the /arch:AVX512 flag here: https://github.com/daschuer/mixxx/runs/7462994413?check_suite_focus=true |
Thanks for testing! It seems, that MSVCs auto-vectorizer is that poor: http://0x80.pl/notesen/2021-02-17-autovectorization-msvc.html |
@ferranpujolcamins Is this ready for merge? |
With -DINFO_VECTORIZE=ON all target compiler will list vectorized loops in the terminal output
Unfortunately enabling this rebuilds all files!
I have added this to compare the vectorization capability using the GitHub ci.
In this PR it is disabled, an enabled run can be found here:
https://github.com/daschuer/mixxx/actions/runs/2702452852