Skip to content
rfree-d edited this page Mar 9, 2018 · 16 revisions

๐Ÿšš Old article

This is old - for updates see PerformanceLab instead.

Crypto speed

Crypto speeds, part of NetworkSpeed

Poly1305 Verify (https://download.libsodium.org/doc/advanced/poly1305.html)

  • When benchmarking code uses lambda and class-template, instead direct hard-wired function, it seems to perhaps slow down by up to 3%
  • For sizes smaller then ~1500 it is quite important to have size N*64. Especially avoid Nร—64+1.
  • 1472 (ipv4) is a "round" (Nร—64) size
  • Best speed could be: 5.48 Gbps on AMD for @8960 messages (fitting into 9000m MTU).
  • On Intel best speed seems to reach 14.5 @1472 and 18.5 Gbps @8960 Test WDeb9_20171103_040600

HMAC Auth on AMD Harry 1 thread

TestNr Operation Threads Speed Gbps @msg_size comp notes
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 2.0 Gbps @64-1 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 2.4 Gbps @64 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 1.9 Gbps @64+1 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 4.98 Gbps @1024-1 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 5.0 Gbps @1024 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 4.93 Gbps @1024+1 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 5.22 Gbps @1472 CompHarry-v1
Harry_20171102_203105 Auth (Poly1305 HMAC) no, ST 5.48 Gbps @8960 CompHarry-v1 max, bigger block size does not help

HMAC Auth on Intel (CompWDeb9)

CompWDeb9 gitrev 98f027de009d4a64347aa6443ccc93c24a16eb38 (cmake Release)

Test WDeb9_20171103_040600
Speed auth_poly1305 msg_size: 64 Gbit/s: 2.84936
Speed auth_poly1305 msg_size: 128 Gbit/s: 4.62815
Speed auth_poly1305 msg_size: 512 Gbit/s: 10.9128
Speed auth_poly1305 msg_size: 1472 Gbit/s: 14.5866
Speed auth_poly1305 msg_size: 8960 Gbit/s: 18.635
Speed auth_poly1305 msg_size: 17920 Gbit/s: 18.6769
Speed auth_poly1305 msg_size: 35840 Gbit/s: 17.7177
Speed auth_poly1305 msg_size: 65536 Gbit/s: 18.9067
Speed veri_poly1305 msg_size: 64 Gbit/s: 2.49414
Speed veri_poly1305 msg_size: 128 Gbit/s: 4.09515
Speed veri_poly1305 msg_size: 512 Gbit/s: 9.6206
Speed veri_poly1305 msg_size: 1472 Gbit/s: 14.6289
Speed veri_poly1305 msg_size: 8960 Gbit/s: 17.349
Speed veri_poly1305 msg_size: 17920 Gbit/s: 16.3638
Speed veri_poly1305 msg_size: 35840 Gbit/s: 18.551
Speed veri_poly1305 msg_size: 65536 Gbit/s: 17.9637

More tests on WDeb9_20171103_051500 on gitrev 0619c8a005d92503cb3cb5decf04176b39136b7e

Speed decrypt_salsa20 msg_size: 64 Gbit/s: 2.87722
Speed decrypt_salsa20 msg_size: 128 Gbit/s: 3.26636
Speed decrypt_salsa20 msg_size: 512 Gbit/s: 6.43738
Speed decrypt_salsa20 msg_size: 1472 Gbit/s: 6.09409
Speed decrypt_salsa20 msg_size: 8960 Gbit/s: 6.93667
Speed decrypt_salsa20 msg_size: 17920 Gbit/s: 6.94583
Speed decrypt_salsa20 msg_size: 35840 Gbit/s: 6.9173
Speed decrypt_salsa20 msg_size: 65536 Gbit/s: 7.036

Experiment details

Most results: images, data and GNU-Plot scripts, are in this repo

https://github.com/yedinocommunity/pictures/blob/master/data/crypto_bench/

Harry_20171102_203105

All results. chart

Harry_20171106_172605

All results. chart

Harry_20171108_114505

All results. chart

Harry_20171109_161505

All results. chart

Test 20171107_034000 CompWDeb9 VM 4 cpu on Intel, Poly1305 MT (code git 9b672a5b248de29511c36e226743054a529bcf2c)

debian@debian:~/galaxy42/build$ make && sudo nice -n -18 ./tunserver.elf --mode-bench onlycrypto  range=1 samples=20   crypto=-11  thr=-2 vim ../src-tools/netmodel/netmodel.cpp 

Start... ver. 0.3.2.2b
Entering the network model
Starting netmodel
Testing crypto
Will test various msg-size, count: 8
Will test various thread-count, count: 7
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 1.88553 threads: 1
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 3.17077 threads: 1
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 8.46827 threads: 1
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 13.3121 threads: 1
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 17.9227 threads: 1
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 18.7731 threads: 1
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 19.2018 threads: 1
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 19.5759 threads: 1
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 3.8076 threads: 2
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 6.20797 threads: 2
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 16.5895 threads: 2
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 27.0598 threads: 2
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 35.8103 threads: 2
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 37.2861 threads: 2
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 38.0812 threads: 2
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 38.0177 threads: 2
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 5.52522 threads: 3
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 9.20139 threads: 3
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 23.9455 threads: 3
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 39.5252 threads: 3
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 52.1546 threads: 3
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 51.9725 threads: 3
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 46.2529 threads: 3
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 54.2311 threads: 3
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 6.15515 threads: 4
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 10.2429 threads: 4
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 27.5217 threads: 4
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 45.6795 threads: 4
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 59.0493 threads: 4
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 65.0903 threads: 4
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 62.269 threads: 4
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 64.7436 threads: 4
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 7.13846 threads: 5
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 12.3415 threads: 5
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 33.2453 threads: 5
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 51.9278 threads: 5
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 67.8056 threads: 5
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 69.022 threads: 5
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 76.0232 threads: 5
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 77.3554 threads: 5
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 6.86662 threads: 6
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 12.6606 threads: 6
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 36.5718 threads: 6
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 55.3806 threads: 6
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 77.789 threads: 6
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 78.6958 threads: 6
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 90.3364 threads: 6
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 83.6246 threads: 6
Testing veri_poly1305 msg_size_bytes: 64 Speed_in_Gbit_per_sec: 7.35685 threads: 7
Testing veri_poly1305 msg_size_bytes: 128 Speed_in_Gbit_per_sec: 12.8824 threads: 7
Testing veri_poly1305 msg_size_bytes: 512 Speed_in_Gbit_per_sec: 43.0984 threads: 7
Testing veri_poly1305 msg_size_bytes: 1472 Speed_in_Gbit_per_sec: 70.3911 threads: 7
Testing veri_poly1305 msg_size_bytes: 8960 Speed_in_Gbit_per_sec: 91.746 threads: 7
Testing veri_poly1305 msg_size_bytes: 17920 Speed_in_Gbit_per_sec: 88.8283 threads: 7
Testing veri_poly1305 msg_size_bytes: 35840 Speed_in_Gbit_per_sec: 105.833 threads: 7
Testing veri_poly1305 msg_size_bytes: 65536 Speed_in_Gbit_per_sec: 94.2847 threads: 7

Harry_20171102_203202 "Bench Slowdown due to lambda?"

Between git rev 7ff3a6ddd2ed9058215c476729e73d36aa77698b and 5346e8df52e54dc6b4e794a1ab67d4e23460b56a (repo) 5346e8df52e54dc6b4e794a1ab67d4e23460b56a version is about 2.5% faster.

Home || Contact || Tipsโค๏ธ || TestNr๐Ÿ”ฌ || EditWiki

Progress:
Report (blog)

Research / Current topic:
NetworkSpeed
TestNetwork10gNet1 Network
TestDevicesNX3031_HP NIC Device
NetworkSpeed10Gb 10 GB speed

Development:
GUI

Yedino Users:
YedinoServices - use this services
YedinoPeers - peer to this
Cool - most popular services

Please help
Help
NetworkSpeed ๐Ÿ—๏ธHelp๐Ÿ—๏ธ


Use/search emojis icons:

๐Ÿ—๏ธ - help needed
๐Ÿ““ - testing/lab needed

๐Ÿฅ‡ - best result (in our program)
๐Ÿฅˆ - best result

๐Ÿšซ - warning (e.g. in test results)
๐Ÿšฉ - interesting (e.g. in test results)

๐Ÿ“š - high quality resource

๐Ÿšง - todo
๐Ÿšจ - warning


Clone this wiki locally