Running GMP on Ryzen
Torbjörn Granlund
tg at gmplib.org
Fri Aug 11 09:30:13 UTC 2017
The GMP Ryzen dev system is now powered off, and we plan no more
development work for Ryzen.
Ryzen systems keep crashing due to serious silicon bugs:
1. When running an OS on the raw hardware, processes get spurious segfaults
under load.
2. When virtualising the system with Xen, the entire machine dies under
load.
AMD apparently has decided to pretend their early Ryzen works fine except
for GNU/Linux. They replace CPUs on a case-by-case basis only. But the
only reasonable action would be to publicly confess that their early chips
did not work properly, and make a full recall.
There is a long thread about the bug (1) here:
https://community.amd.com/thread/215773?start=0
AMD people replied in the beginning, and introduced the newspeak term
"performance marginality problem". Later AMD decided to ignore the thread.
If you're the owner of a Ryzen system and care about it working properly
for compiling and running code, please try the following script. Fill out
paths within [] first and set the seq argument to the number of threads
available. Then look for accumulating strings ERROR in the files log.* in
$tmpdir.
On our 4 core/8 thread Ryzen, I get about 2 compilation crashes per hour
and about 5 test suite crashes per day. YMMV. I've been told that newer
Ryzen chips has a fix for bug (1). Not sure about bug (2).
#! /bin/sh
tmpdir=/var/tmp/[somename]
gmpsrc=[fill in this]
mkdir $tmpdir
cd $tmpdir || exit 1
while true
do
for i in $(seq 16)
do
(rm -rf $i
mkdir $i
cd $i
$gmpsrc/configure && make && make check
stat=$?
if [ $stat != 0 ]
then
echo "ERROR exit $stat"
fi
) &>>log.$i &
done
done
--
Torbjörn
Please encrypt, key id 0xC8601622
More information about the gmp-discuss
mailing list