eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSzukam benchmarkówRe: Szukam benchmarków
  • Data: 2014-12-17 03:01:17
    Temat: Re: Szukam benchmarków
    Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 17.12.2014 01:05, firr wrote:
    > W dniu wtorek, 16 grudnia 2014 23:53:06 UTC+1 użytkownik M.M.
    > napisał:
    >> On Friday, July 18, 2014 10:34:42 AM UTC+2, Wojciech Muła wrote:
    >>> Wstawki asemblerowe robi się dla celów wydajnościowych,
    >>> kompilatory nie zawsze dają radę. A już kompletnie nie dają sobie
    >>> rady w nietrywialnych przypadkach.
    >> Temat wraca. Nie wiem co to są nietrywialne przypadki. Moim zdaniem
    >> kompilatory rzadko generują optymalny kod, ale często nie stanowi
    >> to problemu. W niektórych wersjach kompilatorów miałem wrażenie, że
    >> mała wstawka w asemblerze pogarszała wydajność.
    >>
    > ostatnio mialem drastyczny przyklad na to ze to co powtarzaja
    > niektorzy ze kompilator zoptymalizuje sam albo ze generuje dobry kod
    > to sa kompletne bajki 9byc moze generuje dobry kod ale z dobrego
    > ciezko zoptymalizowanego zrodla)
    >
    > konkretny przypadek z tym kodem gdzie chailem wyswietlic teksturowaną
    > kopułe w trojwymiarowym prototypie (co obejmuje wyznaczenie wektora
    > kierunku w 3d dla kazdegio piksela ekranu i zrobieni look up w
    > teksturze na podstawie kierunku)
    >
    > inicjalna wersja trwala jakies 100 czy nawet 150 ms ms a to glownie
    > dziki temu ze czas zarly dwa sinusy i pierwiastek na piksel jeszcze
    > z jakims dzieleniem i rzutowaniami (jak uzyjesz sinusa w kodzie to
    > program jest wydajnosciowym trupem tak bardzo sinus jest wolny) po
    > stablicowaniu sinusów i normalizacji i jeszcze ze dwu dniach
    > glowienia sie nad petla czas spadl do 20 i w koncu do 13 milisekund
    > 9prawie 10 razy szybciej niz normalny kod dla gcc) ciegle uwazalem ze
    > to za duzo i zaczalem przepisywac kod na kafelki gdzie mogelem zrobic
    > na kafelkach pewna interpolacje i pewne tam drobne rozroznienia, to
    > bylo troche trudne ale spowodowalo ze cza sspadl do 6-10 ms, 910-20
    > razy sszybciej "niz gcc",

    Zaraz, wkurzasz się, zę kompilator nie zmienił ci algoruytmu na inny?
    Znów odpływasz. Kompilator nie może zmienić bublesorta na qsorta.
    Zmieniłeś algorytm na szybszy, a mniej dokłądny, to masz
    przyszpieszenie, nie ma to nic wspolnego z jakością generowanego kodu.

    > jeszcze kombinowalem z rugowaniem castow i

    To samo. Każesz kompialtorowi liczyć danymi zmiennymi, musi nimi
    liczyć.

    > rozwijaniem petli na kafelku i co sie okazalo - zanotowalem zjazd do
    > wlaciwie 2-5 ms (te 5 ms moglbym jeszcze obnizyc ale to znowu wiaze

    Nie rozwinął pętli?
    A jakie były flagi przy kompilacji? ;>


    pzdr
    bartekltg



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: