雑にちょっとだけ測っただけなんですが、(Rocket Lake において) AVX-512 のマスクレジスタを使った時のレイテンシの増加は1で固定「ではない」ということが分かりました。

たとえば VPADDB xmm, xmm, xmm のレイテンシは 1 でスループットは 0.33 ですが、これに zeroing-masking をかけるとレイテンシがいきなり 3 になります。スループットは 0.33 で変わらないようです。merging-masking でもレイテンシが 3 になります(自分のベンチマークプログラムが不出来なせいでスループットはまだ測れてません)。これが VPADDQ になるとレイテンシは 1 のまま変わりません。この B と Q との挙動の違いは VMOVDQU8/64 や VPBLENDMB/Q でも同様(後者は Agner さんの評価結果)です。

VPERMT2B/Q や VPMADDUBSW といったレイテンシやスループットがが元々長い命令でどうなるかは気になる所です。

1で固定だと思い込んでコードを書いてたので、書いたのを一度読み直して修正しないと…

Trackback

only 1 comment untill now

  1. AVX512 のマスクレジスタを使った場合のレイテンシの増加(その2)

    ベンチマークプログラムを書き直したのでちゃんと測ってみました(10日ぐらい前の話ですが) で、結果として、 マスクをかけてもスループットは(基本)変わらない B/W のマスクだとレ…

Add your comment now