Lo stesso autore ha creato anche una suite di test per
md5, sempre in go, che conferma le basse prestazioni dell'M1 (o le alte di intel)
Codice:
git clone https://github.com/minio/md5-simd.git
Intel
Codice:
$ go test -bench .
go: downloading github.com/klauspost/cpuid/v2 v2.0.1
goos: darwin
goarch: amd64
pkg: github.com/minio/md5-simd
BenchmarkBlock8-12 9787387 116 ns/op 4399.04 MB/s 0 B/op 0 allocs/op
BenchmarkAvx2/32KB-12 6834 174311 ns/op 3007.77 MB/s 27 B/op 1 allocs/op
BenchmarkAvx2/64KB-12 4560 270409 ns/op 3877.74 MB/s 24 B/op 1 allocs/op
BenchmarkAvx2/128KB-12 2389 509543 ns/op 4115.75 MB/s 40 B/op 1 allocs/op
BenchmarkAvx2/256KB-12 1269 938382 ns/op 4469.72 MB/s 49 B/op 1 allocs/op
BenchmarkAvx2/512KB-12 639 1804207 ns/op 4649.47 MB/s 70 B/op 1 allocs/op
BenchmarkAvx2/1MB-12 327 3688113 ns/op 4549.00 MB/s 80 B/op 1 allocs/op
BenchmarkAvx2/2MB-12 168 7188908 ns/op 4667.53 MB/s 121 B/op 2 allocs/op
BenchmarkAvx2/4MB-12 80 14173116 ns/op 4734.94 MB/s 186 B/op 2 allocs/op
BenchmarkAvx2/8MB-12 40 28004621 ns/op 4792.70 MB/s 245 B/op 3 allocs/op
BenchmarkAvx2Parallel/32KB-12 22890 50027 ns/op 10480.05 MB/s 878 B/op 1 allocs/op
BenchmarkAvx2Parallel/64KB-12 11052 105716 ns/op 9918.78 MB/s 1833 B/op 1 allocs/op
BenchmarkAvx2Parallel/128KB-12 5358 224879 ns/op 9325.67 MB/s 3910 B/op 1 allocs/op
BenchmarkAvx2Parallel/256KB-12 2037 492387 ns/op 8518.31 MB/s 11003 B/op 2 allocs/op
BenchmarkAvx2Parallel/512KB-12 1033 1003809 ns/op 8356.78 MB/s 24697 B/op 2 allocs/op
BenchmarkAvx2Parallel/1MB-12 571 2040307 ns/op 8222.89 MB/s 55674 B/op 4 allocs/op
BenchmarkAvx2Parallel/2MB-12 278 4191847 ns/op 8004.69 MB/s 159479 B/op 6 allocs/op
BenchmarkAvx2Parallel/4MB-12 133 8578618 ns/op 7822.81 MB/s 522514 B/op 10 allocs/op
BenchmarkAvx2Parallel/8MB-12 67 17591901 ns/op 7629.52 MB/s 1788380 B/op 19 allocs/op
BenchmarkAvx2SingleWriter/32KB-12 20214 52832 ns/op 620.23 MB/s 0 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/64KB-12 12663 93108 ns/op 703.87 MB/s 0 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/128KB-12 6224 186308 ns/op 703.52 MB/s 0 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/256KB-12 3135 370724 ns/op 707.11 MB/s 0 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/512KB-12 1638 744731 ns/op 704.00 MB/s 1 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/1MB-12 795 1502421 ns/op 697.92 MB/s 3 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/2MB-12 398 3060617 ns/op 685.21 MB/s 8 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/4MB-12 198 5949292 ns/op 705.01 MB/s 17 B/op 0 allocs/op
BenchmarkAvx2SingleWriter/8MB-12 100 11853021 ns/op 707.72 MB/s 33 B/op 0 allocs/op
BenchmarkCryptoMd5/32KB-12 26750 43651 ns/op 750.69 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/64KB-12 13999 85714 ns/op 764.59 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/128KB-12 6686 170823 ns/op 767.30 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/256KB-12 3478 340579 ns/op 769.70 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/512KB-12 1761 674578 ns/op 777.21 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/1MB-12 878 1366682 ns/op 767.24 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/2MB-12 440 2731088 ns/op 767.88 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/32KB-12 211375 5867 ns/op 5585.25 MB/s 1 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/64KB-12 101443 11975 ns/op 5472.93 MB/s 7 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/128KB-12 49984 25381 ns/op 5164.19 MB/s 31 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/256KB-12 22651 51448 ns/op 5095.35 MB/s 138 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/512KB-12 11456 103986 ns/op 5041.91 MB/s 549 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/1MB-12 5665 207654 ns/op 5049.64 MB/s 2221 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/2MB-12 2847 415918 ns/op 5042.23 MB/s 8839 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/4MB-12 1462 849553 ns/op 4937.07 MB/s 34427 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/8MB-12 663 1738690 ns/op 4824.67 MB/s 151832 B/op 0 allocs/op
PASS
ok github.com/minio/md5-simd 81.925s
M1
Codice:
$ go test -bench .
goos: darwin
goarch: arm64
pkg: github.com/minio/md5-simd
BenchmarkCryptoMd5/32KB-8 24114 49553 ns/op 661.27 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/64KB-8 12144 98863 ns/op 662.89 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/128KB-8 6067 197472 ns/op 663.75 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/256KB-8 3008 395416 ns/op 662.96 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/512KB-8 1502 790660 ns/op 663.10 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/1MB-8 751 1595070 ns/op 657.39 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5/2MB-8 374 3201970 ns/op 654.96 MB/s 0 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/32KB-8 147962 7875 ns/op 4161.19 MB/s 1 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/64KB-8 75876 15657 ns/op 4185.85 MB/s 6 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/128KB-8 38042 31383 ns/op 4176.47 MB/s 27 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/256KB-8 18974 62921 ns/op 4166.21 MB/s 110 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/512KB-8 9556 126414 ns/op 4147.40 MB/s 438 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/1MB-8 3981 251764 ns/op 4164.91 MB/s 2107 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/2MB-8 2070 502923 ns/op 4169.93 MB/s 8105 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/4MB-8 1184 1024731 ns/op 4093.08 MB/s 28340 B/op 0 allocs/op
BenchmarkCryptoMd5Parallel/8MB-8 520 2048689 ns/op 4094.62 MB/s 129056 B/op 0 allocs/op
PASS
ok github.com/minio/md5-simd 34.443s