Out of interest, I just bought a Raspberry Pi 3 Model B+ to play around with. The new Pi system has a number of improvements over the previous model, including improved cooling and a bumped up CPU which is now:
- SoC: Broadcom BCM2837B0 quad-core A53 (ARMv8) 64-bit @ 1.4GHz
Having onboard wifi means you can just connect it to power (5V, 2.5A) after initial config and wirelessly login via SSH or VNC without using a USB dongle or any other connected devices. This makes it a tidy little box for a media server or a portable little sandbox server for PHP/python development.
To disable the automatic GUI / login on boot, run raspi-config and change Boot Options > B1 Desktop / CLI to "B1 Console".
After reading some benchmarks, I tried replicating some of them with both the 2018, passive-cooled ARM based Quad Core Pi @ 1.4Ghz running Raspbian and the late 2005, air-cooled Dual Core PowerPC (970mp) G5 @ 2.3Ghz running Ubuntu Mate.
Code:
pi:~ $ uname -a
Linux 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l GNU/Linux
Code:
g5:~ $ uname -a
Linux 4.4.0-116-powerpc64-smp #140-Ubuntu SMP Mon Feb 12 22:00:40 UTC 2018 ppc64 ppc64 ppc64 GNU/Linux
Sysbench (0.4.12) CPU Benchmark
(Thread count has been matched to the number of cores)
Code:
pi:~ $ sysbench --test=cpu --num-threads=4 run
...
Test execution summary:
total time: 33.8234s
total number of events: 10000
total time taken by event execution: 135.2127
...
Code:
g5:~ $ sysbench --test=cpu --num-threads=2 run
...
Test execution summary:
total time: 31.9690s
total number of events: 10000
total time taken by event execution: 63.9280
...
CPU Benchmark Results:
Pi CPU Test: 33.82 seconds
----------
G5 CPU Test: 31.96 seconds
Lower results are better. As you can see, the mighty G5 is only slightly quicker (~5.5%) than the little Pi!
Sysbench Memory Benchmarks (READ/WRITE)
Pi Memory Read
Code:
pi:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
...
Operations performed: 2097152 (870860.93 ops/sec)
2048.00 MB transferred (850.45 MB/sec)
Test execution summary:
total time: 2.4081s
total number of events: 2097152
total time taken by event execution: 1.7553
...
Pi Memory Write
Code:
pi:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
...
Operations performed: 2097152 (652977.86 ops/sec)
2048.00 MB transferred (637.67 MB/sec)
Test execution summary:
total time: 3.2117s
total number of events: 2097152
total time taken by event execution: 2.5592
...
G5 Memory Read
Code:
g5:~ $ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run
...
Operations performed: 2097152 (1202025.79 ops/sec)
2048.00 MB transferred (1173.85 MB/sec)
Test execution summary:
total time: 1.7447s
total number of events: 2097152
total time taken by event execution: 1.1654
...
G5 Memory Write
Code:
g5:~$ sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --memory-oper=write run
...
Operations performed: 2097152 (856017.41 ops/sec)
2048.00 MB transferred (835.95 MB/sec)
Test execution summary:
total time: 2.4499s
total number of events: 2097152
total time taken by event execution: 1.8698
per-request statistics:
...
Memory Benchmark Results:
Pi Memory Read: 850.45 MB/sec
Pi Memory Write: 637.67 MB/sec
EDIT: Tests re-run with --num-threads=4
Pi *Multithreaded* Memory Read: 2749.16MB/sec
Pi *Multithreaded* Memory Write: 2271.43MB/sec
----------
G5 Memory Read: 1173.85 MB/sec
G5 Memory Write: 835.95 MB/sec
EDIT: Tests re-run with --num-threads=2
G5 *Multithreaded* Memory Read: 1288.34MB/sec
G5 *Multithreaded* Memory Write: 852.00MB/sec
Ok, so [single-threaded] memory performance of the Pi isn't quite as good as the G5 and it is massively limited at only 1GB of RAM, as opposed to the G5's ceiling of 16GB.
EDIT: Multithreaded memory tests show memory throughput on the Pi to be more than twice as fast as the G5!
Real World Benchmarks
Now for a real world test. Compiling QEMU 2.11.1 from source, after installing dependancies.
(make is executed with 2 threads per CPU e.g. make -j 8)
Pi configure
Code:
pi:~/Downloads/qemu-2.11.1/build$ time ../configure --target-list=ppc64-softmmu,ppc-softmmu,i386-softmmu,x86_64-softmmu --disable-spice
...
real 0m22.329s
user 0m14.970s
sys 0m2.850s
Pi make
Code:
pi:~/Downloads/qemu-2.11.1/build$ time make -j 8
...
real 18m29.085s
user 66m50.310s
sys 2m50.230s
G5 configure
Code:
g5:~/Downloads/qemu-2.11.1/build$ time ../configure --target-list=ppc64-softmmu,ppc-softmmu,i386-softmmu,x86_64-softmmu --disable-spice
...
real 0m12.802s
user 0m7.136s
sys 0m2.928s
G5 make
Code:
g5:~/Downloads/qemu-2.11.1/build$ time make -j 4
...
real 12m26.464s
user 22m22.660s
sys 1m49.316s
QEMU Build Time Results:
Pi configure and build time: ~19 minutes
----------
G5 configure and build time: ~12.5 minutes
Booting The Mac OS 9.2.2 Universal iso in QEMU (PPC, no KVM)
Code:
pi:~ $qemu-system-ppc -M mac99 -m 128 -cdrom ~/vm/macos922uni.iso -boot d -vnc :5,password -monitor stdio
Code:
g5:~ $ qemu-system-ppc -M mac99 -m 128 -cdrom ~/vm/macos922uni.iso -boot d
Booting Debian 9 x86_64 img in QEMU (x86_64, no KVM) [With thanks to @Lastic]
Code:
pi:~ $ qemu-system-x86_64 -smp cpus=4 -boot c -hda vm/debian9_x64.img -m 512 -net nic -net user -vnc :5,password -monitor stdio
Code:
g5:~ $ qemu-system-x86_64 -smp cpus=2 -boot c -hda vm/debian9_x64.img -m 512 -net nic -net user -vnc :5,password -monitor stdio
Booting KolibriOS in QEMU (i386, no KVM)
Code:
pi:~ $ qemu-system-i386 -m 256 -cdrom kolibri.iso -boot d -vnc :5,password -monitor stdio
Code:
g5:~ $ qemu-system-i386 -m 256 -cdrom kolibri.iso -boot d -vnc :5,password -monitor stdio
Both machines could run a smooth game of Doom in an emulated x86 system delivering graphics over VNC, running KolbriOS (the Pi is running over wifi, the G5 is on gigabit).
EDIT: Despite these two systems being capable of performing CPU based multithreaded activities at similar speeds (with other factors causing bottlenecks, e.g read/write of the 16GB micro-SD card vs the G5's 7200rpm SATA 1TB HDD), the clear highlight here is that energy consumption has been the real advancement in the 13 years between these two systems. The G5 has a 1kW capable PSU with a real world draw of approx 150 - 250 watts per hour. The Pi on the other hand will draw ~6w under full load, with an idle of ~2w.
At least the final PowerPC Mac, the Mighty Quad G5 will continue to stand up against a few more revisions of the Pi until it's beat out by this tiny opponent.
Last edited: