-
X-Received: by 10.182.225.162 with SMTP id rl2mr20876obc.13.1405602010391; Thu, 17
Jul 2014 06:00:10 -0700 (PDT)
X-Received: by 10.182.225.162 with SMTP id rl2mr20876obc.13.1405602010391; Thu, 17
Jul 2014 06:00:10 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!h18no3067867igc.0!n
ews-out.google.com!bp9ni940igb.0!nntp.google.com!h18no1635289igc.0!postnews.goo
gle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 17 Jul 2014 06:00:10 -0700 (PDT)
In-Reply-To: <e...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.30.95.248;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 78.30.95.248
References: <lq5a1e$7rk$1@node1.news.atman.pl>
<9...@g...com>
<e...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b...@g...com>
Subject: Re: Szukam benchmarków
From: firr <p...@g...com>
Injection-Date: Thu, 17 Jul 2014 13:00:10 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:206355
[ ukryj nagłówki ]W sumie jeszcze moge dodac , z moich ostatnich
doswiadczen z optymalizowaniem kodu pod gcc
mozna wyroznic nastepujace etapy
0. nalezy napisac jako tako szybki 'bazowy' kod w c (chodzi o to by nie bylo tam
zadych dziwact tylko strightforward + wypadaloby jakis dobry algorytm choc sporo
przypadkow to nie sa jakies specjalne algorytmy tylko kawa na lawe-kod), ale to jest
punkt wyjscia, bazowy kod w c 'strightforward'
1. nalezy poeksperymentowac z flagami kompilatora
- niektore potrafily sporo dac (nie pamietam dokladnie jakie i ile bo nie mialem z
tym poki co az tyle praktyki, ale na pewno unsafe math rowniez chyba jeszcze cos mi
dalo jakis speedup)
2. nalezy zinlineowac kod (inlinowanie potrafilo tez oip dawac speedup, i nalezy tez
uproscic na maksa petle i sprawdzac rozne warianty profilerem
- ten punkt to jest sporo roboty bo mozliwosci i sztuczek jest sporo [nie do konca
nawet sprawdzilem co tu mozna robic bo mozna tu robic rozne rzeczy na pewno nalezy
kod masakrycznie uproscic wyciagac wyrazenie przed petle itp,
mozna tez rozwijac petle na procesowanie dwu
elementow na raz itp, moze zmienic rozklad danych w pamieci, integrowac sekwencje dwu
blokow w jeden ale sprytniejszy itd itd
3. najprawdopodobniej nalezy przepisac kod na intrinsiki w sse, jest to tez troche
roboty, sprawdzic jak to wyszlo i dalej nalezy pisac i profilowac w recznym asmie i
optymalizowac "w stylu abrasha"
w programowaniu w jawie i c# (moze i innych jezykach) jest w zasadzie to samo tylko
sa dwie roznice
-1. nalezy sie upewniec ze ten kompilowany jitem kod bedzie czystym c bez tych
wtretow spowolnien javy (na ktore dokladnie nie wiem co sie sklada ale ktos
wspominal: "automatic memory management, arrays bounds checking and resource
tracking")
-2. niekotre mozliwosci bede pewnie utrudnione w javie/c# nie wiem jak tam jest w
tych jezykach z
zapodawniaem flag kompilacji jak unsafe math albo jak jest ze wstawkami w asmie -
pewnie mozna
mw tak samo latwo jak w c odpalic punkty 1. i 2.
i z nieco wiekszymi pewnie problememi punkt 3.
w moich ostatnich optymalizacjach (dot rasteryzera tie57) punkty 1. 2. przyniosly
okolo 2X przyspieszenia (kosztem ponad tygodnia
siedzenia nad petla), punktu 3. ciagle nie zrobilem z powodu zmeczenia i tymczasowego
braku
wprawy ale da sie zrobic, nie oczekuje jednak wielkiego przyspieszenia, Calosciowe
efekty tej ciezkiej roboty to okolo 2X szybciej niz w wersji 'strightforward' - jesli
ktos lubi sie pomeczyc tydzoen lub nawet wiecej by cos dzialalo jedynie lub aż 2 razy
szybciej to warto a jesli nei to moze zostac przy wyjsciowym zwyklym kodzie
(ja akurat lubie optymalizowac nie tylko ze wzgledu na 2X szybsze dzialanie (choc mz
2X to
jest cos co sie liczy) ale tez ze wzgledu na to ze podrodze osiaga sie lepsze
zrozumienie
kodu jak i nawet dziedziny nad ktora sie z
tym kodem siedzi) - moze ew wraz z doswiadczeniem nabede jeszcze inną wizje tego jak
nalezy do tego podchodzić - wrealnych grach czy innych produkcjach drugim obszarem
optymalizaci jest optymalizacja na gpu ktora jest podobno bardziej zlozona i
trudniejsza (mnie w sumie tak przeraza ze nawet nie che sie za to brac)
Następne wpisy z tego wątku
- 18.07.14 10:55 Tomasz Kaczanowski
- 18.07.14 10:10 firr
- 18.07.14 10:20 Borneq
- 18.07.14 08:08 Borneq
- 18.07.14 10:34 Wojciech Muła
- 18.07.14 11:35 Wojciech Muła
- 18.07.14 13:55 firr
- 18.07.14 10:47 A.L.
- 18.07.14 09:56 A.L.
- 18.07.14 23:31 A.L.
- 19.07.14 17:07 Wojciech Muła
- 16.12.14 22:30 Borneq
- 16.12.14 23:53 M.M.
- 17.12.14 01:05 firr
- 17.12.14 01:20 firr
Najnowsze wątki z tej grupy
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=
- 2025-01-04 Katowice => Key Account Manager (ERP) <=
- 2025-01-03 Problem z odczytem karty CF
- 2025-01-03 Jazda z Warszawy do Krakowa teslą
- 2025-01-03 Wrocław => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-03 Warszawa => International Freight Forwarder <=
- 2025-01-03 Mińsk Mazowiecki => Area Sales Manager OZE <=