【トリップ検索】MERIKEN's Tripcode Finder その5at SOFTWARE
【トリップ検索】MERIKEN's Tripcode Finder その5 - 暇つぶし2ch171: ◆znjnB.IJwZLU
13/09/26 23:28:01.94 6DsB6fP10
>>151
お久しぶりです。
日々の仕事をこなしつつトリップ検索のための正規表現エンジンのためのJITコンパイラを作るという作業にエタってました。

DESのS-Boxですがmovdqaが2個あるくらいなら速度差は出ないでしょう。
AVXでターゲットをSandy以降とする場合、ベクタ整数Logicは3op/cycleです。
従って速度を稼ぐには常に3命令を供給できるようにコードを書かなければなりません。
命令フェッチが16Byte/cycle、デコードが4op/cycleなので2ByteVEX(レジスタ間で4Byte)、3ByteVEX(レジスタ間で5Byte)
のどちらでも達成可能ですし、数個のメモリオペレーションはOoOのキューで隠蔽されます。
ただし、メモリオペレーションを含む場合はLodeポートが2本、Storeポートが1本で命令長が多くの場合4Byteほど長くなることを意識する必要があります。
これはメモリオペレーションを含む論理演算は2ByteVEXの場合で2op/cycle、3ByteVEXの場合は1op/cycleしか命令を供給できないということですので、
間にレジスタ間演算を入れて供給命令数を維持するかループにしてuOPキャッシュを当て込むか、そういうものだと諦めるかしなければなりません。

2ByteVEXにすること自体は簡単で、VEX prefixのフォーマットを見るとわかりますが
AVXop dist,src1,src2
という場合src2をxmm0~xmm7に制限するだけです。
distとsrc1にはxmm0~xmm15までの全てのレジスタを指定可能です。
まあ、レジスタ割付は面倒になります。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch