-
1. Data: 2013-03-19 22:34:18
Temat: Nowoczesne procesory - jak to z nimi jest?
Od: "R.e.m.e.K" <g...@d...null>
Witam
Przeczytalem sobie arta o zapowiadanym nowym procku Intela o nazwie Haswell:
http://pclab.pl/art51785.html
I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
wirtualne potrafia te featuresy wykorzystac? Czy moze cala para idzie w
gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
robiac po staremu 100x dluzej niz by mogl?
Jak to jest?
--
pozdro
R.e.m.e.K
-
2. Data: 2013-03-19 22:46:51
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: Przemek O <p...@o...eu>
W dniu 2013-03-19 22:34, R.e.m.e.K pisze:
> Witam
>
> Przeczytalem sobie arta o zapowiadanym nowym procku Intela o nazwie Haswell:
>
> http://pclab.pl/art51785.html
>
> I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
> wirtualne potrafia te featuresy wykorzystac? Czy moze cala para idzie w
> gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
> tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
> robiac po staremu 100x dluzej niz by mogl?
> Jak to jest?
Bo wiesz, w dawnych czasach gdzie liczył się każdy takt zegara, powstało
coś takiego jak "optymalizacja". Później wraz z rozwojem (i spadkiem
ceny w stosunku do wydajności) "optymalizacja" została zastąpiona metodą
"kup se pan więcej pamięci/prędkości procka/dysku itd itp".
To tak w skrócie.
pozdrawiam,
Przemek O.
-
3. Data: 2013-03-19 23:34:00
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: Michoo <m...@v...pl>
On 19.03.2013 22:46, Przemek O wrote:
>
> Bo wiesz, w dawnych czasach gdzie liczył się każdy takt zegara, powstało
> coś takiego jak "optymalizacja". Później wraz z rozwojem (i spadkiem
> ceny w stosunku do wydajności) "optymalizacja" została zastąpiona metodą
> "kup se pan więcej pamięci/prędkości procka/dysku itd itp".
> To tak w skrócie.
Tak, tak. I dlatego na starym sprzęcie testy pokazują 1-2 DMIPS/MHz a na
nowym np 14.
--
Pozdrawiam
Michoo
-
4. Data: 2013-03-20 09:51:31
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: firr kenobi <p...@g...com>
Wedlug moich mz raczej dobrze miarodajnych
testów (bo mam w swoje aplikacje wbudowane
liczniki czasów) wspolczesne rdzenie (dokladniej
to tak mw dla mocnych maszyn sprzed roku bo tych zupelnie najnowszych nie mierzylem)
sa (dosyc dokladnie!) 6 razy szybsze niz moj
domowy bardzo stary komp czyli p4 sprzed prawie
10 lat
I to tyle z najwazniejszych mz ustaleń.
do sse troche sie zrazilem odkad uswiadomilem
sobie ze operacje arytmetyczne to przyspiesza
ale ddaje sie operacji fizycznych czyli
wczytywania i zapisywania do pamieci o ile wiem
nie :/ innymi slowy zaladowanie jednak komenda
8miu floatow zaladowanie druga 8miu floatow pomnozenie tego jedna komenda i zapisanie
tego
czwarta komenda przyspiesza tylko mnozenie a nie
wczytywania i zapis - czyli z obecnych tutaj 32
operacji mamy redukcje do 25 a nie do 4 :/
jesli sie myle i movy tez sa powerupowane to ktos moze mnie wyprowadzic z bledu
druga kluczowa sprawa ze to 6X jest to przyspieszenie na jednym rdzeniu, ciagle
nie umiem ocenic na ile w moim praktycznym
kodowaniu moglbym wycisnac realne przyspieszenie
dla 4rech rdzeni, (moze niedlugo kupie nowego
kompa to sprawdze) czy typowe scisle niezalezne
przypadki np liczenie zbioru mandelbrota
w czterech nizaleznych kawalkach daja sie
naprawde niezaleznie obliczac bez spowolnien
na jakichs bebechach architektury czy nie
-
5. Data: 2013-03-20 12:42:40
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: grapeli23 <g...@g...com>
Dnia 19.03.2013 R.e.m.e.K <g...@d...null> napisał/a:
> Witam
>
> Przeczytalem sobie arta o zapowiadanym nowym procku Intela o nazwie Haswell:
>
> http://pclab.pl/art51785.html
>
> I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
> wirtualne potrafia te featuresy wykorzystac? Czy moze cala para idzie w
> gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
> tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
> robiac po staremu 100x dluzej niz by mogl?
> Jak to jest?
>
Przecież te nowe instrukcje AVX2 są już wykorzystywane. Takie projekty
jak x264, ffmpeg implementują to na bieżąco, ba w kernelu linuxa raid z
tego korzysta.
http://git.kernel.org/cgit/linux/kernel/git/torvalds
/linux.git/plain/lib/
raid6/avx2.c
Prześledź sobie zmiany w najnowszym gcc, szczególnie te dotyczące
IA-32/x86-64.
http://gcc.gnu.org/gcc-4.8/changes.html
-
6. Data: 2013-03-20 18:39:36
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: darekm <d...@e...com>
W dniu 2013-03-19 22:34, R.e.m.e.K pisze:
> Witam
>
> Przeczytalem sobie arta o zapowiadanym nowym procku Intela o nazwie Haswell:
>
> http://pclab.pl/art51785.html
>
> I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
> wirtualne potrafia te featuresy wykorzystac? Czy moze cala para idzie w
> gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
> tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
> robiac po staremu 100x dluzej niz by mogl?
> Jak to jest?
>
To nie kompilator jest za głupi, tylko należy liczyć się z przypadkami
gdy procesor który wykonuje Twój program nie ma danego featuresa.
Robienie obejść i hacków też kosztuje więc pracuje się na ograniczonej
funkcjonalności aby zminimalizować wykluczanie z powodu starszego typu
procesorów.
Zgodność wstecz jest piekłem, które dotyczy nie tylko procesorów ale
również systemy operacyjne, maszyny wirtualne czy też przeglądarki
internetowe. Jeżeli ma się ograniczoną/kontrolowaną platformę kliencką
to można wymuszać migracje. Dla runku powszechnego dopiero całkowita
zmiana platformy pomaga. Takie x64 na pewno ma procesor obsługujący SIMD.
--
Darek
-
7. Data: 2013-03-21 00:10:44
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: "M.M." <m...@g...com>
W dniu wtorek, 19 marca 2013 22:34:18 UTC+1 użytkownik R.e.m.e.K napisał:
> Witam
> I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
> wirtualne potrafia te featuresy wykorzystac? Czy moze cala para idzie w
> gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
> tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
> robiac po staremu 100x dluzej niz by mogl?
> Jak to jest?
Prosty algorytm zwyczajnie nie może optymalizować. Musiałby dla wszystkich
możliwych danych, sprawdzić wszystkie programy, wybrać te które dają poprawne
wyniki, a z tych wybrać ten, który działa najszybciej. Dlatego im więcej
konkretnych przykładów oprogramują twórcy kompilatorów, tym kompilator
lepiej optymalizuje. Oprogramowanie "im więcej" zajmuje dużo czasu, dlatego
dobry kompilator na dany procesor może wyjść jedynie z dużym opóźnieniem.
Duże opóźnienie oznacza że na rynku będzie już inny procesor i nie warto
pisać wyśrubowanego kompilatora, bo się przedawni zanim zostanie ukończony.
Podejrzewam, że jakby rozwój procesorów nagle zamarł i na każdym komputerze
byłby ten sam procesor przez następne 10 lat, to za 2-3 lata ktoś by napisał
kompilator generujący 2-3 razy szybszy kod. W czasach gdy się interesowałem
tą tematyką sprawy właśnie tak się miały. Gdy wyszedł dobry kompilator na
procesory pentium, to zwykle generował kod 3 razy szybszy niż poprzednie
kompilatory. Podejrzewam że dziś jest podobnie, jakby wyszedł dobry kompilator
na dany procesor, to by też była taka różnica.
Pozdrawiam
-
8. Data: 2013-03-21 00:13:45
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: "M.M." <m...@g...com>
W dniu wtorek, 19 marca 2013 23:34:00 UTC+1 użytkownik Michoo napisał:
> On 19.03.2013 22:46, Przemek O wrote:
> Tak, tak. I dlatego na starym sprz?cie testy pokazuj? 1-2 DMIPS/MHz a na
> nowym np 14.
Ciekawe jak wygląda różnica pomiędzy starym a nowym sprzętem na kodzie który
czyta/pisze po kilka bajtów do losowych adresów RAM.
Pozdrawiam
-
9. Data: 2013-03-21 09:45:17
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: firr kenobi <p...@g...com>
dosyc reprezentatywny dla calosciowej
szybkosci kompa jest uwazam test w ktorym
po prostu zapisujesz i czytasz blok pamieci
kiedys napisalem tescik na memset 1MB ramu
https://dl.dropbox.com/u/42887985/ramset.zip
z tym ze teraz nie moge znalezc zrodla ale
to albo wywoluje memset albo ustawia 1MB
wartosciami w petli for - pytalem kiedys o wyniki
ale nikt nic nie powiedzial, ktos moglby powiedziec
wyniki (tylko nie nalezy resizowac okienka bo
czyszczenie jesgo zawartosci zalezy od jego
rozmiaru i przy jego powiekszaniu wyczerpuje cache
(u mnie ile trwa memset zalezy od romiaru okna)
-
10. Data: 2013-03-21 23:00:13
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: Wojciech Muła <w...@g...com>
On Tuesday, March 19, 2013 10:34:18 PM UTC+1, R.e.m.e.K wrote:
> I naszla mnie watpliwosc. Czy w ogole wspolczesne kompilatory, maszyny
> wirtualne potrafia te featuresy wykorzystac?
Potrafią.
> Czy moze cala para idzie w
>
> gwizdek? Bo choc procek oferuje super rozkazy z grupy SIMD to kompilator i
> tak za glupi by ich uzyc i wali wszystko od dziesiecioleci w te sama petelke
> robiac po staremu 100x dluzej niz by mogl?
>
> Jak to jest?
Ogólnie, oczywiste konwersje kodu skalarnego na SIMD
są dostępne we współczesnych kompilatorach i powszechnie
stosowane.
Jednak bardziej zaawansowane transformacje już musi wykonać
programista. I wbrew pozorom wiedza, jak programować procesory
nie jest tajemna... no, przynajmniej ludzie, którzy zajmują się
tworzeniem wydajneo softu czytają dokumentację. :)
w.