[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 1112] Re:alekto0 OK
光成です。
> Pentium3/450Eがひどい値ですねえ。もう一桁あってもおかしくない
>です。うーん、単に写し間違えたとかだと助かるのですが・・・。
写し間違えていました(笑)
>Athlon 600 : 3004??kc/s
>PIIIE 450 : 22272?kc/s
でした。
> それと一応確認なのですが、これは「cntupc1」の結果ではなくて、
>「countup1」の結果なのですね?
名前が多くてどれだか分からなくなりましたが、alekto0に付属のuser.bin
です。COUNTUP1.BINと同じファイルサイズ1146byteなのでそうだと思います。
>Athlonの値も1ループ当たり2clocksに低下(K6シリーズとの比較)
>しているので、少し気になったのです。
これは仕方がないです。PentiumIII, Athlonはパイプラインがめちゃくちゃ
深くなっています。したがってこんなに短いループではその性能を出せません。
例えばひたすら128kByteのメモリを読み込みながら無意味な演算をする次の
ルーチンですらloopあたり8clockで実行します。(今試してみました)
void test1( char *buf, int size );
test1( buf, 128*1024 );
/* かかった時間は16766clk@Coppermine700MHz */
/* 1loopあたり 16766/(128*1024/64) = 8.18clk */
proc test1
mov edx,[esp+4]
mov ecx,[esp+8]
shr ecx,6
lp:
movq mm0,[edx]
add edx,64
movq mm1,[edx-56]
movq mm2,[edx-48]
paddd mm7,mm2
psubd mm3,[edx-40]
paddd mm7,mm3
movq mm4,[edx-32]
paddd mm7,mm4
psubd mm5,[edx-24]
paddd mm7,mm5
movq mm6,[edx-16]
paddd mm7,mm6
dec ecx
movq mm7,[edx-8]
jnz .lp
emms
ret