ホーム 道しるべ 憩いの広場 濃緑空間 濃緑研の日記

Intel SSE
ホーム ] 上へ ] [ Intel SSE ] 固定小数点概観 ] Athlonの実数演算 ] 緑青 ]

 

月刊ASCII4月号にSSEのスループットとレイテンシが掲載されていました。
#「Intel Architecture Optimization-Reference Manual」よりの抜粋

そこで
ADDPS/SUBPS    1every2cycles(Throuhput) 4cycles(Latency)
ADDSS/SUBSS    1every cycles                   3cycles
MULPS                1every2cycles                   5cycles
MULSS                1every cycles                   4cycles
# 「PS」はPackedSingle(パックド単精度) 「SS」はScalarSingle(スカラ単精度)

とあり、ここまでは、まあスループットが処理クロック数で
加算器と乗算器が別にあって、パイプラインが1本だから
加算・乗算を交互に行えばCPUクロック*4flopsだなと
思って眺めていたところ
# 3DNow!は加算器・乗算器が別でパイプラインが2本のため
# 乗算と加算が同時に1クロックで処理可能なため
# 加算・乗算を交互に行ってCPUクロック*4flopsとなります

DIVPS/SQRTPS   1every36/58cycles             36/58cycles
DIVSS/SQRTSS   1every18/29cycles             18/30cycles

となっているではありませんか

3DNow!の除算は8クロック(逆数は6クロック)平方根は12クロックですから
ここでもintelの手抜きがみられます。
# 最近intelのFPUマイクロプログラムの除算・平方根に失望したばかり
# 詳しいクロック数は解りませんが、SSEと同じぐらいです
# AMD FPUの除算・平方根のマイクロプログラムはintelの半分の処理時間です。(優秀!!!)

これでは私のベンチマーク(オイラー法)では

K6-2/300@FPU    108
P2-300@FPU      106
K6-2/300@3DNow!   26
P!!!-300@SSE      75(推測:レジスタが競合するのでもう少しかかるかも)
P!!!-500@SSE      45(推測)

となりそうです。

わたしの勘違いであることを祈ります。