11月
03
ちょっと高速化した。
- Haswell では、レジスタ幅が同じなら VGATHERDD より VGATHERQQ の方が常に速いので、置き換えられるところは置き換える。
- 符号列の読み込みが一切不要な場合は条件分岐でスキップするようにした。この条件分岐はジャンプ率 66% ぐらいなので予測に失敗した時のパイプラインストールの方が大きいと思うのだが、実際にマスク操作ではなく条件分岐に置き換えたら速くなった。
で、計測
C:\Users\umezawa\Documents\huff4>huff4 _exp.dat * NORMAL Huffman Decode x4 decode 771.519552msec 2.874134nsec/symbol ok * AVX2 Parallel Huffman Decode decode 683.574067msec 2.546512nsec/symbol ok
11% ほど速いようです。
ただ、並列でないハフマンデコードに依存した最適化が使えなくなることを考えると、11% 程度では置き換えられません。やっぱりお蔵入りです。Skylake 待ちですかね。
no comment untill now