RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

New OpenGL GLUT Benchmark

Thu Apr 21, 2016 10:17 am

In 2011, I produced a Linux version of my 2004 Windows VideoGL1 benchmark. Its pedigree was established in 2012, when I approved a request from a Quality Engineer at Canonical, to use this OpenGL benchmark in the testing framework of the Unity desktop software. One reason probably was that it can be run for extended periods as a stress test.

The benchmarks has six tests, covering coloured, wireframe and textured objects, identified by the result table headings below. The last test is a real kitchen design application, initially constructed using 23000 straight lines, For details, and performance via Linux, see:

http://www.roylongbottom.org.uk/linux%2 ... hmarks.htm

The benchmark, texture files and source code are available in:

http://www.roylongbottom.org.uk/Raspber ... chmark.zip

A Raspberry Pi 2 with Raspbian-jessie was used, then freeglut3 and freeglut3-dev installed. The benchmark, compiled via a single gcc command, was run using a script file (provided) to carry out the tests at different window sizes. First results are below, where performance was really bad.
The second results are after installing the experimental desktop GL driver and seem to be limited by VSYNC. This was disabled by including an export vblank_mode=0 command in the script file, producing the third set of results below.

Further details and more results are (+will be) in the following, including measurements using the larger textures option and reliability tests.

http://www.roylongbottom.org.uk/Raspber ... #anchor19a

Code: Select all

 GLUT OpenGL Benchmark 32 Bit Version 1, Mon Apr 18 10:01:21 2016

          Running Time Approximately 5 Seconds Each Test

 Window Size  Coloured Objects  Textured Objects  WireFrm  Texture
    Pixels        Few      All      Few      All  Kitchen  Kitchen
  Wide  High      FPS      FPS      FPS      FPS      FPS      FPS

   320   240      9.5      5.4      7.1      3.7      1.5      1.1
   640   480      3.5      2.9      2.8      1.9      1.3      0.7
  1024   768      1.5      1.3      1.3      1.3      1.0      0.4
  1824   984      0.7      0.6      0.6      0.5      0.7      0.2

  After enabling the experimental desktop GL driver

   320   240     49.4     49.4     39.9     24.9     10.0      7.1
   640   480     50.0     49.4     30.1     23.8     10.0      7.1
  1024   768     47.2     45.4     24.7     23.3     10.0      7.0
  1920  1080     18.5     18.2     16.5     15.5      9.8      7.0

  After disabling VSYNC

   320   240    210.3    114.4     52.6     32.5     12.1      7.8
   640   480    115.0     89.5     48.5     30.6     11.9      7.7
  1024   768     47.9     46.7     37.5     28.3     11.6      7.6
  1920  1080     20.6     18.6     16.8     15.9     11.4      7.4

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Thu May 05, 2016 11:07 am

Stress Test Failed On Overclocking

The new OpenGL benchmark was run concurrently with three copies of various number crunching applications, at normal and overclocked CPU settings, with the MHz and temperature also being recorded. Details are included in:

http://www.roylongbottom.org.uk/Raspber ... m#anchor6a

Commands used and results for the worst observations are included below. The script file, containing the commands, would not execute (latest OS problem with lxterminal ?), but copying all and pasting into Terminal ran them all.

The CPU ran continuously at 1000 MHz, and OpenGL at 17 FPS, to start with. As the temperature rose, the benchmark’s display disappeared occasionally, to be replaced by the multi-coloured square, seen on booting. moving the mouse restored the display.

A second run was carried out, on a hotter day, with room temperature around 25'C. This produced more frequent failures, at the higher CPU temperatures (see below). The later lower FPS and temperatures were probably due to continuously moving the mouse.

Note, attempting to run the original OpenGL1PiR.bin benchmark, produced the same display failure with the coloured square (driver or bad code issue?).

Code: Select all

  export vblank_mode=0
  lxterminal -e ./RPiHeatMHz passes 31, seconds 30
  lxterminal -e ./videogl32 Wide 1920, High 1080, Minutes 15
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 1
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 2
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 3


                                 Second Test Difference
  Minutes  MHz    FPS     'C     FPS     'C     'C

       0                 51.9           53.5    1.6
     0.5   1000     17   71.3      17   72.4    1.1
     1.0   1000     17   74.5      17   75.6    1.1
     1.5   1000     17   75.6      17   76.7    1.1
     2.0   1000     17   77.2      17   78.8    1.6
     2.5   1000     17   79.4      17   81.0    1.6
     3.0   1000     17   77.7      16   79.4    1.7
     3.5   1000     17   79.9      17   81.0    1.1
     4.0   1000     17   79.9      17   81.0    1.1
     4.5   1000     17   81.0      17   82.0    1.0
     5.0   1000     17   83.1      17   85.3    2.2
     5.5   1000     17   84.2      16   84.2    0.0
     6.0   1000     17   83.1      17   84.2    1.1
     6.5   1000     17   83.7      17   84.2    0.5
     7.0   1000     17   85.3      17   84.2   -1.1
     7.5   1000     18   83.1      17   84.2    1.1
     8.0   1000     17   83.1      17   83.1    0.0
     8.5   1000     17   83.7      17   83.1   -0.6
     9.0   1000     17   83.1      17   83.7    0.6
     9.5   1000     17   82.6      17   84.7    2.1
    10.0   1000     17   83.7      16   83.1   -0.6
    10.5   1000     16   82.6      16   85.3    2.7
    11.0   1000     17   85.3      16   84.2   -1.1
    11.5   1000     17   85.3      16   83.7   -1.6
    12.0   1000     17   84.2      16   83.1   -1.1
    12.5   1000     16   84.2      16   83.1   -1.1
    13.0   1000     17   84.2      16   84.7    0.5
    13.5   1000     17   84.2      16   83.1   -1.1
    14.0   1000     17   83.1      16   84.2    1.1
    14.5   1000     17   78.8      16   84.7    5.9
    15.0   1000     17   75.6      16   82.0    6.4
    15.5    600          63.8           69.1    5.3

  Maximum                85.3           85.3
  Standalone       17.2


dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Thu May 05, 2016 11:10 am

RoyLongbottom wrote: The CPU ran continuously at 1000 MHz, and OpenGL at 17 FPS, to start with. As the temperature rose, the benchmark’s display disappeared occasionally, to be replaced by the multi-coloured square, seen on booting. moving the mouse restored the display.
Multi-coloured square is the under-voltage warning. You need a better power supply.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Thu May 05, 2016 2:34 pm

> Multi-coloured square is the under-voltage warning. You need a better power supply <.

Power supply is (said to be) Micro USB Power Supply 5V 2A 10W, ordered from RS Component, along with Pi 2, February 2015. Keyboard and mouse are the only USB connections.

On the stress test, the problem occurs with rising temperatures, after at least 5 minutes. The stress test runs with no problems at 900 MHz but the older OpenGL ES benchmark still produces that coloured square.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Tue May 10, 2016 11:20 am

dom wrote:
RoyLongbottom wrote: The CPU ran continuously at 1000 MHz, and OpenGL at 17 FPS, to start with. As the temperature rose, the benchmark’s display disappeared occasionally, to be replaced by the multi-coloured square, seen on booting. moving the mouse restored the display.
Multi-coloured square is the under-voltage warning. You need a better power supply.
I also have a 5V 2.5A power supply for a tablet. Using this also lead to the same failures (reminder - on overclocking). The next step was to obtain the following USB multimeter, to see if it identified any overloading.

https://www.amazon.co.uk/dp/B00J4H5I3E/ ... E_AMZLdp_1

This has USB 2 ports in and out and I am awaiting delivery of a micro USB to USB 2 converter connector to try it with the RPi power supply. The 2.5A PS cable is via a USB 2 cable, enabling tests to be carried out.

Following are results from 15 minute tests, also for a 1.5A PS at 1000 MHz and 900 MHz. The 1.5A 900 MHz test ran successfully at 15 FPS, with maximum temperature of 82'C. At 1 GHz both failed as the temperature reached around 84'C at 17 FPS. Of interest, with that coloured square displayed continuously, the graphics program still ran but recorded 19 FPS.

This morning I booted with the 1.5A PS at 900 MHz, heating it further with a lamp. This also produced the failure after 5 minutes, as the temperature exceeded 84'C. Removing the lamp, it completed the tests with no more failures.

So, with my tests, the issue appears to be temperature related, not a power supply issue.

Code: Select all

                          Volts    Amps
  2.5A PS 1000 MHz

  Power on                5.14   0.30
  VideoGL32 only          5.14   0.47 to 0.56
  3 x Livermore Loops     5.13   0.50 to 0.58
  VideoGL32 and Loops     5.12   0.71 to 0.75


  1.5A PS 900 MHz

  Power on                5.04   0.29
  VideoGL32 only          5.05   0.44 to 0.48
  VideoGL32 and Loops     5.05   0.59 to 0.65


  1.5A PS 1000 MHz

  Power on                5.04   0.30
  VideoGL32 only          5.06   0.47 to 0.53
  VideoGL32 and Loops     5.06   0.66 to 0.75


pwinwood
Posts: 74
Joined: Mon Jul 02, 2012 2:21 am
Location: Oxford, England

Re: New OpenGL GLUT Benchmark

Wed Jun 15, 2016 8:34 pm

RoyLongbottom wrote:
dom wrote:
RoyLongbottom wrote: The CPU ran continuously at 1000 MHz, and OpenGL at 17 FPS, to start with. As the temperature rose, the benchmark’s display disappeared occasionally, to be replaced by the multi-coloured square, seen on booting. moving the mouse restored the display.
Multi-coloured square is the under-voltage warning. You need a better power supply.
I think you also need to put an oscilloscope on the supply rails to check on power supply noise.
In my experience a noisy power supply can cause rainbow squares.
A USB voltage indicator is not usually fast enough reacting to show power supply noise.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Thu Jun 16, 2016 10:05 am

I think you also need to put an oscilloscope on the supply rails to check on power supply noise.
In my experience a noisy power supply can cause rainbow squares.
A USB voltage indicator is not usually fast enough reacting to show power supply noise.
I suppose that it could also be a power surge that you might miss on an oscilloscope. I obtained appropriate micro USB to USB 2 converters for the meter and ran the tests using the official RPi power supply, with repeated tests on this and other ones. In all cases, failures did not occur until the temperature reached around 84'C. Also, the test programs continued running with graphics temporarily disabled.

I am not saying that low voltage or power supply noise could not produce the same effects.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Tue Jun 21, 2016 10:50 am

Raspberry Pi 3 Results

The Raspbian Micro SD card, produced for the RPi 2, was used to boot a new RPi 3 system. The OpenGL GLUT Benchmark was run, producing the following results, via the experimental desktop GL driver with VSYNC disabled. RPi 2 scores are repeated, for comparison purposes. The RPi 3 was more than 70% faster on all the more complex kitchen tests but, on the other ones, it varied from an average of 55%, with small windows, to 7% full screen.

I have run some preliminary Stress Tests (RPi 3 overclocking is not provided) and higher temperatures than overclocked RPi 2 were recorded, with those blank screen/rainbow squares being produced even without the OpenGL program being run. I will provide details later.

Code: Select all

 GLUT OpenGL Benchmark 32 Bit Version 1, Tue Jun 21 10:44:27 2016

          Running Time Approximately 5 Seconds Each Test

 Window Size  Coloured Objects  Textured Objects  WireFrm  Texture
    Pixels        Few      All      Few      All  Kitchen  Kitchen
  Wide  High      FPS      FPS      FPS      FPS      FPS      FPS

   320   240    302.1    180.8     82.4     52.9     21.4     13.6
   640   480    127.7    116.2     73.7     49.0     21.7     13.6
  1024   768     55.0     51.7     41.9     38.4     21.4     13.4
  1920  1080     22.2     18.6     18.3     17.5     19.7     13.1

  Raspberry Pi 2 Results

   320   240    210.3    114.4     52.6     32.5     12.1      7.8
   640   480    115.0     89.5     48.5     30.6     11.9      7.7
  1024   768     47.9     46.7     37.5     28.3     11.6      7.6
  1920  1080     20.6     18.6     16.8     15.9     11.4      7.4

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Sat Jun 25, 2016 1:26 pm

Raspberry Pi 3 Stress Test

As reported above for the overclocked Raspperry Pi 2, running stress tests, comprising the new OpenGL GLUT Benchmark and three floating point programs (Livermore Loops), lead to the display often being replaced by a square of rainbow colours (Click and Correct).

Using the same Operating System (2016-03-18-raspbian-jessie) and experimental desktop GL driver, the Rasperry Pi 3 (not overclocked) reproduced the failures too frequently to complete the test. The Livermore programs comprise 24 loops, repeated three times with different parameters, need the run time of each test defined, in this case 12 seconds for an overall test of nearly 15 minutes. The performance results are produced at the end, with none if prematurely terminated. The OpenGL program (in all cases) continued reporting around 17 FPS (when displaying). Recorded temperatures for the RPi 2 are repeated below, along with full summary performance details. The latter shows that speed was not affected much by CPU temperature.

A later OS (2016-05-27-raspbian-jessie) was installed on a different Micro SD card, along with the new GL driver (seems to be the same version, but is it?). This stress test was repeated and ran without interruption, with continuous full OpenGL FPS but, as reflected in performance details (below), at an overall slower rate (in this case similar to the overclocked RPi 2).

The temperature monitoring program also measures CPU MHz (via /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq). This reported 1200 MHz continuously and 600 MHz when no programs are running. So, is this the wrong MHz to measure or are the speed reductions through introducing such as execution delays.

I am currently running another stress test that provides details of performance variations over the sampling periods.

Code: Select all

  Running OpenGL Benchmark and Three Floating Point Programs

                   Hotter  Old OS  New OS
                    Room
            Rpi 2   Rpi 2   Rpi 3   Rpi 3
            Run 1   Run 2
       MHz   1000    1000    1200    1200
       FPS     17      17      17      17

   Minutes     'C      'C      'C      'C

         0   51.9    53.5    49.4    52.1
       0.5   71.3    72.4    66.6    69.3
       1.0   74.5    75.6    73.1    75.8
       1.5   75.6    76.7    76.8    78.4
       2.0   77.2    78.8    80.1    82.2
       2.5   79.4    81.0    81.7    82.7
       3.0   77.7    79.4    81.7    83.8
       3.5   79.9    81.0    82.2    82.7
       4.0   79.9    81.0    82.7    82.7
       4.5   81.0    82.0    80.1    83.8
       5.0   83.1    85.3    80.6    83.3
       5.5   84.2    84.2    Stop    83.8
       6.0   83.1    84.2            84.4
       6.5   83.7    84.2            85.4
       7.0   85.3    84.2            84.4
       7.5   83.1    84.2            84.4
       8.0   83.1    83.1            84.9
       8.5   83.7    83.1            84.9
       9.0   83.1    83.7            84.9
       9.5   82.6    84.7            84.4
      10.0   83.7    83.1            83.8
      10.5   82.6    85.3            84.9
      11.0   85.3    84.2            82.7
      11.5   85.3    83.7            84.9
      12.0   84.2    83.1            83.3
      12.5   84.2    83.1            83.3
      13.0   84.2    84.7            83.8
      13.5   84.2    83.1            84.9
      14.0   83.1    84.2            84.9
      14.5   78.8    84.7            84.9
      15.0   75.6    82.0            82.7
      15.5   63.8    69.1

   Maximum   85.3    85.3    82.7    85.4

           MFLOPS  MFLOPS  MFLOPS  MFLOPS
  Per Core
  Maximum   242.9   240.0    N/A    388.5
  Average   147.1   141.8           140.7
  Geomean   134.0   129.1           121.3
  Harmean   118.9   114.2           102.8
  Minimum    38.9    33.2            33.4

  Stand Alone
  Maximum   244.9   244.9           398.4
  Average   150.7   150.7           210.7
  Geomean   138.2   138.2           186.0
  Harmean    46.7    46.7            56.6
]

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Sat Jun 25, 2016 3:40 pm

RoyLongbottom wrote: The temperature monitoring program also measures CPU MHz (via /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq). This reported 1200 MHz continuously and 600 MHz when no programs are running. So, is this the wrong MHz to measure or are the speed reductions through introducing such as execution delays.
Use "vcgencmd measure_clock arm" to be sure of the clock frequency.
But if you get rainbow square then you are under-voltage and there is no point running benchmarks until a better power supply is used.
Use "vcgencmd get_throttled" to see the exact reason. Interpretation of output here.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Thu Jun 30, 2016 11:24 am

dom wrote: Use "vcgencmd measure_clock arm" to be sure of the clock frequency.
Thanks, I will use that now. I think that scaling_cur_freq used to produce the same results.
dom wrote:But if you get rainbow square then you are under-voltage and there is no point running benchmarks until a better power supply is used.
I repeat (again) that the problem only occurs using the experimental desktop GL driver under 2016-03-18-raspbian-jessie and not without the driver being enabled, nor on any tests under 2016-05-27-raspbian-jessie, including using different power supplies rated as low as 1.5 amps.

Also, the CPUs continue running the benchmarks, including the OpenGL test, when the main display disappears. The latter can be restored temporarily by moving the mouse where, along with the complete saved logs, display all results.

The older OS display failures also occur without the OpenGL benchmark, running four copies of my burninfpuPiA7 maximum MFLOPS stress test, (shows how performance changes with time - see below) with full results for one stress program, performance of the other three, plus measured temperature and CPU MHz. On the FP program measurements, the ratio MFLOPS/MHz was around 1.37 in all cases. The failures occurred when the temperature exceeded 80 'C where, later, multiple different coloured rectangles were displayed. The test was terminated manually after 10 minutes.

Code: Select all

 4 CPU Tests Old OS, Driver Enabled - Failed continuously when temperature exceeded 
 80'C. Renewed display temporarily by moving mouse. Terminated after 10 minutes. 

     Burn-In-FPU Linux/ARM A7 v1.0 Sat Jun 25 22:26:57 2016

     Using 16 KBytes, 8 Operations Per Word, 15 Seconds Per Pass

                                                    Prog2 Prog3 Prog4
 Pass  4 B Ops Repeat   Secs MFLOPS    First    All ----- MFLOPS ----    'C    MHz
       Wds /Wd Passes                 Results  Same                     
    0                                                                   60.1  1200
    1 4000  8  740000  15.08  1571 0.540749788  Yes  1583  1623  1569   69.8  1200
    2 4000  8  740000  14.56  1626 0.540749788  Yes  1648  1635  1621   74.7  1200
    3 4000  8  740000  14.55  1627 0.540749788  Yes  1648  1654  1598   76.8  1200
    4 4000  8  740000  14.57  1625 0.540749788  Yes  1644  1648  1643   79.5  1200
    5 4000  8  740000  14.44  1640 0.540749788  Yes  1635  1629  1613   81.1  1200
    6 4000  8  740000  15.52  1525 0.540749788  Yes  1515  1501  1487   81.1  1128
    7 4000  8  740000  16.60  1427 0.540749788  Yes  1417  1411  1395   81.7  1052
    8 4000  8  740000  17.29  1369 0.540749788  Yes  1357  1348  1329   82.2  1020
    9 4000  8  740000  17.93  1320 0.540749788  Yes  1311  1298  1292   82.7   971
   10 4000  8  740000  18.19  1302 0.540749788  Yes  1292  1274  1294   82.7   953
   11 4000  8  740000  18.41  1287 0.540749788  Yes  1278  1258  1278   83.3   920
   12 4000  8  740000  18.69  1267 0.540749788  Yes  1254  1227  1254   83.3   903
   13 4000  8  740000  19.15  1237 0.540749788  Yes  1225  1200  1224   82.7   881
   14 4000  8  740000  19.35  1224 0.540749788  Yes  1211  1180  1214   83.8   884
   15 4000  8  740000  19.60  1208 0.540749788  Yes  1197  1170  1198   83.3   865
   16 4000  8  740000  19.78  1197 0.540749788  Yes  1187  1158  1189   82.7   860
   17 4000  8  740000  20.14  1176 0.540749788  Yes  1166  1136  1170   83.8   831
   18 4000  8  740000  20.21  1172 0.540749788  Yes  1160  1137  1163   83.8   851
   19 4000  8  740000  20.21  1172 0.540749788  Yes  1161  1162  1163   83.8   857
   20 4000  8  740000  20.40  1161 0.540749788  Yes  1171  1158  1171   83.3   844
   21 4000  8  740000  20.54  1153 0.540749788  Yes  1157  1158  1156   83.8   845
   22 4000  8  740000  20.52  1154 0.540749788  Yes  1156  1134  1149   83.8   841
   23 4000  8  740000  21.20  1117 0.540749788  Yes  1128  1142  1131   83.8   826
   24 4000  8  740000  20.94  1131 0.540749788  Yes  1126  1144  1106   83.8   839
   25 4000  8  740000  20.86  1135 0.540749788  Yes  1134  1147  1132   83.8   826
   26 4000  8  740000  20.80  1139 0.540749788  Yes  1136  1144  1133   83.3   816
   27 4000  8  740000  20.85  1136 0.540749788  Yes  1131  1144  1132   83.8   820
   28 4000  8  740000  20.81  1138 0.540749788  Yes  1132  1130  1132   83.8   804
   29 4000  8  740000  21.09  1123 0.540749788  Yes  1094  1131  1115   83.8   828
   30 4000  8  740000  21.08  1124 0.540749788  Yes  1114  1122  1123   83.8   808
   31 4000  8  740000  21.74  1089 0.540749788  Yes  1111  1118  1113   83.8   817
   32 4000  8  740000  22.10  1072 0.540749788  Yes  1113  1121  1107   84.4   815
   33 4000  8  740000  21.69  1092 0.540749788  Yes  1114  1116  1110   83.8   786
   34 4000  8  740000  21.73  1090 0.540749788  Yes  1108  1189  1099   83.8   814

  Total Seconds          651                          654   673   650
Following are results of successful runs (same power supply as above), comprising using 2016-03-18-raspbian-jessie with no GLUT driver, 2016-03-18-raspbian-jessie with driver installed , but not enabled, and 2016-05-27-raspbian-jessie with driver enabled, respectively producing temperatures/MHz of 81.7/1099, 82.2/945 and 83.8/882 after 8 minutes, compared with 84.4/815 for the above failing test.

Code: Select all

  4 CPU Tests - All Successful - Above Failed Old OS with Driver Enabled
 
           New OS                Old OS                Old OS
           Driver Enabled        No Driver             Driver Installed

                       1 Test                1 Test                1 Test
  Minute     'C    MHz MFLOPS      'C    MHz MFLOPS      'C    MHz MFLOPS

       0   56.4   1200           42.9   1200           53.7   1200
       1   75.8   1200   1661    63.9   1200   1640    73.1   1200   1657
       2   81.1   1125   1597    69.8   1200   1655    79.5   1200   1657
       3   82.2   1015   1407    73.6   1200   1657    81.1   1088   1517
       4   82.7    962   1333    76.3   1200   1653    81.7   1035   1443
       5   82.7    938   1272    77.9   1200   1649    82.2   1007   1391
       6   82.7    919   1251    80.1   1200   1665    82.2    972   1340
       7   82.7    905   1236    80.6   1146   1652    82.2    975   1340
       8   83.8    882   1211    81.7   1099   1568    82.2    945   1303
       9   83.8    886   1201    81.7   1075   1536    82.2    939   1298
      10   83.8    858   1190    81.7   1056   1500    82.7    934   1287
      11   83.3    856   1182    81.7   1035   1446    82.7    933   1278
      12   83.3    887   1295    81.7   1039   1452    82.7    933   1272
      13   82.2    942   1296    81.7   1015   1438    82.7    912   1262
      14   82.2    924   1296    82.2   1002   1426    82.7    913   1259
      15   82.7    936   1270    82.2    991   1414    82.7    906   1253
      16   82.7    927   1149    82.2   1001   1400    83.3    916   1239

    Min            856   1149            991   1400            906   1239
    Max    83.8                  82.2                  83.3
Finally, tests were run using three copies of burninfpuPiA7 plus the OpenGL benchmark. Using 2016-03-18-raspbian-jessie, a three minute test was run without intervention, the rainbow display being produced after less than 90 seconds. Then the CPU kept the program running OpenGL at a faster rate of 20 FPS. The successful run, using 2016-05-27-raspbian-jessie, demonstrate a slight slow down with OpenGL, with somewhat higher temperature than 4 CPU tests and the usual automatic decrease in CPU MFLOPS as temperature increased.

Code: Select all

          3 burninfpuPiA7 CPU Tests and OpenGL Benchmark

         Old OS 3 Minute Test Failed   New OS Successful

                             1 Test                      1 Test
 Seconds   FPS     'C    MHz MFLOPS    FPS     'C    MHz MFLOPS

      0          57.5   1200                 52.1   1200
     30     10   72.0   1200   1663      7   67.7   1200   1644
     60     17   79.0   1200   1653     18   74.1   1200   1642
     90     20   82.2   1015   1439     18   78.4   1200   1640
    120     20   83.3    889   1233     18   80.6   1128   1594
    150     20   83.8    819   1118     18   82.2   1008   1354
    180     20   84.4    790   1438     17   82.7    958   1302
    210                                 17   82.7    913   1221
    240                                 18   83.8    881   1174
    270                                 18   83.3    850   1151
    300                                 18   83.8    819   1061
    330                                 17   83.8    793   1055
    360                                 17   83.8    772   1090
    390                                 18   83.8    764   1069
    420                                 18   84.9    755   1005
    450                                 18   84.4    723    978
    480                                 17   84.9    733    958
    510                                 17   84.9    727    976
    540                                 17   84.9    715    955
    570                                 17   84.9    716    966
    600                                 17   84.9    729    992
    630                                 17   82.7    600    956
    660                                 17   83.8    875    952
    690                                 17   84.9    711    920
    720                                 16   84.4    785    923
    750                                 17   84.9    715    915
    780                                 16   83.8    600    904
    810                                 16   82.7    600    939
    840                                 16   84.9    704    942
    870                                 16   84.9    716    910
    900                                 16   82.7    699    888

   Max           84.4                        84.9
   Min                   790   1118                  600    888
dom wrote:Use "vcgencmd get_throttled" to see the exact reason
That did not work using the older 2016-03-18-raspbian-jessie.

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Thu Jun 30, 2016 12:45 pm

RoyLongbottom wrote:Thanks, I will use that now. I think that scaling_cur_freq used to produce the same results.
No, scaling_cur_freq won't include throttling.
That did not work using the older 2016-03-18-raspbian-jessie.

Code: Select all

sudo apt-get update && sudo apt-get dist-upgrade
will get you up to date.
No point benchmarking out of date software, and no point benchmarking if you may be being throttled.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Wed Jul 13, 2016 10:45 am

No point benchmarking out of date software,
2016-03-18-raspbian-jessie was released a month after RPi 3 launch, hardly out of date. The display problems were reproduced using the experimental OpenGL driver. Strange, I needed to install another copy of this version of Raspbian and that would not let me install/enable that driver.

My numerous RPi CPU benchmarks don’t seem to care whether the OS is old or new but some depend on newer hardware features.
and no point benchmarking if you may be being throttled
I agree, if that benchmark is intended to measure maximum performance.. However, maximum legitimate loading can be a user requirement. If that reduces throughput, the user needs to know. In the rare event of someone needing to run heavy processing, for a long time, on all four cores of a RPi 3, other precautions might be necessary. Firstly, I would avoid installing that experimental OpenGL driver, as that increase heating, even when not displaying OpenGL programs. Then, a better case with superior cooling arrangements might be needed.

User avatar
Doc Watson
Posts: 5
Joined: Fri Jun 10, 2016 8:12 pm

Re: New OpenGL GLUT Benchmark

Thu Sep 08, 2016 6:32 pm

Did you get the copper heat sinks I sent you Roy?

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Thu Sep 08, 2016 10:57 pm

Doc Watson wrote:Did you get the copper heat sinks I sent you Roy?
Yes, thanks. I will post some results soon.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Sat Sep 24, 2016 4:04 pm

I have run some of my stress tests on the Raspberry Pi 3, with three different heatsinks, comprising the old one supplied with the kit, Black - latest from Pi Hut in September 2016, and Copper - Enzotech BMR-C1 kindly supplied by you (Doc Watson), again in September. I ran the CPU only floating point and integer stress tests, available in the zip file with full details in the htm report::

http://www.roylongbottom.org.uk/Raspber ... _Tests.zip
http://www.roylongbottom.org.uk/Raspber ... 0Tests.htm

The table below shows CPU temperature and MHz, plus benchmark MFLOPS. Four copies were run at the same time, each essentially obtaining the same speed.

Code: Select all

          Old Heatsink          Black Heatsink        Copper Heatsink

                       1 Core                1 Core                1 Core
  Minute    °C     MHz MFLOPS     °C     MHz MFLOPS     °C     MHz MFLOPS

       0   47.2   1200           44.0   1200           46.2   1200
       1   67.1   1199   1729    65.0   1200   1731    65.0   1200   1726
       2   74.7   1200   1725    71.4   1200   1729    72.5   1199   1727
       3   78.4   1200   1725    76.3   1200   1731    77.4   1200   1732
       4   81.1   1133   1658    79.5   1200   1734    80.6   1157   1725
       5   81.1   1051   1530    81.7   1132   1637    81.7   1044   1532
       6   81.7   1011   1471    81.7   1058   1538    81.7   1005   1459
       7   82.2   1004   1430    80.6   1042   1489    82.2    976   1408
       8   82.2    978   1392    82.2   1011   1467    82.2    966   1374
       9   82.7    942   1360    82.2    976   1429    82.7    935   1344
      10   82.7    939   1341    82.2    985   1407    82.7    939   1331
      11   82.7    930   1327    82.7    963   1381    82.7    922   1320
      12   83.3    904   1309    82.2    939   1353    83.3    892   1302
      13   82.7    892   1290    82.7    936   1339    83.3    895   1292
      14   83.3    877   1269    82.7    915   1315    83.3    878   1267
      15   83.8    872   1253    82.7    910   1321    83.3    873   1267

    min    67.1    872   1253    65.0    910   1315    65.0    873   1267
    max    83.8   1200   1729    82.7   1200   1734    83.3   1200   1732
   Loss
    %             27.3   27.5           24.2   24.2           27.3   26.8
For comparison purposes, the MFLOPS speed is the most reliable, representing the average over at least 15 seconds, at the minute intervals. CPU MHz (I believe) is an instantaneous measurement that can go up and down during the test period. All tests suffered from CPU throttling of more than 24%. Black was the least sufferer, but it did start with the CPU a little cooler.

The htm report also contains details of some integer stress tests, plus further floating point tests, where single core speed was increased to nearly 3 GFLOPS, using Black and Copper heatsinks, then the latter without the case cover. The heatsinks again provided similar performance, with more throttling, but there was still throttling with no cover (21% v 34%).

I also have an Android tablet, that uses an ARM Cortex-A53 CPU. I was surprised that this did not indicate throttling, running the same test functions. It seems that the Raspberry Pi’s Broadcom BCM2837 version is manufactured using the 40 nm process, the tablet having a cooler Snapdragon implementation with 0.28 nm lithography.

Note that the above is a stress testing exercise, possibly only of interest to those considering running programs at near maximum speed, using all four cores for at least several minutes.

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Thu Sep 29, 2016 3:40 pm

RoyLongbottom wrote:I have run some of my stress tests on the Raspberry Pi 3, with three different heatsinks, comprising the old one supplied with the kit, Black - latest from Pi Hut in September 2016, and Copper - Enzotech BMR-C1
You might want to try with the FLIRC case.
I'm not quite sure what you were running but when I run:

Code: Select all

  export vblank_mode=
  lxterminal -e ./RPiHeatMHz passes 31, seconds 30
  lxterminal -e ./videogl32 Wide 1920, High 1080, Minutes 15
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 1
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 2
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 3
I only reach a maximum of 62'C after 15 minutes, so no throttling.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Fri Sep 30, 2016 10:24 am

dom wrote:
RoyLongbottom wrote:I have run some of my stress tests on the Raspberry Pi 3, with three different heatsinks, comprising the old one supplied with the kit, Black - latest from Pi Hut in September 2016, and Copper - Enzotech BMR-C1
You might want to try with the FLIRC case.
I'm not quite sure what you were running but when I run:

Code: Select all

  export vblank_mode=
  lxterminal -e ./RPiHeatMHz passes 31, seconds 30
  lxterminal -e ./videogl32 Wide 1920, High 1080, Minutes 15
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 1
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 2
  lxterminal -e ./liverloopsPiA7R Seconds 12 Log 3
I only reach a maximum of 62'C after 15 minutes, so no throttling.
Your 62°C indicates that, either my RPi3 is a duff one, or the commands weren’t running all the programs. These should all be in the same folder, with Execution Properties enabled. Executing the script file does not work anymore. So, all the the commands have to be copied to the Terminal. The next problem is that, with the OpenGL program filling the screen, it might not be possible to be aware that all the other programs are actually running.

Then it is all my fault for not including the new OpenGL test program with all the other stress tests. I gave up running it as the CPU programs generated more heat. Perhaps you could run the commands in 4fpul1a.sh, after enabling Execution Properties of the two programs, from

http://www.roylongbottom.org.uk/Raspber ... _Tests.zip

Code: Select all

4fpul1a.sh,

lxterminal --geometry=80x15 -e ./RPiHeatMHz passes 63, seconds 15
lxterminal --geometry=80x15 -e ./burninfpuPi2 Kwds 4 Sect 2 Mins 15 Log 11
lxterminal --geometry=80x15 -e ./burninfpuPi2 Kwds 4 Sect 2 Mins 15 Log 12
lxterminal --geometry=80x15 -e ./burninfpuPi2 Kwds 4 Sect 2 Mins 15 Log 13
lxterminal --geometry=80x15 -e ./burninfpuPi2 Kwds 4 Sect 2 Mins 15 Log 14
Then five more Terminals should be opened and, after shuffling some around, it should be clear what is running and any changes in CPU MHz and floating point MFLOPS. When finished, the results should be in five text based logs.

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Sat Oct 01, 2016 7:12 pm

RoyLongbottom wrote:Then five more Terminals should be opened and, after shuffling some around, it should be clear what is running and any changes in CPU MHz and floating point MFLOPS. When finished, the results should be in five text based logs.
Tried again with updated zip file. Peaked at 73'C.
Note, the difference is the case, not the Pi. The FLIRC case is a *very* effective heat sink.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Sat Oct 01, 2016 9:25 pm

dom wrote:
RoyLongbottom wrote:Then five more Terminals should be opened and, after shuffling some around, it should be clear what is running and any changes in CPU MHz and floating point MFLOPS. When finished, the results should be in five text based logs.
Tried again with updated zip file. Peaked at 73'C.
Note, the difference is the case, not the Pi. The FLIRC case is a *very* effective heat sink.
Thanks. I will try one, but you should have quoted logged benchmark MFLOPS to be totally convincing. I ran those tests with no covers on and the temperature nearly reached 83°C with MFLOPS reducing by 22%.

Just ordered one!

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5171
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: New OpenGL GLUT Benchmark

Sun Oct 02, 2016 11:29 am

The desktop is still open, but the terminals have closed. However:

Code: Select all

$ vcgencmd get_throttled
throttled=0x0
convinces me that no throttling occurred.

RoyLongbottom
Posts: 222
Joined: Fri Apr 12, 2013 9:27 am
Location: Essex, UK
Contact: Website

Re: New OpenGL GLUT Benchmark

Fri Oct 07, 2016 2:44 pm

Raspberry Pi 3 No Longer Stressed

My FLIRC case was delivered this week and I installed my RPi 3 board. This is screwed to the aluminium cover, where a protrusion is clamped to the CPU and the whole case acts as a heatsink. I have rerun all my stress tests that showed significant performance degradation due to the CPU MHz being throttled at high temperatures.

Livermore Loops x 3 and OpenGL

viewtopic.php?p=1000184#p1000184

This was the first series of stress test programs that demonstrated high temperatures and slow performance. At that time, CPU MHz was not properly recorded and, as the performance of the floating point programs is not calculated until the end, speed changes by time could not be seen. Results are repeated below, along with those using the FLIRC case.

During the original tests, temperatures rose quickly to more than 82°C and final average (Geomean) MFLOPS of each Loops program was 35% less than that for a stand alone run. The latest results produced maximum temperatures of just over 71°C and effectively full speed operation

Code: Select all

 
3 x Livermore Loops + OpenGL

 Stand alone 186 MFLOPS

    Case     Old   FLIRC

 Minutes      °C      °C

       0    52.1    52.1
     0.5    69.3    61.2
     1.0    75.8    62.8
     2.0    82.2    64.5
     4.0    82.7    66.1
     6.0    84.4    69.3
     8.0    84.9    68.8
    10.0    83.8    71.4
    12.0    83.3    70.4

 MFLOPS      121     182
                            
    FPS       17      18
Later exercises demonstrated that throttling could also occur when running four CPU programs, where all terminal windows can show varying performance. The last one showed that there was little difference using three different heatsinks,

Four Floating Point Programs

viewtopic.php?p=1042027#p1042027

As shown below, repeating this test script produced much lower temperatures, maximum 67.1°C compared with 83.3°C, with constant CPU MHz and essentially constant measured MFLOPS.

Code: Select all

 
 4 x burninfpuPiA7, each obtaining similar MFLOPS   

            Copper Heatsink         FLIRC Case
                          1 Core                  1 Core
  Minute      °C     MHz  MFLOPS      °C     MHz  MFLOPS

       0    46.2    1200            47.8    1200
       1    65.0    1200    1726    60.1    1200    1733
       2    72.5    1199    1727    61.8    1200    1737
       3    77.4    1200    1732    62.3    1200    1736
       4    80.6    1157    1725    63.4    1199    1729
       5    81.7    1044    1532    63.4    1200    1721
       6    81.7    1005    1459    64.5    1200    1725
       7    82.2     976    1408    64.5    1200    1738
       8    82.2     966    1374    65.0    1200    1720
       9    82.7     935    1344    65.5    1200    1737
      10    82.7     939    1331    65.5    1200    1736
      11    82.7     922    1320    66.1    1200    1735
      12    83.3     892    1302    66.6    1200    1730
      13    83.3     895    1292    66.6    1200    1737
      14    83.3     878    1267    67.1    1200    1726
      15    83.3     873    1267    Finished


Return to “OpenGLES”