AMD confirmed with Digital Trends on Monday that the company discovered why FMA3 code is causing system hangs on PCs using a new Ryzen desktop processor. Although AMD didn’t provide a detailed report on the problem’s root cause, the company said that BIOS changes will be distributed to motherboard manufacturers to resolve the issue. Customers are encouraged to keep an eye on their motherboard vendor’s website for an update.
“We are aware of select instances where FMA code can result in a system hang,” the company said. “We have identified the root cause.”
AMD released three Ryzen-branded desktop processors at the beginning of March that plug into motherboards based on AMD’s new AM4 socket. The trio of processors include the Ryzen 7 1800X, the Ryzen 7 1700X, and the Ryzen 7 1700. However, all three reportedly cause a hard system lock when running certain FMA3 workloads. The problem was replicated across all three processors and a variety of motherboards.
The first sign of trouble appeared in the open-source processor benchmark Flops (v2) by Alexander “Mystical” Yee. This simple program provides separate versions supporting specific processor architectures, such as Intel’s Haswell, Skylake, and so on. But because the author has yet to upload a version for AMD’s new Zen architecture used in the Ryzen chips, the Haswell-specific binary is the version of choice for testing Ryzen … at least, for now.
Using the Haswell binary is important because it supports the Fused Multiply-Add (FMA) microprocessor instruction set, which is also supported by AMD’s Ryzen processors. The short description of FMA is that the processor can compute A+BxC in one step before rounding the final result. The “unfused” method involves BxC first, rounding the number, adding that to A, and rounding the final result.
However, Ryzen’s issue with FMA3 isn’t locked to the Flops benchmark. Simple apps with basic user privileges can crash a Ryzen-based machine. Even more, code using FMA3 could be executed on virtual machines running on AMD’s upcoming Zen-based “Naples” processors for the enterprise. Thus, finding the FMA3 issue in Flops now saved AMD and corporations from a lot of headache stemming from the security implications alone at the launch of Naples.
“Don’t be fooled by the Haswell binary,” Yee said on HWBOT. “The benchmark is five years old and I’ve largely neglected it for the last three. So I haven’t updated it for Zen yet. Any processor will be able to run any of the binaries if it supports the underlying instruction sets. If it doesn’t, the program merely crashes with an ‘illegal instruction.’ Under no circumstances should a user-mode application be able to bring down an entire system.”
The multiple tests conducted to confirm the FMA3 problem relied on Ryzen CPUs running at their stock speeds. Zee also benchmarked each thread (ordered instruction sequence), and managed to freeze the PC each time no matter what processor core he used.