-
X-Received: by 10.31.48.138 with SMTP id w132mr109188vkw.23.1503225013596; Sun, 20
Aug 2017 03:30:13 -0700 (PDT)
X-Received: by 10.31.48.138 with SMTP id w132mr109188vkw.23.1503225013596; Sun, 20
Aug 2017 03:30:13 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-medi
a.com!news.highwinds-media.com!m81no1616847itb.0!news-out.google.com!i9ni21936q
te.0!nntp.google.com!t37no116618qtg.1!postnews.google.com!glegroupsg2000goo.goo
glegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 20 Aug 2017 03:30:13 -0700 (PDT)
In-Reply-To: <e...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.47.143;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.47.143
References: <omqmm6$vvs$1@node2.news.atman.pl>
<7...@g...com>
<omqrh3$4kl$1@node2.news.atman.pl>
<e...@g...com>
<omrm61$r61$1@node2.news.atman.pl> <on29at$ef8$1@node1.news.atman.pl>
<b...@g...com>
<on5v9c$12t$1@node1.news.atman.pl>
<2...@g...com>
<on6ch1$dr2$1@node1.news.atman.pl>
<b...@g...com>
<ona4uo$6tl$1@node2.news.atman.pl>
<5...@g...com>
<0...@g...com>
<6...@g...com>
<1...@g...com>
<e...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4...@g...com>
Subject: Re: Automatic Reference Counting
From: "M.M." <m...@g...com>
Injection-Date: Sun, 20 Aug 2017 10:30:13 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6399
X-Received-Body-CRC: 755015158
Xref: news-archive.icm.edu.pl pl.comp.programming:211203
[ ukryj nagłówki ]On Sunday, August 20, 2017 at 10:14:33 AM UTC+2, fir wrote:
> odnosnie optymalizacji to moge jeszcze dodac cos bo widzialm gdzies
> tu jak zwykle te niemal bezdennie glupie klasyczne pseudodyskusje
> czy programista zoptymalizuje kod lepiej niz kompilator itd itd
Dlaczego uważasz te rozmowy za głupie?
> z tego jak ja to widze psrawa wyglada tak ze programista zoptymalizuje
> kod lepiej problem jest jednak w czym innym - dzis - z tego jak to
> mi sie jawi - kody sa memory-bound to nie asembler spowalnia kody
> tylko memory-bandwidth, innymi slowy problem jest w tym ze nawet
> 100-krotne zoptymalizowanie arytmetyki moze spowodowac na przyklad
> powiedzmy jedynie 1% przyspieszenia -
Generalnie masz rację. Ile razy przyspieszy 100-krotne zoptymalizowanie
arytmetyki? To zależy od programu. Ja myślę, że przyspieszyłoby
powiedzmy od 2 do 100 razy.
> Zupelnie inaczej bylo kiedys kiedy to memory bound nie bylo
> widoczne i wszystki liczylo sie predkoscią poszcegolnych instrukcji,
> w danej sytuacji przyspieszenie asemblera 100 razy dawalo przyspeszenie
> 100 razy... dzisiaj (jeli wywalic takie funkcja jak sin sqrt pow exp div)
> kody sa glownie memory bound i dlatego przepisywania asma po prostu
> niewiele daje -
Można skrócić czas wykonania od np. 7% do 50%, zależy od przypadku.
> jak robic optymalizacje tego memory bound?
Ja np. zaimplementowałem tak drzewa czerwono-czarne, żeby wszystkie
dane i meta-dane były w ciągłym obszarze pamięci. Można jeszcze
spróbować tak, aby dane i meta dane trzymać w dwóch osobnych
tablicach - ale ta technika w niektórych przypadkach zaszkodzi.
Wracając, w wyszukiwaniu w drzewie ciągle jest skok pod
(prawdopodobnie) losowy adres. W wyszukiwaniu binarnym w tablicy
skok pod losowy adres jest tylko na początku:
while( max - min > L ) {
middle = (max - min)/2;
[...]
}
while( min < max ) {
[...]
min ++ ;
}
> nie zajmowalem sie tym za duzo ale zdaje sie ze na przyklad unikanie
> malych zmiennych posrednich niewiele przyspiesza (na szczescie - bo
> rownoczesnie to zanczy ze mozna ich uywac tj uzywani ich niewiele
> spowalnia) .. przepisywanie arytmetyki
> jak wspomnialem w sumie sporo daje (mam tu na mysli przepisywanie i >
> upraszcanie raczej na poziomie c a nie asma)
Tak, na jedno wychodzi.
> ale i tak sprawa rozbija sie o memory bound (memory bound jest dzisiaj
> sciana i jesli mozesz zoptymalizowac asma to tylko DO tej sciany a nie
> poza nia - dlatego przepisywanie w asmie nie daje tak jak kiedys
> przyspieszen rzedu 10x 30x i
Hmmm mi kiedyś dawało zazwyczaj 3x. Myślę, że przyczyną jednak było to, że
kompilatory kiedyś były kiepskie.
> dlateo wlasnie nie jest tak wazne jak kiedys) samego memory bound nie
> wiem jak przyspieszyc byc moze sie nie da - podstawowe moemory bound
> liczy sie po prostu wielkoscią inputu i wielkoscia outputu (w megabajtach)
> t co ew mogloby to przyspieszyc to jakies skomplikowane algorytmy
> selekcjonujace input i output
Generalnie się zgadzam z Tobą, ale nie aż tak dosłownie. Przepisanie asma
trochę też daje. Tyle że dziś kompilatory dobrze to robią.
> -- ale to jest skomplikowane i zaciemnia algorytmy
> tak ze ja osobiscie o to zbytnie nie dbam
> jak zwykle na koniec warto wspomniec
> zapewne opencl bo GPU maja mamory bandwidth np 10 razy wiekszy niz
> procki tak ze jak ktos chce robic potezny flow przetwazania to
> pewnie powinien si etego nauczyc ;c
Na xeonphi jest fajnie, po prostu daje się
#pragma omp parallel
Niczego nie trzeba się uczyć i bangla. Ale na pewno podejście od bebechów
przyspieszyłoby dużo więcej.
> (ogolnie to napisalem wyzej to co wiem na ten temat, sam ostatnio
> jednak zaczalem jak wspomnielem mniej interesowac sie optymalizacją -
> choc ciagle interesuje mnie rev-engeenereeng /disasembling, vide
> pisanie asemblera x86)
Od kiedy znalazłem fragment kodu napisany przez kosmitów, też interesuję
się wsteczną inżynierią ;-)
Pozdrawiam
Następne wpisy z tego wątku
- 20.08.17 13:01 fir
- 20.08.17 13:16 fir
- 20.08.17 13:51 M.M.
- 20.08.17 13:55 bartekltg
- 21.08.17 07:49 Tomasz Kaczanowski
- 21.08.17 12:23 M.M.
Najnowsze wątki z tej grupy
- 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
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-07-04 Białystok => Kotlin Developer <=
- 2025-07-04 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-07-04 Warszawa => Specjalista wsparcia IT - analiza techniczna sprzętu IT <
- 2025-07-04 Zakrzewo => Konsultant SAP HCM <=
- 2025-07-04 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-04 Szczecin => Key Account Manager IT <=
- 2025-07-04 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-04 Warszawa => Technique IT - Hardware Configuration and Support <=
- 2025-07-04 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=