-
21. Data: 2010-01-25 16:44:03
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: bartekltg <b...@g...com>
On 25 Sty, 15:45, Mariusz Marszałkowski <m...@g...com> wrote:
>
> Na niektórych architekturach, na niektórych programach,
> obserwowałem, że gcc wypada znacznie lepiej niż VC. Może
Hmm, szlyszalem odwrotnie;)
> własnie z powodu gcc mam lepszy wynik. Jutro może
Masz lepsze wyniki bo masz lepszy komputer;)
Jesli mowisz o porownywaniu do matlaba, to podejrzewam
ze nie dales mu sie wykazac (daj najzyzszy piorytet i testuj
w petli for j=1:10,tic;c=a*b;toc,end;)
Najlepsza procedura zchodze do 1.86 przy 1.48 matlabem
dla n=960 i 15.45s przy 11s matlabem.
Uwazasz, ze gcc znacznie wiecej wyciagnie;>
> zajdę chwilę czasu, to spróbuję skompilować w GCC Twoje
> procedury.
gcc mam nieswieze, z devcpp.
Opcje
-fexpensive-optimizations -O3 -march=athlon-xp -msse
I wyniki tragiczne:( ikj z 10 -> 6
bolkowa spadla do 6s (z ) :(
Blokowa, ktorej tu nie podawalem, z zabawa wskaznikami etc,
zeby podpowiedziec kompilatorowi, jak sie nie napracowac,
a ktora daje pewne przyszpieszenie w VC tu tez spadla,
ale nie tak znacznie z 1.86 zroblo sie 2.57.
Widac, ze optymalizuje znacznie gorzej.
Ale jak mowilem, gcc prehistoryczne.
Probowalem sciagnac cos nowszego, ale mingw wyskakuje mi
tez z gcc 3.4, devcpp juz zdechlo. Podpowiedz, czego szukac
tak, zeby sie nie narobic;)
pozdrawiam
bartekltg
-
22. Data: 2010-01-25 17:40:20
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: thrunduil <t...@w...pl>
On 25 Sty, 17:27, marszi <w...@g...com> wrote:
> Ja mam pod windows 4.4.0, i to juz od jakiegoś czasu. Różnica w
skad wziac nowsza wersje gcc?
wlasnie sprawdzilem, ze nawet w cygwinie jest tylko 3.4.
-
23. Data: 2010-01-25 19:24:14
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Mariusz Marszałkowski <m...@g...com>
On 25 Sty, 18:40, thrunduil <t...@w...pl> wrote:
> On 25 Sty, 17:27, marszi <w...@g...com> wrote:
>
> > Ja mam pod windows 4.4.0, i to juz od jakiegoś czasu. Różnica w
>
> skad wziac nowsza wersje gcc?
> wlasnie sprawdzilem, ze nawet w cygwinie jest tylko 3.4.
Tak jak pisalem, pod windows najprosciej wraz z qtcreator.
W googlach poszukac qtcreator.
Pozdrawiam serdecznie
-
24. Data: 2010-01-25 19:44:35
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Mariusz Marszałkowski <m...@g...com>
On 25 Sty, 17:44, bartekltg <b...@g...com> wrote:
> On 25 Sty, 15:45, Mariusz Marszałkowski <m...@g...com> wrote:
>
>
>
> > Na niektórych architekturach, na niektórych programach,
> > obserwowałem, że gcc wypada znacznie lepiej niż VC. Może
>
> Hmm, szlyszalem odwrotnie;)
Roznie to jest. Kiedys (3-4 lata temu) z najczesciej VC wypadal
nieznacznie (5-7%) lepiej. Od owych 3-4 lat, w moich testach znacznie
czesciej
wypada lepiej GCC. Bywa ze jeden kompilator generuje kod 2 razy
szybszy
niz drugi. Oczywiscie to zalezy od kodu i od maszyny docelowej. GCC
ma duzo opcji do kompilacji, dobrac te opcje to wyzwanie. Jest nawet
program ktory metoda prob i bledow dobiera opcje kompilacji.
> Masz lepsze wyniki bo masz lepszy komputer;)
Mowie o wzglednym wyniku. Moj kod dziala 3.3 razy
wolniej niz matlab na tym samym sprzecie. Procedura
ktora Ty wkleiles dziala 1.5 raza wolniej niz matlab, ale
Twojej juz nie testowalem tak dokladnie. Mam tone innego
kodu do testowania/optymalizowania i nie mam czasu :)
> Jesli mowisz o porownywaniu do matlaba, to podejrzewam
> ze nie dales mu sie wykazac (daj najzyzszy piorytet i testuj
> w petli for j=1:10,tic;c=a*b;toc,end;)
Tak to polecilem komus zrobic. Jeszcze musze zapytac o
wersje matlaba, moze macie nowszego matlaba i dlatego
wypada u Was lepiej?
> Najlepsza procedura zchodze do 1.86 przy 1.48 matlabem
> dla n=960 i 15.45s przy 11s matlabem.
> Uwazasz, ze gcc znacznie wiecej wyciagnie;>
Kwestia szczescia :) Np. najlepsza Twoja procedura po
dolaczeniu kodu dla profilera (a wiec obciazona dodatkowym
kodem) dzial szybciej niz skompilowana normalnie! Zeby
dobrze kompilowac gcc trzeba miec duzo doswiadczenia i
intuicji :)
> > zajdę chwilę czasu, to spróbuję skompilować w GCC Twoje
> > procedury.
>
> gcc mam nieswieze, z devcpp.
> Opcje
> -fexpensive-optimizations -O3 -march=athlon-xp -msse
Ja daje bez -march i bez -mtune, uznalem ze to byloby
nie w porzadku wobec matlaba, bo jego kod zadziala na
kazdym kompie :) Po mtune i march program moze nie
dzialac na innym kompie.
> I wyniki tragiczne:( ikj z 10 -> 6
> bolkowa spadla do 6s (z ) :(
> Blokowa, ktorej tu nie podawalem, z zabawa wskaznikami etc,
> zeby podpowiedziec kompilatorowi, jak sie nie napracowac,
> a ktora daje pewne przyszpieszenie w VC tu tez spadla,
> ale nie tak znacznie z 1.86 zroblo sie 2.57.
> Widac, ze optymalizuje znacznie gorzej.
Chwilka :) Wkskazniki nie podpowiadaja kompilatorowi
jak optymalizowac, tylko uniemozliwiaja optymalizacje. Jesli
uzywa sie wskaznikow, trzeba wykonac cala prace samemu
za kompilator. Czasami to sie oplaca, a czasami nie.
> Ale jak mowilem, gcc prehistoryczne.
>
> Probowalem sciagnac cos nowszego, ale mingw wyskakuje mi
> tez z gcc 3.4, devcpp juz zdechlo. Podpowiedz, czego szukac
> tak, zeby sie nie narobic;)
Jesli pod winde, to najnowszy QtCreator. Pod linuxa robi ktos
to za mnie i nie umiem polecic, zawsze mam podstawiona najnowsza
wersje pod nos :)
> pozdrawiam
Rowniez :)
-
25. Data: 2010-01-25 21:10:37
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Wojciech Jaczewski <w...@o...pl>
Mariusz Marszałkowski wrote:
> [...]
> Jest nawet
> program ktory metoda prob i bledow dobiera opcje kompilacji.
Pamiętasz może jego nazwę?
-
26. Data: 2010-01-25 22:13:39
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Mariusz Marszałkowski <m...@g...com>
On 25 Sty, 22:10, Wojciech Jaczewski <w...@o...pl> wrote:
> Mariusz Marszałkowski wrote:
> > [...]
> > Jest nawet
> > program ktory metoda prob i bledow dobiera opcje kompilacji.
>
> Pamiętasz może jego nazwę?
Niestety zapomnialem, sleroza.
Kiedys nazwe i linka do strony podawalem na tym forum:
http://tech.groups.yahoo.com/group/progszach/
ale juz nie pamietam.
Trzeba by przeszukac :/
Pozdrawiam
-
27. Data: 2010-01-25 23:02:48
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Wojciech Jaczewski <w...@o...pl>
Mariusz Marszałkowski wrote:
> On 25 Sty, 22:10, Wojciech Jaczewski <w...@o...pl> wrote:
>> Mariusz Marszałkowski wrote:
>> > [...]
>> > Jest nawet
>> > program ktory metoda prob i bledow dobiera opcje kompilacji.
>>
>> Pamiętasz może jego nazwę?
>
> Niestety zapomnialem, sleroza.
> Kiedys nazwe i linka do strony podawalem na tym forum:
>
> http://tech.groups.yahoo.com/group/progszach/
Dzięki.
Poszukam sobie. Nie jest to dla mnie jakoś szczególnie pilne, ale kiedyś
poeksperymentuję i może zdobędę trochę dodatkowej wiedzy, przydatnej do
dyskutowania na mój ulubiony temat na grupie pl.comp.lang.java - czyli na
temat optymalizacji, jakie to może wykonać kompilator statyczny, a jakie to
niby cuda wyczynia JVM...
-
28. Data: 2010-01-26 00:37:22
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: bartekltg <b...@g...com>
On 25 Sty, 20:44, Mariusz Marszałkowski <m...@g...com> wrote:
> On 25 Sty, 17:44, bartekltg <b...@g...com> wrote:> On 25 Sty, 15:45, Mariusz
Marszałkowski <m...@g...com> wrote:
> ktora Ty wkleiles dziala 1.5 raza wolniej niz matlab, ale
> Twojej juz nie testowalem tak dokladnie.
1.86 do 1.46
i 15.4 do 11.6
Czyli sie zgadza (no, moze sugerowac jednak przewage VC;))
> Tak to polecilem komus zrobic. Jeszcze musze zapytac o
> wersje matlaba, moze macie nowszego matlaba i dlatego
> wypada u Was lepiej?
Czyli robisz testy na sprzecie podobnym, a nie tym samym?
> Kwestia szczescia :) Np. najlepsza Twoja procedura po
> dolaczeniu kodu dla profilera (a wiec obciazona dodatkowym
> kodem) dzial szybciej niz skompilowana normalnie! Zeby
Cuda jakies;>
> dobrze kompilowac gcc trzeba miec duzo doswiadczenia i
> intuicji :)
Ale ja kompilowalem VC. Tez bawiac sie opcjami.
Wszelkie info dla profilera wywalone. asm wyglada dosc ladnie.
> Ja daje bez -march i bez -mtune, uznalem ze to byloby
> nie w porzadku wobec matlaba, bo jego kod zadziala na
Jego strata. To jest wlasnie przewaga kodu nad gotowcem,
mozna skompilowac go pod wlasna maszyne.
> kazdym kompie :) Po mtune i march program moze nie
> dzialac na innym kompie.
Jest mi z tego powodu niezmiernie przykro - bedzie
trzeba przebudowac kod na tamtym kompie.
> Chwilka :) Wkskazniki nie podpowiadaja kompilatorowi
> jak optymalizowac, tylko uniemozliwiaja optymalizacje. Jesli
To sa 'sztuczki' typu: w ostatniej petli C[N*i+j] zamieniamy
na CC[j] a 'CC=C+N*i;' spychamy pare poziomow nizej.
Takie optymalizacje moglby robic kompilator, jednak
oba (VC i gcc) przyszpieszyly po takiej operacji.
> Jesli pod winde, to najnowszy QtCreator. Pod linuxa robi ktos
> to za mnie i nie umiem polecic, zawsze mam podstawiona najnowsza
> wersje pod nos :)
Cos sciagnalem, okazalo sie, ze to _wymaga_ minwg:)
teraz sciaga sie qt-sdk-win-opensource-2010.01, moze tam jest..
pozdrawiam
bartekltg
-
29. Data: 2010-01-26 01:12:40
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Mariusz Marszałkowski <m...@g...com>
On 26 Sty, 01:37, bartekltg <b...@g...com> wrote:
> On 25 Sty, 20:44, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > On 25 Sty, 17:44, bartekltg <b...@g...com> wrote:> On 25 Sty, 15:45,
Mariusz Marszałkowski <m...@g...com> wrote:
> > ktora Ty wkleiles dziala 1.5 raza wolniej niz matlab, ale
> > Twojej juz nie testowalem tak dokladnie.
>
> 1.86 do 1.46
> i 15.4 do 11.6
> Czyli sie zgadza (no, moze sugerowac jednak przewage VC;))
>
> > Tak to polecilem komus zrobic. Jeszcze musze zapytac o
> > wersje matlaba, moze macie nowszego matlaba i dlatego
> > wypada u Was lepiej?
>
> Czyli robisz testy na sprzecie podobnym, a nie tym samym?
Identyczny sprzęt.
> > Kwestia szczescia :) Np. najlepsza Twoja procedura po
> > dolaczeniu kodu dla profilera (a wiec obciazona dodatkowym
> > kodem) dzial szybciej niz skompilowana normalnie! Zeby
>
> Cuda jakies;>
To jeszcze nic... Wlasnie obserwuje jak na innym programie,
jak po dodaniu statycznej tablicy do ktorej nie ma jeszcze
zadnego odwolania w kodzie, program z 300sekund spowolnil
do 358s :) Inaczej rozlozone dane i juz taki spadek wydajnosci. I
co mam na to poradzic?
> > dobrze kompilowac gcc trzeba miec duzo doswiadczenia i
> > intuicji :)
>
> Ale ja kompilowalem VC. Tez bawiac sie opcjami.
> Wszelkie info dla profilera wywalone. asm wyglada dosc ladnie.
Ok, mowie tak na zas ze kompilacja GCC nie jest trywialna :)
> > Ja daje bez -march i bez -mtune, uznalem ze to byloby
> > nie w porzadku wobec matlaba, bo jego kod zadziala na
>
> Jego strata. To jest wlasnie przewaga kodu nad gotowcem,
> mozna skompilowac go pod wlasna maszyne.
Moze i racja. Ale akurat na tej maszynie na ktorej byl mierzony
czas matlaba -march i mtune zupelnie nic nie dalo. A kod
przyspieszal z danymi dla profilera :) Moze profiler wplywa
jakos na dzialanie funkcji clock? Nie wiem... zglupialem
gdy zobaczylem ze kod z info dla profilera dziala krocej.
> > kazdym kompie :) Po mtune i march program moze nie
> > dzialac na innym kompie.
>
> Jest mi z tego powodu niezmiernie przykro - bedzie
> trzeba przebudowac kod na tamtym kompie.
>
> > Chwilka :) Wkskazniki nie podpowiadaja kompilatorowi
> > jak optymalizowac, tylko uniemozliwiaja optymalizacje. Jesli
>
> To sa 'sztuczki' typu: w ostatniej petli C[N*i+j] zamieniamy
> na CC[j] a 'CC=C+N*i;' spychamy pare poziomow nizej.
> Takie optymalizacje moglby robic kompilator, jednak
> oba (VC i gcc) przyszpieszyly po takiej operacji.
GCC robi bardzo duzo, ale trudno jest sie posluzyc
jego opcjami. W helpie do GCC widzialem bardzo podobny
przyklad do mnozenia macierzy, z ktorego wynika ze GCC umie
sam zaminiec dwie petle:
for i = 1, N
for j = 1, N
na cztery:
for i = 1, N, step
for j = 1, N, step
for ii=1,step
for jj=1,step
Podobnie jest opcja w ktorej podaje sie ilosc pamieci
cache. Moze ktos lepiej poslugujacy sie GCC czyta
ten watek i nam troche opowie o mozliwosciach GCC?
> > Jesli pod winde, to najnowszy QtCreator. Pod linuxa robi ktos
> > to za mnie i nie umiem polecic, zawsze mam podstawiona najnowsza
> > wersje pod nos :)
>
> Cos sciagnalem, okazalo sie, ze to _wymaga_ minwg:)
> teraz sciaga sie qt-sdk-win-opensource-2010.01, moze tam jest..
Ah tak, sa wersje z kompilatorem i bez.
Pozdrawiam
-
30. Data: 2010-01-27 11:24:46
Temat: Re: no to ile czasu matlab mnozy te duze macierze?
Od: Kicer <...@...c>
Mariusz Marszałkowski wrote:
> On 25 Sty, 17:44, bartekltg <b...@g...com> wrote:
>> On 25 Sty, 15:45, Mariusz Marszałkowski <m...@g...com> wrote:
>>
>>
>>
>> > Na niektórych architekturach, na niektórych programach,
>> > obserwowałem, że gcc wypada znacznie lepiej niż VC. Może
>>
>> Hmm, szlyszalem odwrotnie;)
> Roznie to jest. Kiedys (3-4 lata temu) z najczesciej VC wypadal
> nieznacznie (5-7%) lepiej. Od owych 3-4 lat, w moich testach znacznie
> czesciej
> wypada lepiej GCC. Bywa ze jeden kompilator generuje kod 2 razy
> szybszy
> niz drugi. Oczywiscie to zalezy od kodu i od maszyny docelowej. GCC
> ma duzo opcji do kompilacji, dobrac te opcje to wyzwanie. Jest nawet
> program ktory metoda prob i bledow dobiera opcje kompilacji.
było kiedys na którejs grupie, nie pamietam na której;)
http://www.linux-
kongress.org/2009/slides/compiler_survey_felix_von_l
eitner.pdf
--
Michał Walenciak
Kicer86 at gmail dot com
http://kicer.elsat.net.pl
gg: 3729519