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