tamz_msc
Diamond Member
- Jan 5, 2017
- 3,865
- 3,729
- 136
I said that AVX has been supported since SB, which means every Intel CPU since then and every AMD CPU since Bulldozer has supported AVX, yet we have only seen it achieve limited traction, given that it has been four years since Haswell which offered a marked improvement in AVX support over the previous generations. Oxide's Nitrous engine supposedly uses AVX, even then there's just one game in the market which uses that engine.We don't see it cause AVX isn't faster in the case of consoles when it's practically half rate and Sandy Bridge supporting it isn't good enough either since there's lots of users who refuse to ditch old systems (as we can see from the No Man's Sky and 3D Mark Time Spy backlash when they required SSE4.1 ?) so that just means that the app developers withhold taking use of the new extensions ... (There's lot's of gravity involved with software support such as userbase, drivers, and the compilers before adopting new hardware and extensions)
I believe that only consoles can set an example for common end users how important these features are by showing has this reflects to PC games ...
Realistically speaking if you can find a speedup using SSE in a game engine then you can almost certainly find a speedup using AVX-512. You would usually need tens of thousands elements to work on before you start seeing a payoff whereas if you need to do several hundreds or a couple thousand iterations then AVX-512 is best suited to the task when those vector units are running higher clocks along with a lower startup cost since you can keep the scalar and vector code entangled to each other so that translates to a lower latency in the end which is a fair bit of a win ...
No Man's Sky wasn't the first instance where SSE4.1/4.2 support was a requirement which was later dropped due to pressure from customers stuck with old CPUs. MGS V:TPP was one of the first cases where this issue was reported, and it was patched the next day. This really suggests to me that it was more of an oversight, considering how easy it was to fix and especially when Ground Zeroes which was released almost a year back didn't have this requirement and looked better in certain aspects.
If there is potential performance gains to be had in executing hundreds of small loops in a game engine like you say, why should the game developers skip AVX and AVX2 and go directly to AVX512? I don't see how Zen splitting an AVX2 op into 2x128 bit ops is going to be a problem in these situations where it is much less about overall throughput compared to HPC workloads.
Last edited: