はじめに
唐突に CPU の TLS 処理性能を計測してみたくなりまして。
経緯
なんとなく Intel 離れがトレンドですが、Intel の IA32 CPU は高機能(多機能)な CPU であり、ディープラーニングで有用な VNNI だったり TLS 通信(https 通信)での複雑な演算処理を支援する AES-NI だったり、最終的に性能に影響する機能を多く備えています。
今やスパコンにも利用されていて日本の富嶽では世界一も記録した ARM ですが、常に Intel IA32 より高性能ってわけでもないだろうと思って、ちょっと見てみた次第です。
結果
計測環境
計測した環境は下記です。
- Raspberry Pi Zero / Rasbian Buster
- AWS a1 / Amazon Linux 2 + openssl-1.1.1c-15.el8.src.rpm
- AWS t3 / Amazon Linux 2 + openssl-1.1.1c-15.el8.src.rpm
- AWS t3a / Amazon Linux 2 + openssl-1.1.1c-15.el8.src.rpm
- Core i7-8665U / Ubuntu 20.04
- Ryzen 5 1600 / Ubuntu 18.04.4
計測コマンドは openssl speed
です。少し昔の話になりますが、こんな取り組みを見つけまして、計測方法を真似してみました。
10回実行して平均をとりました。
Pi Zero のみ AES 支援機能が載っていません。
数値
数値1つ目は 1024bytes の値、2つ目は a1 との比率です。
aes-128-gcm
PiZero | a1 | t3 | t3a | Core i7 | Ryzen 5 |
---|---|---|---|---|---|
12115 | 1301742 | 3578293 | 2599327 | 4401704 | 3737455 |
0.01 | 1.00 | 2.75 | 2.00 | 3.38 | 2.87 |
chacha20-poly1305
PiZero | a1 | t3 | t3a | Core i7 | Ryzen 5 |
---|---|---|---|---|---|
36304 | 398826 | 1839649 | 772989 | 2077522 | 1076447 |
0.09 | 1.00 | 4.61 | 1.94 | 5.21 | 2.70 |
つたない所感w
- Intel は AES 支援機能の効果が2倍前後
- AMD と ARM は AES 支援機能の効果が3倍強
クロック数とか消費電力とか分母が無いところで恐縮ですが、AES に関して言えば ARM は Intel IA32 に負けない性能と言って良さそうです。
おわりに
chacha20 は AES 以外の選択肢としてどうしても必要とのことですが、いまのところパソコンやスマホで利用すると性能低下を招きますね。困った困った。