[gambit-list] Comparing RPi's with LINPACK benchmark

Bradley Lucier lucier at math.purdue.edu
Wed Apr 6 22:37:03 EDT 2016


Nothing to do with Gambit, but I thought I’d compare a Raspberry Pi 2 B (RPi2B) with a RPi3B using the linpack double-precision benchmark.

On Rpi2B compiled with

gcc -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -Ofast -o linpackc_new linpackc_new.c

I get

cutie-pi:~> ./linpackc_new 
Enter array size (q to quit) [200]:  200
Memory required:  315K.


LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
      64   0.67  88.31%   2.85%   8.84%  143587.934
     128   1.34  88.31%   2.85%   8.84%  143539.628
     256   2.69  88.26%   2.88%   8.86%  143610.046
     512   5.35  88.28%   2.86%   8.86%  144172.103
    1024  10.70  88.28%   2.86%   8.85%  144153.024

Enter array size (q to quit) [200]:  1000
Memory required:  7824K.


LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 1000 X 1000.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
       1   1.62  96.95%   0.59%   2.46%  106370.268
       2   3.17  97.78%   0.60%   1.62%  107598.577
       4   6.37  97.78%   0.60%   1.61%  107021.647
       8  12.70  97.78%   0.60%   1.62%  107340.380

On RPi3 compiled with

gcc -Ofast -mcpu=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -Ofast -o linpackc linpackc_new.c

I get

sweety-pi:~> ./linpackc
Enter array size (q to quit) [200]:  
Memory required:  315K.


LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
      64   0.53  89.82%   2.83%   7.36%  178548.817
     128   1.06  89.81%   2.83%   7.37%  178628.648
     256   2.13  89.81%   2.82%   7.37%  178550.449
     512   4.25  89.81%   2.82%   7.36%  178541.926
    1024   8.50  89.81%   2.83%   7.37%  178647.415
    2048  17.00  89.81%   2.83%   7.37%  178647.687

Enter array size (q to quit) [200]:  1000
Memory required:  7824K.


LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 1000 X 1000.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
       1   1.02  97.47%   0.61%   1.92%  167558.926
       2   2.08  97.42%   0.73%   1.84%  164153.213
       4   4.06  97.87%   0.61%   1.52%  167576.385
       8   8.13  97.87%   0.61%   1.52%  167558.026
      16  16.26  97.87%   0.61%   1.52%  167568.545

Enter array size (q to quit) [200]:  q

Both compilers are

sweety-pi:~> gcc  --version
gcc (Raspbian 4.9.2-10) 4.9.2


This page:

https://www.raspberrypi.org/magpi/raspberry-pi-3-specs-benchmarks/

says of the Rpi3 "the Broadcom BCM2837 system-on-chip (SoC) includes four high-performance ARM Cortex-A53 processing cores running at 1.2GHz with 32kB Level 1 and 512kB Level 2 cache memory, a VideoCore IV graphics processor, and is linked to a 1GB LPDDR2 memory module on the rear of the board.”  It also says the RAM runs at 900MHz.

It’s funny, but I can’t find a definitive answer about how much cache the RPi2B has, or what the memory speed is.

At any rate, the ratio of KFLOPS for the “small” (200 x 200) problem is 1.243 and the ratio of KFLOPS for the “large” (1000 x 1000) problem is 1.575.

So the RPi3B must have a much more efficient memory system than the RPi2B.

Brad


More information about the Gambit-list mailing list