-
X-Received: by 10.140.87.68 with SMTP id q62mr15540qgd.8.1418806047488; Wed, 17 Dec
2014 00:47:27 -0800 (PST)
X-Received: by 10.140.87.68 with SMTP id q62mr15540qgd.8.1418806047488; Wed, 17 Dec
2014 00:47:27 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
h15no23802042igd.0!news-out.google.com!r1ni59qat.1!nntp.google.com!n8no228934qa
q.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 17 Dec 2014 00:47:27 -0800 (PST)
In-Reply-To: <f...@g...com>
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>
<f...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: Szukam benchmarków
From: firr <p...@g...com>
Injection-Date: Wed, 17 Dec 2014 08:47:27 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:207204
[ ukryj nagłówki ]W dniu środa, 17 grudnia 2014 09:24:26 UTC+1 użytkownik firr napisał:
> 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
>
ps zalezy co rozumiec przez algorytm, mz to nie byla zmian algorytmu (typu z
kwadratowego na liniowy itp), zmiany procedur (przestawianie albo lekkie zminay) moga
byc bo na tym polega optymizacja, ale strumien przetwarzanych danych nie byl
zmniejszany, na tch kafelkach zrobilem mala czesciową liniowa interpolacje, rozniez
pomagaja drobne sztuczki (typu dzielenie przez zero)
- i tak to co mam moglbym przepisywc dalej: 1) calkiem na inty bo teraz mam mix
zewnetrzny indeks na floatach tylko wewn na fixedpointach 2) rzadko wystepujavca
czesc kafelkow wogole nie jest zoptymizowana bo mi sie nie chcialo a to one zdaje sie
odpowiadaja za ten
dolny limit 5 ms 3) przepisanie na inytrinsinki sse (bylyby to calkowite
integer a te chyba nie zrobia wielkiej roznicy) 4) ew dokladne przyjjrzenie sie
petlon na poziomie czystego asma
(tym pewnie kiedys sie zajme ale na razie zżarlo mi sporo czasu i ta wersja co mam
juz jest jako tako funkcjonalna, osobiscie wolalbym i tak by kompy byly po prostu
szybsze wtedy prosty kod by dobrze dzialal a sam wolalbym pisac w prostym kodzie)
Następne wpisy z tego wątku
- 17.12.14 09:51 firr
- 17.12.14 10:11 M.M.
- 17.12.14 10:35 Borneq
- 17.12.14 11:57 bartekltg
- 17.12.14 11:58 bartekltg
- 17.12.14 12:11 firr
- 17.12.14 12:25 firr
- 17.12.14 12:48 bartekltg
- 17.12.14 14:00 M.M.
- 17.12.14 14:24 g...@g...com
- 17.12.14 15:27 M.M.
- 17.12.14 15:33 g...@g...com
- 17.12.14 16:25 M.M.
- 17.12.14 16:39 firr
- 17.12.14 16:52 firr
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-24 Elektryfikacja w ODWROCIE
- 2025-01-25 AMS spalony szybkim zasilaczem USB
- 2025-01-24 stalowe bezpieczniki
- 2025-01-23 Zenek Kapelinder - ?
- 2025-01-25 Błonie => Sales Specialist <=
- 2025-01-25 Lublin => iOS Developer (Swift) <=
- 2025-01-24 Warszawa => Java Developer <=
- 2025-01-24 Białystok => iOS Developer (Swift experience) <=
- 2025-01-24 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-24 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-24 Lublin => Delphi Programmer <=
- 2025-01-24 Kraków => Key Account Manager <=
- 2025-01-24 Lublin => Programista Delphi <=
- 2025-01-24 Wróblewo => Specjalista ds. Analiz Finansowych <=
- 2025-01-24 Katowice => Senior Field Sales (system ERP) <=