⚡
KNC(XeonPhi) のmax
こんにちは。Nakamuraです。
KNC の浮動小数の max を行うintrinsicsは単精度、倍精度それぞれ二種類あります。
- _mm512_gmax_ps, _mm512_gmax_pd
- _mm512_max_ps _mm512_max_pd
gmax のほうは、一個の命令(vgmaxps)に対応するのに対し、gの付かない max のほうは、比較 + blendに展開されます。
浮動小数は、+0と-0のように、ひとつの値に対して、表現が複数ある場合がありますが、その場合に、選択される値が変わるようです。
また、SIMDレジスタに含まれる16要素から、最大値を一個選ぶ intrinsics も用意されてます
- _mm512_reduce_gmax_ps, _mm512_reduce_gmax_pd
- _mm512_reduce_max_ps _mm512_reduce_max_pd
これは、KNC では、max 演算 + シャッフルの複数命令に展開されます。
Discussion