PDP-11 benchmark
When you run it, you'll see after 10 seconds a value in hex: that's the number of iterations it could do in 10 seconds. It expects a working kw11-l in the system (or a .
If you like you can assemble the source with e.g. this assembler. You can also run the .bin-file directly in e.g. simh like this:
set cpu 11/70 SET CLK 50HZ load benchmark.bin goPlease consider compiling the emulator with e.g. -march=native as that often speeds things up quite a bit.
Note: in this example the system-type is configured as an 11/70, but an 11/34, 40 and 45 should work as well. Maybe others too that I did not try (via simh).
The program should be loaded at address 01000 (octal) and executed from that address as well.
- benchmark-w-mmu.asm source code (new version, also takes mmu into account)
- benchmark-w-mmu.bin loadable in simh with "load benchmark-w-mmu.bin" (also in kek with -T benchmark-w-mmu.bin)
- benchmark-w-mmu.raw bare metal image (no header of any kind)
results
Higher is better
c/c++ programs were compiled with -Ofast -march=native -mtune=native (like simh)
python3 programs were tested under pypy
| cpu | emulator or system | speed without mmu | WITH mmu |
|---|---|---|---|
| AMD Ryzen 9 7950X3D | Ersatz-11 v7.3 | 8855881 | 3159763 |
| AMD Ryzen 9 7950X3D | simh v3.8-1 | 6728706 | 1474208 |
| AMD Ryzen 9 7950X3D | p11 2.10i | 5792636 | 1273846 |
| AMD Ryzen 9 7950X3D | Kek (git af29aa9) | 2667023 | 911039 |
| AMD Ryzen 9 7950X3D/Chrome | P.Nankervis (git 605cc23) | 2252004 | 776959 |
| Raspberry Pi 5 | Kek (git 493a9f9) | 908091 | 418803 |
| AMD Ryzen 9 7950X3D | NWebber (git 485cdcc) | 661298 | 140930 |
| Teensy 4.1 | Kek (git 493a9f9) | 65751 | 28310 |
| ESP32-S3 | Kek (git 493a9f9) | 15923 | 6746 |
| ESP32 | Kek (git 493a9f9) | 13325 | 5500 |
| RP2350 | Kek (git 493a9f9) | 6762 | 3096 |
| ESP32-S2 | Kek (git 493a9f9) | 6117 | 2517 |
Note: when I have data of a real PDP-11 system then I'll add percentages: your help is welcome!
example output
