[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 1115] Re: alekto0 OK
光成です。
川合さん
>>写し間違えていました(笑)
>とても安心しました(笑)。
おさわがせして申し訳ありませんでした。
> 完全に脇道にそれますが、上記のプログラムを以下のようにするとAG
>Iによるストールが軽減できそうな気がします。
引き続き脇道にそれますが、それは正しくないです。
PentiumIIIには驚くべきことにAGIストールがありません。
かりに私の書いたコードをtestA, 川合さんがかかれたコードをtestBとすると
PIIIではtestAは8clock/loop, testBでは9clock/loopと余計に時間がかかっています。
私も今資料を理解しようとしている最中ですが、PIIIでは適当にコードを書いても
内部で適切な順序に並び変えられてしまうためP5とは最適化の手法が大幅に変わっ
ています。
#じゃあ、何故testBが遅いの?と言われると...ただいま勉強中。
>ん?でも、Pentium MMXでも僕のコードなら9クロックくらいで回れるかも?
psubd mm3,[edx+24] などのread&modify命令が入ってるので遅くなりそうな
気がしますが、どうなのでしょうか。それから、
lea edx,[edx+64]
jnz .lp
がpairing実行されたら次のloopの先頭でやはりAGIストールを起こしそうな
気がします。
ちなみにAthlonでは(旧コアなのでメモリを小さく4096byteに変更して)
testA 6.8clk, testB 7.75clk (PIIIと同じ128 Kbyteでは約30clk)
K6III on TOWNSでは(やはりsize=4096)
testA 11.6clk, testB 12.6clk
でした。