🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #205133

Re: Podpis cyfrowy większej ilości podmiotów

#205133
From: Edek
Date: Thu, 18 Apr 2013 14:41
142 lines
8225 bytes
Dnia Thu, 18 Apr 2013 15:43:37 +0200 po głębokim namyśle bartekltg rzekł:

> W dniu 2013-04-18 15:24, Edek pisze:
>> Dnia Thu, 18 Apr 2013 14:46:35 +0200 po głębokim namyśle bartekltg
>> rzekł:
>>
>>> W dniu 2013-04-18 13:13, Edek pisze:
>>>> http://blogs.mathworks.com/loren/2011/07/18/a-mandelbrot-set-on-the-
>> gpu/
>>>>
>>>> Mówi o 340x szybciej w Matlabie.
>>>
>>> Strasznie tu "oszukują". Porównują kod dla gpu napisany w c++
>>> wg rozważanego w watku algorytmu (na razie ok) z taką samą iteracją na
>>> macierzach... ale bez warunku "norma>2 to nie licz dalej"
>>> i wszystkie piksele mieli maxIterations+1 razy;-) To nasze grupowe
>>> algorytmy będą od tego kilka-kilkanaście razy szybsze.
>>
>> Matlab to nie pisanie bezpośrednio na gpu, nawet nie chciało mi się
>> specjalnie czytać, fir się pytał "ile razy szybciej",
>> to mu podałem żródło :)
> 
> Ale fir pyał się, ile razy jego auto będzie szybsze,
> jeśli domontuje drugi silnik.
> Ta strona porównuje do dwusilnikowe auto to ciężarówki,
> jadącej okrężną dorogą;)

Wbrew pozorom ludzie faktycznie korzystają z R i Matlaba, wygodne są.

>>> Bez zmiany algorytmu GPU przyspieszyło im 16 razy,
>>> i tego rzędu przyspieszenia (z przeczuciem na ciut mniejsze)
>>> bym się spodziewał w porównaniu cpu/gpu.
>>
>> Nie wiem jakie masz doświadczenie z gpu, ale tam oszacowuje się
>> algorytmy przez najniższą z przepustowości - np. nominalnie we floatach
>> przepustowość RAM jest ~70 razy mniejsza od obliczeniowej, zależy
>> oczywiście od tego ile się wczytuje i ile wyników się zapisuje i czy
>> dostęp do ram jest uszeregowany czy nie.
> 
> Nie rozumiesz mnie. Ja nie czepiam się części GPU, ta została wykonana
> dobrze. Czepiam się tego, że ten wynik porównano z innym algorytmem, w
> doatku absolutnie nieefektywnym na cpu.

Spróbuj nie rozwijać się fraktalnie na temat skutków prośby firra
i zerknij na małe wyzwanie ze świata rzeczywistego. Ja nie mam problemu
z tym, żeby coś w AVX zaimplementować. Czy MatLab jest optymalny czy
nie pod względem SSE tego tak naprawdę nie wiem - przypuszczam znając
dziedzinę od strony implementacyjnej, że _nie_ jest i to grubo.

>> I teraz tak:
>> mając niezależne pętle dla sąsiednich pixeli przydaje się instrukcja
>> "any" - jeżeli żaden z wątków nie ma nic do liczenia kończy się 16x16
>> pixeli czy ile ich tam razem będzie optymalnie sprawdzając po każdej
>> iteracji.
> 
> Ależ ja o tym wiem, doczytaj, o co mi chodzi.

Chodzi Ci o to, że wziąłem przypadkowego bloga i krytykujesz? Ok,
nie mam uwag.

>> Pytanie do Ciebie byłoby takie: jak dobrać ilość/kształt pixeli
> 
> Było do mnie jakieś pytanie? :)

Wciąż jest, jeżeli chcesz.

>> przetwarzanych razem i jak policzyć ilość marnowanej mocy obliczeniowej
>> przez blok pixeli, z których część kończy iteracje wcześniej,
>> zakladająć że "any" nie kosztuje mocy obliczeniowej - inne bloki w tym
>> czasie liczą -
>> tylko traci się na czas na pixele "już policzone" w bloku.
>> Założenie trochę naciągane, ale niech będzie.
> 
> Będzie dość niewielka, bo bliskie obszary w większości przypadków
> zachowują się podobnie. Największe straty będą na 'powierzchni' naszej
> figury przy dużym maxiter, ale nadal to dośc niewielkia różnica. Można o
> tym pomyśleć jak o liczeniu tego samego fraktala lekko rozpuchniętego.

"Dość niewielka" - ile to konkretnie wychodzi? I może intuicja mnie 
myli, ale fraktale nie zachowują się tak jak Ty to tutaj przedstawiasz.

Ja może nie szpanuję matematyką, bo przez ostatnie lata policzyłem 
1 (słownie : jedną) różniczkę, ale masz do czynienia z olimpijczykiem
ze starych czasów, i to Big Time.

Skoro mówisz że oszukują a nie chce Ci się policzyć ile faktycznie 
da się wyciągnąć z gpu to dostrzegam tu pewną niekonsekwecję ;)
 
> Z tej samej sztuczki korzystaliśmy dla mniejszych pakunków korzystając z
> SSE.
> Dlatego przewidywałem nieznacznie mniej niż 16 razy.
> Teraz wszytko jasne?

Jasne. A nie policzyłbyś ile to faktycznie wychodzi? Ja oferuję
zmierzenie, żebyś nie musiał za bardzo zakasać rękawów.

>> Ja się nie podejmuję, ale widzę że praktykujesz matmę mocniej niż ja,
>> więc jak ci się chce to powiedz jak dobrać optymalne parametry, pewnie
>> na podstawie rozkładów ilości iteracji.
>> Optymalne wymiary bloku i oszacowanie "strat" przepustowości.
>> Bo detale doboru funkcji (abs/norm/dzielenie.vs.mnożenie)
>> i oczekiwanej prezyzji są w instrukcji.
>>
>> Mogę co najwyżej obiecać, że przetestuję wyniki, to prosty algorytm.
> 
> Obstawiam, że najlepiej byoby podzielić na obszary możliwie kwadratowe o
> rozmiarze takim, by się mieściły w ramach jednego układu prowadzącego te
> zależne od siebie obliczenia (zapomnialem jak się to nazywało, szkolenie
> z GPU dawno bylo:( blok? )

Jest warp, block, grid, multiprocessor i karta z kilkoma MP.

Dlaczego akurat kwadratowe, czy to minimalizuje różnice w iteracjach
w obrębie bloku? Czy przy każdych parametrach? Założenia, dość
realistyczne, podałem.

Bartek: szanuję fakt Twojego popisywania się matematyką, bo dla mnie 
masz czym. Czas na mały showdown, polegający na praktycznym zastosowaniu
znajomości podstaw fraktali i zastosowania w algorytmach, o ile masz czas.

Jako okazja występuje Mandelbrot. Nawet nie wiem, czy to o co proszę jest
trudne czy bardzo trudne.

> Hmm, czy tu nie robimy właśnie tego?
> kernel.ThreadBlockSize = [kernel.MaxThreadsPerBlock,1,1];
> kernel.GridSize = [ceil(numElements/kernel.MaxThreadsPerBlock),1];

No niby tak. Gpu jest przykładem czegoś, po czym można oczekiwać
teoretycznie policzonego wyniku, w przeciwieństwie do Intela
gdzie od p4 w gmp i mpfr można w źródłach znaleźć mięso na 
temat nieprzewidywalności pipeline i wydajność jest trudna
do oszacowania.

Skoro już mówimy o Mandelbrocie to fajnie byłoby policzyć
- na podstawie właściwości fraktala - jakie są optymalne 
wartości. Mnie ciekawi, czy teoretyczne właściwości tego
prostego algorytmicznie przykładu poz mierzeniu okażą się 
prawidłowe na kartach. O to mi chodziło w poprzednim poście,
plus małe wyzwanie.

-- 
Edek
Technical Details
Message-ID: <kkp0n2$sit$1@news.task.gda.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!not-for-mail
References: <kkdqot$5rl$1@node2.news.atman.pl> <2795af88-99c6-4f35-8a9d-22bda8af2925@googlegroups.com> <kkec03$n4h$1@node2.news.atman.pl> <a9253e59-21f5-43b5-853a-c60cb43c1f15@googlegroups.com> <kkfd89$o9b$1@news.task.gda.pl> <0fff07bc-e341-49a0-810c-333536e2901a@googlegroups.com> <kkh42k$81t$1@news.task.gda.pl> <b177dfc7-88f3-4cd7-9075-2acdd76f9662@googlegroups.com> <kkhr56$a62$1@news.task.gda.pl> <30021d10-a471-4cae-8f17-61eb36cb775e@googlegroups.com> <kkkjpe$b54$1@news.task.gda.pl> <8b53662c-8c31-4fc3-b82b-8173d9cf4f6f@googlegroups.com> <47d7734e-680b-4e13-995e-c0a2407217c3@googlegroups.com> <cdced490-b579-41ee-a123-afb12010cc12@googlegroups.com> <kkmvfc$hu3$2@news.task.gda.pl> <d936ef81-4b63-4dcb-8771-cc2a1faab4e1@googlegroups.com> <kkoi2a$o70$1@news.task.gda.pl> <21b4f3f3-7fce-470e-b839-3264af0a6349@googlegroups.com> <kkokfu$o70$3@news.task.gda.pl> <kkopvd$u03$1@node2.news.atman.pl> <kkos77$g5v$2@news.task.gda.pl> <kkotab$1md$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!not-for-mail
From: Edek <edek.pienkowski@gmail.com>
Newsgroups: pl.comp.programming
Subject: Re: Podpis cyfrowy
 większej ilości podmiotów
Date: Thu, 18 Apr 2013 14:41:38 +0000 (UTC)
Organization: CI TASK http://www.task.gda.pl/
Lines: 146
Message-ID: <kkp0n2$sit$1@news.task.gda.pl>
References: <kkdqot$5rl$1@node2.news.atman.pl> <2795af88-99c6-4f35-8a9d-22bda8af2925@googlegroups.com> <kkec03$n4h$1@node2.news.atman.pl> <a9253e59-21f5-43b5-853a-c60cb43c1f15@googlegroups.com> <kkfd89$o9b$1@news.task.gda.pl> <0fff07bc-e341-49a0-810c-333536e2901a@googlegroups.com> <kkh42k$81t$1@news.task.gda.pl> <b177dfc7-88f3-4cd7-9075-2acdd76f9662@googlegroups.com> <kkhr56$a62$1@news.task.gda.pl> <30021d10-a471-4cae-8f17-61eb36cb775e@googlegroups.com> <kkkjpe$b54$1@news.task.gda.pl> <8b53662c-8c31-4fc3-b82b-8173d9cf4f6f@googlegroups.com> <47d7734e-680b-4e13-995e-c0a2407217c3@googlegroups.com> <cdced490-b579-41ee-a123-afb12010cc12@googlegroups.com> <kkmvfc$hu3$2@news.task.gda.pl> <d936ef81-4b63-4dcb-8771-cc2a1faab4e1@googlegroups.com> <kkoi2a$o70$1@news.task.gda.pl> <21b4f3f3-7fce-470e-b839-3264af0a6349@googlegroups.com> <kkokfu$o70$3@news.task.gda.pl> <kkopvd$u03$1@node2.news.atman.pl> <kkos77$g5v$2@news.task.gda.pl> <kkotab$1md$1@node2.news.atman.pl>
NNTP-Posting-Host: 178-36-247-220.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: news.task.gda.pl 1366296098 29277 178.36.247.220 (18 Apr 2013 14:41:38 GMT)
X-Complaints-To: abuse@news.task.gda.pl
NNTP-Posting-Date: Thu, 18 Apr 2013 14:41:38 +0000 (UTC)
User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit