もう少し現実に近いアプリケーションでは?ということで、グラフ48・49がAESのEncryption/Decryptionである。
このテストではx86のAES命令を利用する関係で、本来は動作周波数に比例した結果が出るはず。実際1T(グラフ49)はそうした傾向にあるが、MTでは逆にCore i7-8700Kが最速、Core i9-9900Kが一番遅くなっているのが分かる。
なんでか?というと、実はグラフ38・39の結果がこれに関係していると思われる。このテストでは強烈にメモリからの読み込みと書き出しを行っているので、実は処理性能が高いほどメモリコントローラにキューがたまり、これがボトルネックになりやすい。
グラフ49のAES128-EC Encryptionの例で言えば、Core i7-8700Kは1Tで6.18GB/secなので、全コア/スレッドがフルに動いた場合、6core/12Threadだと(HyperThreadingの性能改善を30%とすると)48.20GB相当のEncryptionが可能となる。Core i7-9700Kは52.88GB/sec、Core i9-9900Kは70.82GB/secになる計算だ。
ところがRMMTの結果で分かる通り、メモリコントローラはそんな帯域を持ち合わせていないから(何しろWriteは16GB/sec程度に留まっている)、当然キューが詰まる。この場合、より出力が大きい場合ほど詰まりやすいわけで、その結果がグラフ48のような傾向を見せることになったのではないかと思われる。
一方、専用命令を持ち合わせていないHasing(グラフ50・51)の場合、そもそも1T(グラフ51)の段階でスレッドあたり3GB/secそこそこだから、フルに動かしてもそこまでメモリのキューは詰まらない(そして詰まりが少ないほど性能が上がりやすいのはグラフ38・39でも明白)。相変わらず1Tの場合の性能差が、Core i7-8700Kがちょい低すぎる感じはあるものの、おおむね妥当な結果と言える。