64 bit OS Raspberry Pi4 Benchmarks
medium.com
medium.com
Up until the RPi 4 I thought AES instructions were a part of AArch64, but I was wrong. Such a weird omission to make on (I expect) Broadcom's side. All other 64-bit ARM SBCs just have it, even the low cost ones.
A Pentium II 200 MHz could saturate 100 Mbps with AES-128[1], RPi4 has 4 x 1400 MHz cores (with 64-bit ALU & NEON available).
[1] https://www.di.ens.fr/~granboul/recherche/AES/timings.html
edit: There are RPi4 AES and other benchmarks here in this "openssl speed" paste: https://gist.github.com/HimaJyun/f05d3017dfb05a4ccb0def010bb... - indicates 50-80 MB/s = 400-640 Mbps per core.
All this was done on a just-for-fun basis, but it ended up just making me frustrated so I stopped trying.
This ARMv8 impl according to comments is constant time: https://github.com/openssl/openssl/blob/master/crypto/aes/as...
There are also other ARM AES implementations in the tree: https://github.com/openssl/openssl/tree/master/crypto/aes/as...
AFAICT one is for the hardware AES instructions, and one is a bitsliced (so constant time) impl for 32-bit ARMv7, and one is for low end ARMv4. The latter sounds like it might still be vulnerable to timing sidechannel attacks but no idea if it is still used by default in any configuration...
This is especially important if considering use as a low-end desktop as Chromium will eat through 4GB of ram like it's nobody's business.
$ dpkg -l | grep firefox
ii firefox
73.0.1+build1-0ubuntu0.18.04.1 armhf
Safe and easy web browser from Mozilla
So I guess you weren't building those images? If you're building headless RPi images that's something you learn immediately.
Or you can chroot to the mounted Raspbian root partition and do a normal `systemctl enable ssh` as part of your image customisation. Because, to be clear, you do not have to put a file in /boot to enable SSH, as it was claimed above. That is purely a helpful shortcut.
This way the initial login only works once. Both gui user/pass and ssh user/pass are tied by default.
[0] https://jumpnowtek.com/rpi/Raspberry-Pi-Systems-with-Yocto.h...
The requirement of multiple partitions, with different filesystem types causes a lot of needless complication in the configuration and boot process.
> A 64 bit system means that RAM can be accessed in 8 byte read/writes per instruction.
I mean...kind of but that's probably not really what's happening in this benchmark. Firstly, in that test `memset()` is surely using NEON instructions internally on both ARMv7 and AArch64, which can load/store up to 32 bytes in a single instruction. Further that test is really just showing the bandwidth of the memory controller. I'm not sure why AArch64 would matter there. It's possible that `memset` / `memcmp` are using smarter prefetching instructions in AArch64.
Or quite possibly no one implemented it just yet & writing uncompressed pages is transparently compatible with what normal swapping does.
32 bits is enough to utilize all 4 GB of the Raspberry Pi4, so I figured the only benefit of using a 64 bit OS would be to support 64 bit software. Why would a 64 bit build perform better than a 32 bit build on the same hardware?
It is definitely the case, the official Raspbian images support Raspberry Pi 1.
For 4 GB of memory, 32 bits of address space are not good enough, as discussed a couple of days ago (https://lwn.net/Articles/813201/ discussed here at https://news.ycombinator.com/item?id=22440733).
ARM or X86 I really don't care...
Udoo - https://shop.udoo.org/udoo-x86-ii-ultra.html
LattePanda - https://www.lattepanda.com/products/lattepanda-alpha-864s.ht...
There are a few more. You could also build your own. All you need is a micro ITX motherboard + ram and a processor and something to power. Get them used and it will be way more powerful.
I've got a LattePanda v1 but I've been a bit disappointed with it. Udoo bolt is my next test but they're just a bit more expensive than I'd like.
Then `sudo rpi-update`
Edit: to be more clear, I also run 'apt update' afterwards
If you want a 64-bit userland, there are other options besides Raspbian. You can also try an in-place arch change from Raspbian to aarch64, but I imagine that would break some things, since the Raspbian-specific package repository only has packages for the armhf arch.
https://ubuntu.com/download/raspberry-pi
I've also customised the image by adding users, public keys and such. Removing some of the cloud cruft.
These instructions make it very, very easy and you can do this on an x86 machine. Just make sure to use /usr/bin/qemu-aarch64-static (64 bits) instead of qemu-arm-static (32 bits).
(Also, 64 bit Pi is not nearly as well supported as 32 bit currently. Does hardware GL work yet? What about if you're going to do MIPI, etc?) IMO it's worth waiting for a little more maturity.
When aarch64 is so badly supported on pi, it's really scary to go even further into the fringe with Arm64ilp32.
I use it as very cheap bare metal. Still plan to use 3 of them as Ceph monitors.
Ceph monitors aren't in the data path and Paxos is robust against byzantine failure, so...
High-speed serial links for driving displays and cameras in cell phones, originally. Proprietary.
Full disclosure: I don't work for RankN but am a customer; my use case is zero-touch ESXi cluster and Linux builds but I like the tool and have way too many Pis.
It would be awesome to have a decent ARM64 SBC with a good GPU (able to drive 2 4K monitors and run Firefox/VS Code). Any recommendations from the non-Pi crowd?
[0]: https://developer.nvidia.com/embedded/jetson-nano-developer-...
Then there's also Khadas VIM3.
I've had my pi4 compile stuff for days on end and it does not throttle if the above setup is followed.
https://www.hackster.io/news/raspberry-pi-4-firmware-updates...
Make sure it touches the usb chip.
Edit: my rock pi has a proper heat sink and it runs even cooler. 12 over ambient
And weekly kernel builds here: https://github.com/sakaki-/bcm2711-kernel
She focuses more on Gentoo, but it's mostly the same - just pop it onto an existing Debian 64 image.
Uh, no. It's there because of the design goals and priorities of the Foundation. They want to be able to distribute a distribution that runs on any raspberry pi generation. Performance is of secondary concern to them. So Raspbian remains at 32-bit.