[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 10/14 09:31 / Filesize : 149 KB / Number-of Response : 411
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【トリップ検索】MERIKEN's Tripcode Finder その5



171 名前: ◆znjnB.IJwZLU mailto:sage [2013/09/26(木) 23:28:01.94 ID: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までの全てのレジスタを指定可能です。
まあ、レジスタ割付は面倒になります。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<149KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef