I didn’t quite finish the bonus benchmarks, so for the sake of completeness, here we go. The missing ones for the RasPi 400.

Hard shadows

The Raspi only got a chance to show off with the heaviest of the benchmarks, so let’s see how it does in the lower end of teapot image quality.

Raspberry Pi 400 OC 2.2GHz (single threaded)

Single threaded performance still tracks at about the same ratio of 1/9 M1.

[1] pry(#<GlisteningRuby::DSL::Scene>)> render verbose:true
 Setup time: 1.375927773 s
Render time: 852.156157512 s
 Total time: 853.532085285 s
Raspberry Pi 400 OC 2.2GHz (multi-threaded)

This one would seem a bit unfair, because the RasPi 400 only gets 4 threads to do the work, instead of 8 threads for the other ones.

[2] pry(#<GlisteningRuby::DSL::Scene>)> render verbose:true, threads:4
 Setup time: 1.379623305 s
Render time: 292.012566677 s
 Total time: 293.392189982 s

The huge falloff in performance for those last 4 threads shows pretty clearly here. The RasPi 400 performance/thread scales pretty well at 3/4, given the huge overhead of the threaded renderer, but the M1 only did 4/8, and the i7 was even worse with 3/8.

Still, 4x M1 is more than 3x RasPi 400, so the total performance ratio when using every single bit of crunch there is, is less than 1/10 M1.

More interesting is that the RasPi 400 did the soft-shadows render at only 19x the time for hard-shadows, but the M1 took more than 21x the time. The passive thermal design of the RasPi 400 continues to amaze me, especially given the long history of overheated pies.