-
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
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=