-
Data: 2014-07-17 15:00:10
Temat: Re: Szukam benchmarków
Od: firr <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
Najnowsze wątki
- 2024-09-02 Wzór
- 2024-09-01 Polska-Chorwacja 650zł elektrykiem
- 2024-09-01 odrdzewiacz do amelinium
- 2024-09-01 Elektryczna łapka i szerszeń
- 2024-09-01 Jakie podatki za wynajem?
- 2024-09-02 Warszawa => Key Account Manager <=
- 2024-09-02 Warszawa => Projektant/Programista React Native <=
- 2024-09-02 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-09-02 Warszawa => Sales Development Representative (in German) <=
- 2024-09-01 1. wrzesnia po niemiecku
- 2024-09-01 Od setki do setki...
- 2024-08-31 wpadłem w siodło
- 2024-08-25 cenka opada
- 2024-08-30 Elektryki takie bezpieczne cd.
- 2024-08-31 Warszawa => International freight forwarder <=