Short: CPU and memory speed benchmark Author: thomas@amiga-imager.com (Thomas Luebker) Uploader: thomas amiga-imager com (Thomas Luebker) Type: util/moni Version: 1.0 Architecture: m68k-amigaos >= 2.0 Distribution: Aminet URL: https://amiga-imager.com amibench answers "how much faster is machine A than machine B" with numbers that survive scrutiny. Four phases: integer ALU (dependency-chained, so it cannot be pipelined away), memcpy, memset, and a linear read. It runs in about ten seconds and needs nothing else installed. It prints reps and ticks, not rates. Divide reps by (ticks/50) for operations per second; for the memory phases multiply reps by the buffer size first. Doing that arithmetic on the Amiga would drag in soft-float or an FPU dependency and change what is being measured, and the byte totals overflow 32 bits on a fast machine - so the numbers come out raw. THREE THINGS IT DOES DELIBERATELY Self-calibrating. Timing comes from DateStamp, which resolves to 1/50 s. A fixed workload is useless across a wide speed range: on a PiStorm an earlier version finished an entire 50 MB memcpy phase inside a SINGLE tick, while sizing that phase for a PiStorm would leave a 68060 grinding for minutes. Each phase quadruples its rep count until it runs at least two seconds. Buffers bigger than any cache in play - 4 MB each. At 256 KB the whole working set sat inside a Raspberry Pi's L2, so an emulated Amiga was clocking cache bandwidth against a 68060 clocking main memory. Fast RAM explicitly. MEMF_ANY could land in Chip on a machine short of Fast, measuring the chipset bus instead of the CPU. COMPARING TWO MACHINES Run the SAME BINARY on both. This build targets 68020, so one executable covers an 020, an 040, an 060 and Emu68's JIT. Rebuilt for 68000 its numbers are not comparable with these - that would measure the compiler too. SOME RESULTS A1200 + PiStorm32-lite (Emu68 on a Pi 4 at 1.8 GHz) vs A4000/060 at 50 MHz: ALU 151.7 M iter/s vs 2.8 M iter/s 54x memcpy 1.19 GB/s vs 17.6 MB/s 67x memset 1.09 GB/s vs 16.5 MB/s 66x read 3.98 GB/s vs 35.5 MB/s 112x Geometric mean about 72x, which cross-checks against SysInfo 4.4 putting the same two machines 50.1x apart on Dhrystones and MIPS. Chip RAM does NOT follow: the PiStorm reaches the real chipset across its bus and measures 1.54x an A600 against the A4000's 2.25x. Anything Chip-bound will not see that CPU win and may run slower. Synthetic ratios are not application ratios. Source (tools/amibench), and the amimcp project it comes from: https://github.com/thomas-luebker/amimcp Distributed under the licence in the archive.