Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi 3 model B+ #16

Open
geerlingguy opened this issue Feb 27, 2023 · 9 comments
Open

Raspberry Pi 3 model B+ #16

geerlingguy opened this issue Feb 27, 2023 · 9 comments

Comments

@geerlingguy
Copy link
Owner

geerlingguy commented Feb 27, 2023

Focus Stacked Raspberry Pi 3 B Plus

Basic information

Linux/system information

# output of `neofetch`
       _,met$$$$$gg.          pi@pi3 
    ,g$$$$$$$$$$$$$$$P.       ------ 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 11 (bullseye) aarch64 
 ,$$P'              `$$$.     Host: Raspberry Pi 3 Model B Plus Rev 1.3 
',$$P       ,ggs.     `$$b:   Kernel: 5.15.84-v8+ 
`d$$'     ,$P"'   .    $$$    Uptime: 2 mins 
 $$P      d$'     ,    $$P    Packages: 597 (dpkg) 
 $$:      $$.   -    ,d$$'    Shell: bash 5.1.4 
 $$;      Y$b._   _,d$P'      Resolution: 1920x1080 
 Y$$.    `.`"Y$$$$P"'         Terminal: /dev/pts/0 
 `$$b      "-.__              CPU: BCM2835 (4) @ 1.400GHz 
  `Y$$                        Memory: 87MiB / 909MiB 
   `Y$$.
     `$$b.                                            
       `Y$$b.                                         
          `"Y$b._
              `"""

# output of `uname -a`
Linux pi3 5.15.84-v8+ #1613 SMP PREEMPT Thu Jan 5 12:03:08 GMT 2023 aarch64 GNU/Linux

Benchmark results

CPU

Power

  • Idle power draw (at wall): 3.1 W
  • Maximum simulated power draw (stress-ng --matrix 0): 5.6 W
  • During Geekbench multicore benchmark: 5.3 W
  • During top500 HPL benchmark: TODO W

Disk

SanDisk Extreme Pro 32GB A1

Benchmark Result
fio 1M sequential read 23.3 MB/s
iozone 1M random read 22.52 MB/s
iozone 1M random write 20.09 MB/s
iozone 4K random read 6.63 MB/s
iozone 4K random write 3.73 MB/s

curl https://raw.githubusercontent.com/geerlingguy/pi-cluster/master/benchmarks/disk-benchmark.sh | sudo bash

Run benchmark on any attached storage device (e.g. eMMC, microSD, NVMe, SATA) and add results under an additional heading. Download the script with curl -o disk-benchmark.sh [URL_HERE] and run sudo DEVICE_UNDER_TEST=/dev/sda DEVICE_MOUNT_PATH=/mnt/sda1 ./disk-benchmark.sh (assuming the device is sda).

Also consider running PiBenchmarks.com script.

Network

iperf3 results:

Built-in Ethernet

  • iperf3 -c $SERVER_IP: 253 Mbps
  • iperf3 --reverse -c $SERVER_IP: 322 Mbps
  • iperf3 --bidir -c $SERVER_IP: 175 Mbps up, 145 Mbps down

Built-in WiFi

  • iperf3 -c $SERVER_IP: 24.5 Mbps
  • iperf3 --reverse -c $SERVER_IP: 6.32 Mbps
  • iperf3 --bidir -c $SERVER_IP: 0.00 Mbps up, 0.52 Mbps down1

1WiFi seemed to be very unstable when benchmarking on this board. I haven't done too much research into this, but it seemed to lock up every now and then when I was putting it under full load.

GPU

  • TODO: Haven't determined standardized benchmark yet. See Issue #2.

Memory

  • TODO: Haven't determined standardized benchmark yet. See Issue #2.
@geerlingguy
Copy link
Owner Author

To get Geekbench to complete, I had to increase the swap space from 100M to 1024M (fyi).

@ThomasKaiser
Copy link

To get Geekbench to complete, I had to increase the swap space from 100M to 1024M

100M sounds like the standard emergency swap on SD card, right?

Which simply means that Geekbench numbers have to go into the trash and not into a review when the claim is benchmarking the device and not just generating numbers w/o meaning?

BTW: with Geekbench 6 everything got worse (sample standard deviation seems to be higher than before and swapping occurs even on systems with 2 GB RAM now). Geekbench + SBC with less than 4GB RAM -> numbers w/o meaning since you're partially not 'benchmarking' the SBC in question but just the random I/O performance of the device the swap device sits on.

Geekbench 6 numbers on a device with 1GB RAM with swap on an ordinary SD card compared to swap on an A1 card compared to ZRAM will vary greatly. Same with Geekbench 5.5 but to a lower extent.

@ThomasKaiser
Copy link

BTW: geekbench_armv7 (gone with GB6) might run w/o swapping...

@geerlingguy
Copy link
Owner Author

Which simply means that Geekbench numbers have to go into the trash and not into a review when the claim is benchmarking the device and not just generating numbers w/o meaning?

The numbers are not invalid—the single core benchmarks required no swap, and only one of the multi-core tests seemed to dip into swap. The top line numbers have some inconsistency but the fact the benchmark doesn't run under defaults is an interesting point to make. There are other programs I've tried running on Pi 3 B+ and CM3+ that I couldn't run stably due to lack of RAM, so it just illustrates the point.

But that's why I link to the result, too—so people can compare it to other Pi 3 B+ runs on the Geekbench site, and also see the individual test results.

@ThomasKaiser
Copy link

ThomasKaiser commented Mar 2, 2023

There are other programs I've tried running on Pi 3 B+ and CM3+ that I couldn't run stably due to lack of RAM, so it just illustrates the point.

That's mostly due to running a 64-bit userland on these thingies where everything needs almost twice as much RAM as such you run way more likely into swapping. :)

so people can compare it to other Pi 3 B+ runs on the Geekbench site, and also see the individual test results.

People can't compare since you can't search for RPi 3B+ on the Geekbench site. All you can do is to search for either "Raspberry" or "BCM2385" (since for whatever reason most RPi from 2B on report this wrong SoC in /proc/cpuinfo unless it's RPi 4 w/o arm_64bit=1 since only then the correct SoC name is reported). Searching for "BCM2837B0" or "BCM2710" returns 0 hits while "BCM2711" at least returns RPi 4B running a 32-bit kernel.

Then you need to crawl through endless pages and search for "1400" since that's the only easy way to spot RPi 3B**+**.

And then you end up at this for example: https://browser.geekbench.com/v5/cpu/compare/18249926?baseline=20776700

Same device, same software (64-bit kernel and 64-bit userland), maybe different gpu_mem settings since amount of memory differs but this other board which has more memory available than yours shows lower scores. Why?

And there are plently of 3B+ listings which multi-scores below 200 or even 150.

Geekbench doesn't record real clockspeeds (but on RPi 3B**+** the 1400 MHz will be turned silently into 1200 MHz with even moderate loads unless you set temp_soft_limit=80 in config.txt and reboot which ofc nobody knows), Geekbench doesn't report throttling, it doesn't check/report frequency capping (the RPi being silently downclocked to 600 MHz caused by undervolting) and it doesn't report swapping. It just collects numbers be it somewhat representing HW performance or being pure garbage and throws it into a database you can't even search in a reasonable way :)

BTW: that's what the -r and -R sbc-bench modes have been designed to deal with (the latter w/o running own benchmarks, just collecting some info and then switching into monitoring mode and reporting afterwards was has really happened while in another terminal this and that was tested to tell then if and why results are invalid. :)

@github-actions
Copy link

This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!

Please read this blog post to see the reasons why I mark issues as stale.

@platima
Copy link
Contributor

platima commented Nov 26, 2023

Very confused that this says BCM2835 but aarch64... I thought it was ARMv6 (32-bit)?

@geerlingguy
Copy link
Owner Author

geerlingguy commented Nov 26, 2023

@platima - The chip is 64-bit capable. It can also run 32-bit stuff too, it's one of the older designs that can do both native :)

@platima
Copy link
Contributor

platima commented Jan 5, 2024

To get Geekbench to complete, I had to increase the swap space from 100M to 1024M (fyi).

Yeah on a 2GB board I had to kill lightdm to get it to finish without oom reaping the geekbench process. I honestly think we need to run it with swap disabled though to ensure results are more consistent, which might mean sticking to v5?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants