avx512 命令の mask / 間接参照命令
www.slideshare.net 昔なつかしい午後のコーダの中にいた人のスライドです。
15 枚目前後を見ると、Fortran の pack 命令や単純な mask 命令などに対応する SIMD 命令は avx512 にしかないようです。配列の間接参照の scatter/gather も avx512 命令でようやくそろってきた感じの模様です。
そう思うと、intel fortran の頭が良ければ、avx256 二頭立てでは出来ない fortran 命令そのままの最適化がなされる可能性も在り?
その昔、ようやく配列の間接参照が SIMD 化されるようになったと、単純に喜んでいましたが、これは Haswell で gather 命令が入ったということの反映だったようで、実際は scatter の方はまだ入らず gather もイマイチ遅かったようです。
1980 年代に書かれた本の、間接参照やマスク処理でベクトル化できることを売りにしていた日本製ベクトルスパコンを念頭に書かれたプログラムとか丸写ししても、 SIMD 化されなくて遅かったりすることがあるけど avx512 なら大丈夫アルか?
zen/zen2 の場合
bit mask 関係の命令が、エミュレーションで 100 倍遅いらし。avx512 命令無いからかな?
Linus 氏の御意見
少し前にネットニュースで話題になっていましたが、浮動小数点数機構そのものへのヘイトで草 実際はリソースの使い方の配分の意見なので割と真っ当な意見なんですが言い方が炎上商法的で小賢しいなと。
Modern Fortran: Building efficient parallel applications
- 作者:Curcic, Milan
- 発売日: 2020/11/24
- メディア: ペーパーバック
FORTRAN77 数値計算プログラミング (岩波コンピュータサイエンス)
- 作者:森 正武
- メディア: 単行本
Modern X86 Assembly Language Programming: Covers x86 64-bit, AVX, AVX2, and AVX-512
- 作者:Kusswurm, Daniel
- 発売日: 2018/12/07
- メディア: ペーパーバック