Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.

Poll

Are using AVX2 instruction set reasonable for some foobar2000 components?

Yes
[ 2 ] (22.2%)
For CPU-intensive parts only
[ 0 ] (0%)
Only with fallbacks to older SIMD instructions implemented correctly
[ 5 ] (55.6%)
No
[ 2 ] (22.2%)

Total Members Voted: 9

Topic: Should some foobar2000 components be using AVX2 instruction set? (Read 1462 times) previous topic - next topic - Topic derived from Re: foo_vis_spectrum_...
0 Members and 1 Guest are viewing this topic.

Should some foobar2000 components be using AVX2 instruction set?

I'm thinking of compiling the next versions with Advanced Vector Extensions 2 (AVX2) instructions enabled. This would mean that the CPU in your computer should be released in 2013 or later (10 years ago, Intel Haswell).

Is that an unreasonable requirement?

I'm hoping for a civil discussion...
So, I wonder if certain components like foo_enhanced_spectrum_analyzer (moreso with some new features I've requested that is too CPU intensive) benefit from using AVX2 instruction set introduced in 2013 for Intel processors and 2015 for AMD CPUs, at the cost of not being able to run some of these components on older CPUs like Intel Core 2 Duo (which AFAIK, doesn't have SSE4.2 and AVX2 support) unless fallback to older SIMD instructions is implemented properly

Do you think that use of AVX2 instruction set is reasonable on certain parts in foobar2000 components?

BTW, what about use of AVX-512 instruction set in a foobar2000 component?

Re: Should some foobar2000 components be using AVX2 instruction set?

Reply #1
I'm thinking of compiling the next versions with Advanced Vector Extensions 2 (AVX2) instructions enabled. This would mean that the CPU in your computer should be released in 2013 or later (10 years ago, Intel Haswell).

Is that an unreasonable requirement?

I'm hoping for a civil discussion...
So, I wonder if certain components like foo_enhanced_spectrum_analyzer (moreso with some new features I've requested that is too CPU intensive) benefit from using AVX2 instruction set introduced in 2013 for Intel processors and 2015 for AMD CPUs, at the cost of not being able to run some of these components on older CPUs like Intel Core 2 Duo (which AFAIK, doesn't have SSE4.2 and AVX2 support) unless fallback to older SIMD instructions is implemented properly

Do you think that use of AVX2 instruction set is reasonable on certain parts in foobar2000 components?

BTW, what about use of AVX-512 instruction set in a foobar2000 component?

I wouldnt personally mind if SSE4.2 and AVX is mandatory. NEON is a given in modern ARM devices anyway.

Re: Should some foobar2000 components be using AVX2 instruction set?

Reply #2
I'm a bit wary of using these in an audio player at all. For example Haswell limited the maximum speeds of all cores if any core was using AVX2. And even with newer CPUs these instructions cause throttling and limit the executing core's frequency. Personally I rather have efficient audio player and enjoy uncapped CPU power for other tasks as the player is running on the background.

 

Re: Should some foobar2000 components be using AVX2 instruction set?

Reply #3
I'm a bit wary of using these in an audio player at all. For example Haswell limited the maximum speeds of all cores if any core was using AVX2. And even with newer CPUs these instructions cause throttling and limit the executing core's frequency. Personally I rather have efficient audio player and enjoy uncapped CPU power for other tasks as the player is running on the background.
Of course, this is where I might see using AVX2 as a crutch for a spectrum analyzer component (just because I saw performance drop on anything beyond 1/24th octave bands and more than 4th order filters on my own project, as well as 1/12th octave bands with RMS spectrum shown) for foobar2000 audio player (especially foo_enhanced_spectrum_analyzer and its high CPU usage "problem") and obviously can cause compatibility issues with low-end CPUs that lack support for AVX2 instructions (especially when fallback to older SIMD instructions like SSE4.2 isn't present or incorrectly implemented), unless you have a good reason to use these