Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Hozzászólások

(#50) P.H.


P.H.
senior tag

Két kódrészt az utolsó kódból - ellátva a megfelelő code-padding-gal - lemértem, a következők adódtak:

2ND_STEP: 2.0 IPC
@@2ND_STEP:
lea ecx,[ebp-04h]
mov edx,00FFFFFFh
jmp @c2col
@zeroincol:
cmp edx,[esi]
mov bl,[edi+eax+03h]
sbb bl,00h
jz @@DECIDE_NEXT_STEP
@nx2mtx:
sub esi,ebp
add eax,04h
jnz @zeroincol
@c2col:
mov esi,ecx
add esi,[esp+__MTX]
sub esi,ebp
@check2col:
add esi,04h
add ecx,04h
jz @@5TH_STEP
cmp byte ptr [edi+ecx],00h
mov eax,ebp
jnz @check2col
jmp @zeroincol

5TH_STEP: 2.7 IPC
@@5TH_STEP:
lea ebx,[ebp+03h]
mov esi,[esp+__MTX]
@nx5row:
mov eax,[edi+ebx-03h]
sub ecx,edx
xor eax,edx
cmovs edx,ecx
mov ecx,ebp
@decrease_row_free:
bt dword ptr [edi+ecx],00h
mov al,[esi+03h]
adc al,[edi+ebx]
mov eax,00000000h
cmovz eax,edx
sub [esi],eax
add esi,04h
add ecx,04h
jnz @decrease_row_free
add ebx,04h
js @nx5row

Az elsőben elég gyakoriak az (ki)ugrások, a második szinte folyamatos lefutású (mátrixsoronként 1 elágazás-tévesztés van csak)
K10.5-ön mérve:
- az overall IPC 2.4 (nem végtelen ciklusban, ezért az tartalmazza a hívó algoritmus kb. 3x ekkora kódját is), ami 80% kihasználtsága a lehetséges maximumnak
- a @@2ND_STEP 2.0 IPC, ami 66%-os kihasználtság
- a @@5TH_STEP 2.7 IPC, ez 90% kihasználtság
(Vajon ezeket az értékeket mennyiben befolyásolja, hogy a @@2ND_STEP sszámolós ciklusa 7 utasításos, a @@5TH:STEP-é pedig 9, ami passzol a K10.5 3 pipe-jához?)

A @@2ND_STEP-en lehetne javítani, de ahhoz még +1 32 bites regiszter kellene, az meg nincs; 64 biten lesz :)

[ Szerkesztve ]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Copyright © 2000-2024 PROHARDVER Informatikai Kft.