eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › rdtsc i ew dziwne wyniki
Ilość wypowiedzi w tym wątku: 6

  • 1. Data: 2012-08-10 17:39:12
    Temat: rdtsc i ew dziwne wyniki
    Od: " kenobi" <f...@N...gazeta.pl>

    mam takie wyniki z rdtsc (na moim starym p4 )

    1)
    rdtsc
    mov ecx, eax
    rdtsc
    sub eax, ecx

    wynik 80 cykli

    2)

    call dword ptr [_rdtsc]
    mov edi,eax
    call dword ptr [_rdtsc]
    mov ebp,eax

    _rdtsc:
    rdtsc
    ret

    120 cykli

    3)

    call dword ptr [_rdtsc]
    mov edi,eax

    push offset $ijkagfia
    push offset $agkagfia
    call dword ptr [_asm_dot_fpu]
    add esp,8
    fstp dword ptr [esp+60]

    call dword ptr [_rdtsc]
    mov ebp,eax

    _asm_dot_fpu:

    push ebp ; 0021 _ 55
    mov ebp, esp ; 0022 _ 89. E5
    mov eax, dword [ebp+8H] ; 0024 _ 8B. 45, 08
    mov edx, dword [ebp+0CH] ; 0027 _ 8B. 55, 0C
    fld dword [eax] ; 002A _ D9. 00
    fmul dword [edx] ; 002C _ D8. 0A
    fld dword [eax+4H] ; 002E _ D9. 40, 04
    fmul dword [edx+4H] ; 0031 _ D8. 4A, 04
    fld dword [eax+8H] ; 0034 _ D9. 40, 08
    fmul dword [edx+8H] ; 0037 _ D8. 4A, 08
    faddp st1, st(0) ; 003A _ DE. C1
    faddp st1, st(0) ; 003C _ DE. C1
    pop ebp ; 003E _ 5D
    ret ; 003F _ C3

    oscyluje miedzy ok 700 a 1500 cykli

    czy te wynika sa sensowne, czy ew nie jest to cos
    przyduzo?
    moze to efekt niezchacheowanego uruchamiania
    (popróboje pozniej w petli) (?) ale wyniki te ew
    sa zastanawiajace bo ew cos przyduzo [- chyba ze
    niecachowanie to tlumaczy ]







    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 2. Data: 2012-08-10 18:30:04
    Temat: rdtsc i ew dziwne wyniki
    Od: " kenobi" <f...@N...gazeta.pl>

    ok, to chyba to bo z kolei

    xor ebx,ebx
    @935:
    push offset $ijkagfia
    push offset $agkagfia
    call dword ptr [_asm_dot_fpu]
    fstp st(0)
    add esp,8

    inc ebx
    cmp ebx,1000
    jl short @935

    oscyluje 20 - 23 tys - czyli z kolei powiedzialbym
    troche krótko: w kazdym razie ciekawa rozpietosc 1500 cykli
    na pierwsze uruchomienia a 20 cykli na uruchomienie
    w petli (o ile to dokladnie tak jest, swoja droga w
    manualach procka zdaje sie podaje tylko czasy do wykonan
    w petlach a nie podaje do pierwszych uruchomien - ktore
    tez sa przeciez chyba deterministyczne, chyba ze jest to
    jakis prosty wzorek typu ilosc dostepow do pamieci * 100 cykli

    :?




    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 3. Data: 2012-08-10 19:06:35
    Temat: Re: rdtsc i ew dziwne wyniki
    Od: "Borneq" <b...@a...hidden.pl>

    Użytkownik " kenobi" <f...@N...gazeta.pl> napisał w wiadomości
    news:k039v0$i63$1@inews.gazeta.pl...
    > mam takie wyniki z rdtsc (na moim starym p4 )

    Ten stary P4 to jednordzeniowy?
    Ale u mnie pojawiały się dziwne wyniki gdy program działał na więcej niż
    jednym rdzeniu.
    Trzeba wtedy użyć
    SetProcessAffinityMask(GetCurrentProcess(), 1);


  • 4. Data: 2012-08-10 20:15:59
    Temat: Re: rdtsc i ew dziwne wyniki
    Od: " " <f...@g...pl>

    Borneq <b...@a...hidden.pl> napisał(a):

    > Użytkownik " kenobi" <f...@N...gazeta.pl> napisał w wiadomości
    > news:k039v0$i63$1@inews.gazeta.pl...
    > > mam takie wyniki z rdtsc (na moim starym p4 )
    >
    > Ten stary P4 to jednordzeniowy?
    > Ale u mnie pojawiały się dziwne wyniki gdy program działał na więcej niż
    > jednym rdzeniu.
    > Trzeba wtedy użyć
    > SetProcessAffinityMask(GetCurrentProcess(), 1);
    >

    ok, teraz sie wyjasnilo, zob drugi post - pierwszy przebieg
    jest znacznie wolniejsy niz sie spodziewalem, zapetlone
    przebiegi sa z kolei nawet szybsze niz sie spodziewalem

    sprawdzilem tez wynik zwyklym timerem i wyniki zgadzaja
    sie z rdtsc

    glownie interesowala mnie teraz kwestia tego pierwszego
    przebiagu - na zapetlonym przebiegu timingi podaja manuale -
    ale jaki jest wzorek na pierwszy przebieg ? i jaki wklad
    (np procentowo, miewa pierwszy przebieg w stosunku do
    calosci, czy maly czy duzy - niby moze jakis miec skoro to
    jest 1000x wolniel - ale jak to sensownie oszacowac ?











    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 5. Data: 2012-08-10 20:33:49
    Temat: Re: rdtsc i ew dziwne wyniki
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 10-08-2012 o 18:30:04 kenobi <f...@n...gazeta.pl> napisał(a):

    > ok, to chyba to bo z kolei
    >
    > xor ebx,ebx
    > @935:
    > push offset $ijkagfia
    > push offset $agkagfia
    > call dword ptr [_asm_dot_fpu]
    > fstp st(0)
    > add esp,8
    >
    > inc ebx
    > cmp ebx,1000
    > jl short @935
    >
    > oscyluje 20 - 23 tys - czyli z kolei powiedzialbym
    > troche krótko: w kazdym razie ciekawa rozpietosc 1500 cykli
    > na pierwsze uruchomienia a 20 cykli na uruchomienie
    > w petli (o ile to dokladnie tak jest, swoja droga w
    > manualach procka zdaje sie podaje tylko czasy do wykonan
    > w petlach a nie podaje do pierwszych uruchomien - ktore
    > tez sa przeciez chyba deterministyczne, chyba ze jest to
    > jakis prosty wzorek typu ilosc dostepow do pamieci * 100 cykli

    Windows ni Linux nie jest deterministyczny, czas dostępu do danych jest
    zależny od tego, gdzie te dane są, jak masz pecha, to będzie miliony albo
    i miliardy razy wolniej, niż jak masz szczęscie, a należy zakładać, że nie
    wiesz, czy masz szczęscie

    <quote src="Felix von Leitner -- Source Code Optimization">
    Memory Access Timings, Linux 2.6.31, Core i7
    Page Fault, file on IDE disk 1.000.000.000 cycles
    Page Fault, file in buffer cache 10.000 cycles
    Page Fault, file on ram disk 5.000 cycles
    Page Fault, zero page 3.000 cycles
    Main memory access 200 cycles (Intel says 159)
    L3 cache hit 52 cycles (Intel says 36)
    L1 cache hit 2 cycles
    The Core i7 can issue 4 instructions per cycle. So a penalty of 2 cycles
    for L1 memory access means a missed opportunity for 7 instructions.
    </quote>

    --
    Jordan Szubert


  • 6. Data: 2012-08-10 20:55:22
    Temat: Re: rdtsc i ew dziwne wyniki
    Od: " kenobi" <f...@g...pl>

    Jordan Szubert <u...@j...us.to> napisał(a):

    > Dnia 10-08-2012 o 18:30:04 kenobi <f...@n...gazeta.pl> napisa=B3(a):
    >
    > > ok, to chyba to bo z kolei
    > >
    > > xor ebx,ebx
    > > @935:
    > > push offset $ijkagfia
    > > push offset $agkagfia
    > > call dword ptr [_asm_dot_fpu]
    > > fstp st(0)
    > > add esp,8
    > >
    > > inc ebx
    > > cmp ebx,1000
    > > jl short @935
    > >
    > > oscyluje 20 - 23 tys - czyli z kolei powiedzialbym
    > > troche kr=F3tko: w kazdym razie ciekawa rozpietosc 1500 cykli
    > > na pierwsze uruchomienia a 20 cykli na uruchomienie
    > > w petli (o ile to dokladnie tak jest, swoja droga w
    > > manualach procka zdaje sie podaje tylko czasy do wykonan
    > > w petlach a nie podaje do pierwszych uruchomien - ktore
    > > tez sa przeciez chyba deterministyczne, chyba ze jest to
    > > jakis prosty wzorek typu ilosc dostepow do pamieci * 100 cykli
    >
    > Windows ni Linux nie jest deterministyczny, czas dost=EApu do danych jes=
    > t =
    >
    > zale=BFny od tego, gdzie te dane s=B1, jak masz pecha, to b=EAdzie milio=
    > ny albo =
    >
    > i miliardy razy wolniej, ni=BF jak masz szcz=EAscie, a nale=BFy zak=B3ad=
    > a=E6, =BFe nie =
    >
    > wiesz, czy masz szcz=EAscie
    >
    > <quote src=3D"Felix von Leitner -- Source Code Optimization">
    > Memory Access Timings, Linux 2.6.31, Core i7
    > Page Fault, file on IDE disk 1.000.000.000 cycles
    > Page Fault, file in buffer cache 10.000 cycles
    > Page Fault, file on ram disk 5.000 cycles
    > Page Fault, zero page 3.000 cycles
    > Main memory access 200 cycles (Intel says 159)
    > L3 cache hit 52 cycles (Intel says 36)
    > L1 cache hit 2 cycles
    > The Core i7 can issue 4 instructions per cycle. So a penalty of 2 cycles=
    > =
    >
    > for L1 memory access means a missed opportunity for 7 instructions.
    > </quote>
    >

    interesuje mnie sytuacja z pominieciem page faultow ;-)
    wtedy ten wzorek moze byc przyblizony (jak w fizyce )
    ale jakis-tam zapewne jest, jaki to jest wzorek?
    (na oko moze to byc tak jak mowilem cos w stylu 150 * r/w
    czesciowo pewnie moglbym pomierzyc ale chwilowo jednakże
    jestem przemeczony)

    --
    (down on the highway Im doin it my way)







    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: