eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSzukam benchmarkówRe: Szukam benchmarków
  • X-Received: by 10.140.27.197 with SMTP id 63mr371676qgx.6.1418804665518; Wed, 17 Dec
    2014 00:24:25 -0800 (PST)
    X-Received: by 10.140.27.197 with SMTP id 63mr371676qgx.6.1418804665518; Wed, 17 Dec
    2014 00:24:25 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    h15no12358221igd.0!news-out.google.com!r1ni59qat.1!nntp.google.com!n8no219012qa
    q.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 17 Dec 2014 00:24:25 -0800 (PST)
    In-Reply-To: <m6qo5d$fqd$1@node1.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=164.126.18.14;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 164.126.18.14
    References: <lq5a1e$7rk$1@node1.news.atman.pl>
    <9...@g...com>
    <e...@g...com>
    <lqadk9$kg7$1@node1.news.atman.pl>
    <s...@4...com>
    <6...@g...com>
    <lqalcn$65n$1@node2.news.atman.pl>
    <3...@g...com>
    <4...@g...com>
    <f...@g...com>
    <m6qo5d$fqd$1@node1.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <f...@g...com>
    Subject: Re: Szukam benchmarków
    From: firr <p...@g...com>
    Injection-Date: Wed, 17 Dec 2014 08:24:25 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:207202
    [ ukryj nagłówki ]

    W dniu środa, 17 grudnia 2014 03:01:18 UTC+1 użytkownik bartekltg napisał:
    > 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.
    >
    nmie 'wkurzam sie' tylko odnosze sie do pewnych twierdzen ze jak napiszesz kod
    normalnie to to co gcc wygeneruje "bedzie
    w miare szybkie"

    'algorytm' nie byl zmieniany, pierwsze
    wielkie przyspieszenie wystapilo przy zaminieniu sinusów div i sqrt na tablice,
    (+ zmienieniu castow na inta na na linijke w asmie)
    drugie po przepisaniu petli na kafelki, trzecie po recznym rozlozeniu petli i
    rozwinieciu na 4


    > > 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? ;>
    >

    -O2 -Ofast -w -c sky_dome.c -funsafe-math-optimizations -mrecip -ffast-math -fno-rtti
    -fno-exceptions -mtune=generic -mfpmath=both

    -march ustawiam roznie pentium3 pentium4 core2,

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: