SSEBENCH

version: alpha1
date: 2009-01-22

○このソフトは何ですか？

SSE/SSE2/SSE3命令の実行効率を測定するベンチマークソフトです。

○ソースコードはどこで拾えますか？

SourceForge.jpで拾えます。
http://sourceforge.jp/projects/ssebench/

○動作環境の目安は何ですか？

SSE/SSE2/SSE3命令が動作するCPUを積んだWindowsVistaと実行バイナリにソコソコ互換性がありそうなOSです。

○x86版とx64版の違いは何ですか？

x64版はx86なCPU/OS上では実行できません、という他に、

- ANDNPS、ANDPS、ORPS、XORPSについて非SSE命令による実装での処理単位が32bitを4回行うのか64bitを2回行うのかの違い

と言った様なソースコードレベルでの違いもあります。

○表示される数値の単位は何ですか？

ADDPSを例にすると、

ADDPS: 3.35582 (SSE=3.18419e+008, NON=9.48855e+007)

と、表示された場合、SSE命令使用時は非使用時に対して3.35582倍高速に処理を行えており、処理速度の実測値はSSE使用時が3.18419e+008[処理/秒]、SSE非使用時が9.48855e+007[処理/秒]である事を示します。

ここで単位となっている処理は、「ADDPS命令の場合は32[bits]浮動少数値4つで128[bits]の値2組、系256[bits]をメモリからレジスタにロードし、ADDPS命令により各32[bits]の和を求めた結果を128[bits]のメモリにストアする処理」となります。各命令で最低限必要な値のロード、処理、ストアを繰り返す事でベンチマークにしています。より具体的な動作についてはソースコードをご覧下さい。

○SSEの実行効率が1.0以下になる命令がありますが異常ですか？

正常です。本来SSE/SSE2/SSE3などのSIMD命令は単独の命令1回を実行する為にロード/ストアを行う事は基本的にはありません。特に単独で実行効率の悪い命令があったとしても、多くの場合それらは他のSIMD演算命令と組み合わされた一連の処理の中で実用的には使用されます。よって、SSEBENCHのスコアが1.0以下となる様な命令が存在しても、それはロード/ストアのコストによる影響であり、実用上はSSE命令を使用したコードの方が遅くなるという事はレアケースを除いてたぶんですがありません。概ね安心してお使いの環境でソフトのSSEオプションをONにしてご利用下さい。

SSEBENCHが評価するのはSIMD命令の処理を1つ実行するのに要する時間であり、基本的にはお使いのCPUにおけるSSE命令の実行速度の目安とSSE命令不使用時に対する実行効率についてです。つまり、お使いのCPUでアプリが動作する時、SIMD演算を考慮したコードがどれくらい高速に実行できそうかの目安を判断する為のものです。

○AMDのSIMD演算実行効率が悪いのですが？

CPUの仕様です。代わりという訳ではありませんが同クロック相当における非SIMD演算命令の実行効率はよかったりもする様です。めげないで下さい(´･ω･｀)

○作ったのは何処の誰ですか？

WonderRabbitProjectの兎って人です。
http://wonderrabbitproject.net/
pub@WonderRabbitProject.net
