Benchmarking Docker on M1 and Ryzen
I ran a 7-zip benchmark on my M1 MacBook and my Ryzen workstation. More specifically,
-
suse is an AMD 3950x running Docker on a openSUSE Tumbleweed linux virtual machine thru Hyper-v on Windows 10 pro
-
MacBook-Air is an Apple M1 running Docker Desktop on macOS 11.6
suse has more memory, but both have SSDs so it should be a reasonable comparison.
The crazymax/7zip docker image is built in both amd64 & arm64 varieties, and is super easy to use, so thanks to crazymax for that. That 7-zip has a built-in benchmark that is also super easy to use makes this really nice, so thanks to Igor Pavlov I guess?.
Results
running | avg compress rating | avg decompress rating |
---|---|---|
arm64 M1 | 24,991 | 18,862 |
amd64 M1 | 4,677 | 6,799 |
amd64 3950x | 77,174 | 81,777 |
So that’s pretty clear.
Docker amd64 images “work” on M1 macs, but arm64 gets you 5x speedup.
Perhaps the 3950x benefits from extra cores (16 vs 8-ish, right?), so I limited to 2 threads (& finally, 1) and got
running | avg compress rating | avg decompress rating |
---|---|---|
arm64 M1 (1 thread) | 5,266 | 4,859 |
amd64 3950x (1 thread) | 4,257 | 3,675 |
arm64 M1 (2 threads) | 13,663 | 9,057 |
amd64 3950x (2 threads) | 8,736 | 7,313 |
arm64 M1 (4 threads) | 23,182 | 16,627 |
amd64 3950x (4 threads) | 16,285 | 13,414 |
Raw output
2021-11-07 08:57:06 PM
alechollingsworth@MacBook-Air.local
~
0 jobs running
$ docker run -it --platform linux/arm64 crazymax/7zip 7z b
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,7 CPUs LE)
LE
CPU Freq: - - - - - - - - -
RAM size: 5939 MB, # CPU hardware threads: 7
RAM usage: 1323 MB, # Benchmark threads: 7
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 26985 625 4203 26251 | 224284 574 3335 19127
23: 25015 641 3979 25488 | 219364 568 3341 18981
24: 23462 634 3981 25226 | 216215 570 3331 18978
25: 22323 637 3998 25488 | 213172 575 3299 18971
---------------------------------- | ------------------------------
Avr: 634 4040 25614 | 572 3326 19014
Tot: 603 3683 22314
--
2021-11-07 08:57:42 PM
alechollingsworth@MacBook-Air.local
~
0 jobs running
$ docker run -it --platform linux/amd64 crazymax/7zip 7z b
Unable to find image 'crazymax/7zip:latest' locally
latest: Pulling from crazymax/7zip
Digest: sha256:2aeb04408338a985571e11df87ad6f7847c170c4440ca3d4599be47aa77cc9aa
Status: Downloaded newer image for crazymax/7zip:latest
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,7 CPUs QEMU TCG CPU version 2.5+ (60FB1),ASM,AES-NI)
QEMU TCG CPU version 2.5+ (60FB1)
CPU Freq: 1777777 64000000 21333333 64000000 - - - 1024000000 1024000000
RAM size: 5939 MB, # CPU hardware threads: 7
RAM usage: 1323 MB, # Benchmark threads: 7
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 4560 500 887 4436 | 83403 579 1228 7113
23: 4527 515 895 4613 | 82089 573 1240 7103
24: 4441 520 918 4776 | 75510 556 1193 6628
25: 4216 526 915 4815 | 70556 566 1109 6279
---------------------------------- | ------------------------------
Avr: 515 904 4660 | 569 1192 6781
Tot: 542 1048 5720
--
2021-11-07 09:01:14 PM
alechollingsworth@MacBook-Air.local
~
0 jobs running
$ # now I plug back into the power
--
2021-11-07 09:01:33 PM
alechollingsworth@MacBook-Air.local
~
0 jobs running
$ docker run -it --platform linux/arm64 crazymax/7zip 7z b
Unable to find image 'crazymax/7zip:latest' locally
latest: Pulling from crazymax/7zip
Digest: sha256:2aeb04408338a985571e11df87ad6f7847c170c4440ca3d4599be47aa77cc9aa
Status: Downloaded newer image for crazymax/7zip:latest
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,7 CPUs LE)
LE
CPU Freq: - - - - - - - - -
RAM size: 5939 MB, # CPU hardware threads: 7
RAM usage: 1323 MB, # Benchmark threads: 7
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 25616 606 4112 24920 | 222398 569 3331 18966
23: 24516 639 3906 24980 | 215564 567 3292 18653
24: 23460 640 3941 25224 | 214589 570 3303 18835
25: 21755 629 3948 24840 | 213411 587 3236 18992
---------------------------------- | ------------------------------
Avr: 629 3977 24991 | 573 3290 18862
Tot: 601 3634 21926
--
2021-11-07 09:02:19 PM
alechollingsworth@MacBook-Air.local
~
0 jobs running
$ docker run -it --platform linux/amd64 crazymax/7zip 7z b
Unable to find image 'crazymax/7zip:latest' locally
latest: Pulling from crazymax/7zip
Digest: sha256:2aeb04408338a985571e11df87ad6f7847c170c4440ca3d4599be47aa77cc9aa
Status: Downloaded newer image for crazymax/7zip:latest
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,7 CPUs QEMU TCG CPU version 2.5+ (60FB1),ASM,AES-NI)
QEMU TCG CPU version 2.5+ (60FB1)
CPU Freq: 1777777 32000000 21333333 64000000 128000000 - - - 2048000000
RAM size: 5939 MB, # CPU hardware threads: 7
RAM usage: 1323 MB, # Benchmark threads: 7
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 4591 500 894 4466 | 81232 560 1238 6928
23: 4518 517 891 4604 | 82511 576 1239 7140
24: 4410 516 919 4742 | 77678 555 1229 6818
25: 4288 526 931 4897 | 70896 556 1135 6309
---------------------------------- | ------------------------------
Avr: 515 909 4677 | 562 1210 6799
Tot: 538 1059 5738
--
2021-11-08 05:00:38 AM
alec@suse
~
0 jobs running
$ docker run -it --platform linux/amd64 crazymax/7zip 7z b
Unable to find image 'crazymax/7zip:latest' locally
latest: Pulling from crazymax/7zip
Digest: sha256:2aeb04408338a985571e11df87ad6f7847c170c4440ca3d4599be47aa77cc9aa
Status: Downloaded newer image for crazymax/7zip:latest
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,32 CPUs AMD Ryzen 9 3950X 16-Core Processor (870F10),ASM,AES-NI)
AMD Ryzen 9 3950X 16-Core Processor (870F10)
CPU Freq: - - - - - - - - -
RAM size: 24434 MB, # CPU hardware threads: 32
RAM usage: 7060 MB, # Benchmark threads: 32
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 85686 3046 2737 83356 | 1084546 3149 2937 92489
23: 77127 2963 2652 78584 | 1065972 3144 2934 92240
24: 70443 2965 2555 75741 | 838284 2675 2750 73579
25: 62197 2956 2402 71015 | 773078 2537 2712 68799
---------------------------------- | ------------------------------
Avr: 2983 2586 77174 | 2876 2833 81777
Tot: 2929 2710 79475