MMX SSE 3D NOW!のプログラミング
at TECH
135:デフォルトの名無しさん
06/02/22 15:08:51
>>100のコードと、>>119で使われたと思われるコードで測定してみた。@PenM
640*480*16で、43.7msと43.2msくらい。1%程度の違いしかない。
最初からL2ヒットであれば>119が倍近く速いので、やはりメモリネック。
ストアに対してprefetchntaを使うと30.8ms。効いてます(ライトスルーのP4では効かないかも)。
ていうかプリフェッチなんかせずにストアをmovntqにすると18.1ms(これはP4でもOKだと思う)。
単純な処理の割に、MMXが効かずSSE(MMX2)が効くというヤツであった。
>>119
仕事で使っているみたいだから無理だとは思うけど、>>100のコードのmovq [edi], mm0;の行を
_asm _emit 0x0f _asm _emit 0xe7 _asm _emit 0x07;//movntq [edi], mm0 のマシン語コード
このように書き換えればmovntqが使えますぜ。
俺の環境だと20.0ms。たった1行書き換えただけで倍以上速くなるのは気持ちいい♪
>>115
prefetchntaが最速だった。
ロードなしのmovntや、ストアなしのprefetchロード、というならもっと速いが、
ロードとストアを両立させようとすると、prefetchntaという結論になる。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5216日前に更新/141 KB
担当:undef