Compiling ATLAS and HPL on the HP a4313w computer
Contents
The “Passmark” value for the AMD Sempron LE-1250 CPU (2200 MHz) in the computer Mona got from her cousin is 541 (see https://m.cpubenchmark.net/cpu.php?id=428 or do a search on the web for Passmark AMD Sempron LE-1250.) That puts it just above the Acer Aspire T180 system I got from Mildred: it has an AMD Athlon 64 3500+ CPU running at 2200 MHz, passmark 539. While the PassMark value serves as a good proxy for CPU performance, it’s not infallible; I prefer to use the HPL (High Performance Linpack) benchmark as my final arbitrator.
I tried running the HPL with the ATLAS library supplied with Fedora 28 on the a4313w, but it died attempting to start new threads. I suspec that was because the Fedora ATLAS library was complied for multi-core CPUs. But the AMD Sempron has only one CPU core.
Having built ATLAS for a single-core AMD Duron CPU earlier this year, I decided to have a go at doing the same on this computer.
ATLAS notes
- Retrieved ATLAS from SourceForge and unpacked it into /var/tmp
- Retrived LAPACK using the following command:
wget http://www.netlib.org/lapack/lapack-3.8.0.tar.gz
- Installed
gcc-gfortran
- I had to do three things to turn off the CPU throttling:
- Install the
kernel-tools
package - Boot the system with the kernel parameter
intel_pstate=disable
- Issue the command
cpupower frequency-set --governor performance
- Install the
- In
/var/tmp/ATLAS
, created directoryLinux_AMD_Sempron
and moved into it - Issued the following command to configure ATLAS:
../configure --with-netlib-lapack-tarfile=/var/tmp/lapack-3.8.0.tar.gz 2>&1 |
tee build.1.configure.text
- Issued the following command to build ATLAS:
time make build 2>&1 |
perl -ne 'BEGIN{use POSIX "strftime";$|=1} print strftime("%T",localtime), " $_"' |
tee build.2.make-build.text
- Rather to my surprise, it built in less than an hour. In the past this has
indicated a failed build, but
make check
passed with no errors -
make install
installed the libraries into/usr/local/atlas/lib:
libatlas.a
libcblas.a
libf77blas.a
liblapack.a
libmpich notes
- Installed using
dnf install mpich mpich-devel
- Updated ldconfig using
echo "/usr/lib64/mpich/lib" >/etc/ld.so.conf.d/mpich.conf; ldconfig
HPL notes
-
Retrieved HPL 2.2 from
penguin:/var/local/archive/HPL/hpl-2.2.tar.gz
-
Unpacked it into
/var/tmp/HPL/hpl-2.2
-
Built it following the instructions in my 2016 notebook, using the
Make.Linux_ATHLON_CBLAS
file from thesetup
directory -
In the
Make.Linux_ATHLON_CBLAS
file, set variables as follows: _TOPdir = /var/tmp/hpl-2.2 MPdir = (left empty) MPinc = -I/usr/include/mpich-x86_64 MPlib = /usr/lib64/mpich/lib/libmpich.so LAdir = /usr/local/atlas/lib LAinc = (left empty) LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a (its original value)
-
Used the following command to make the HPL: _
HPL_ARCH='Linux_ATHLON_CBLAS'; make arch=$HPL_ARCH 2>&1 | tee build.1.make.text
-
Used the following parameters in
/var/tmp/HPL/hpl-2.2/bin/Linux_ATHLON_CBLAS/HPL.dat:
(the same values used when running the test on AMD Athlon 64 3500+):7296 Ns 1 # of NBs 192 NBs 2 Ps 2 Qs
-
Issued the following commands to run the HPL:
cd /var/tmp/HPL/hpl2-2/bin/Linux_ATHLON_CBLAS time /usr/lib64/mpich/bin/mpiexec -launcher fork -n 4 ./xhpl
The result: a very disappointing 1,904 MFLOPS
After all was said and done, the HPL benchmark returned an average of 1,904 MFLOPS over three trials (1897, 1910, 1904.) That’s 23% slower than the value of 2,472 returned for AMD Athlon 64 3500+ (with a stock ATLAS, no less) and is only 7% faster than Raspberry Pi 3 (1,775 MFLOPS!)
Comparison of the AMD Athlon 64 3500+ and AMD Sempron LE-1250 CPUs
Property | Athlon 64 3500+ | AMD Sempron LE-1250 |
---|---|---|
(In system) | Acer Aspire T180 (Mildred) | HP a4313w (via Mona) |
Introduced | April 2005 | August 2007 |
Target Market | Hardware enthusiast/Gamer | Budget desktop |
AMD CPU Family | Athlon 64 | Opteron |
Core technology | AMD K8 SledgeHammer | AMD K8 SledgeHammer |
Cores | 1 | 1 |
Clock Speed | 2200 MHz | 2200 MHz |
Family/Model/Stepping | 15 / 95 / 2 | 15 / 127 / 2 |
Model | Venice (90 nm SOI) | Sparta (65 mn SOI) |
Socket | Socket 939 | Socket AM2 |
Linux bogomips | 2009 | 4420 |
PassMark | 539 | 541 |
HPL (MFLOPS) | 2,472 | 1,906 |
Result with n=9984: 2,160 MFLOPS
As a test, I re-ran the HPL with a larger n value of 9984, and saw a slightly improved performance. Over three trials I got 2155, 2157, and 2168, with an average of 2,160 MFLOPS.