2 ms·
All the tested CPUs implement the standard and they implement it in the right way, except for Intel, who has chosen to save some bucks even if this decision mig
by adrian_b 7d ago
All the tested CPUs implement the standard and they implement it in the right way, except for Intel, who has chosen to save some bucks even if this decision might cause unpredictable financial losses for naive customers, who might choose to use the dangerous FTZ/DAZ options to avoid the Intel slowdown, which in turn may cause unpredictable computation errors, with even more unpredictable consequences.
Some poster has linked a Mastodon thread, where Fabian Giesen explains that handling in hardware the subnormals is cheap in floating-point adders and in fused-multiply-add (FMA) execution units. Many processors do the multiplications in the FMA execution units, so there is no penalty for them to do the subnormal handling in the right way.
On the other hand, some CPUs, including the Intel big cores, have some floating-point multipliers that are separate from the FMA units. The reason is that those separate multipliers can have lower latencies, typically by 1 or 2 clock cycles, which may help those CPUs to win some benchmarks, especially when running unoptimized legacy programs (in optimized programs, most multiplications are combined with additions into FMA operations).
The separate multipliers are simplified in comparison with those included in the FMA units, and handling subnormals in them would be expensive, because then they would become so complex that there would be no advantage for them to be separate multipliers. Which is why Intel does not handle subnormal multiplication in hardware, but a microprogram is invoked for this.