3 ms·
FMA3 (fused multiply add) instructions are very common for any kind of audio processing (e.g. filters), not only for their speed but also their precision proper
by mhroth 10y ago
FMA3 (fused multiply add) instructions are very common for any kind of audio processing (e.g. filters), not only for their speed but also their precision properties. Depending on how a game was compiled, these instructions would be all over the place.
But if this specific sequence is every run, that's another question, of course.
- gcp 10y agoFMA is used in literally everything that deals with floats and has AVX2/FMA3 support, not just audio. AVX usage in game code isn't actually all that common, though, due to the need to support lowest common denominators. And no, this specific sequence isn't ever run. If it were, they'd have found it while designing the chip. I checked the original source and it's hand written FMA3 intrinsics that don't correspond to a real computation.
- Animats 10y agoCan you induce this through WebAssembly? Probably not, but someone should check.
- sunfish 10y agoWebAssembly does not currently have an fma instruction, and implementations are not permitted to fold plain multiply+add sequences into fma because that produces different rounding.
- zlynx 10y agoSome game developers that had optimized with AVX were asked to take it out since it would crash overclocked CPUs that were riding the limits. Hit a patch of AVX and bam, they'd fall over. Intel has mostly fixed this in more recent chips so that now they look ahead for upcoming AVX instructions and just slow down.
- geezerjay 10y agoFMA (fused multiply-add) is a basic computing operation that is a basic building block in tasks such as evaluating polynomials, vector-vector and matrix-vector multiplication, convolutions, and also algorithms to solve nonlinear equations. You'd be hard pressed to find any computing application that doesn't take advantage of FMA instructions.