🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #205132

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

#205132
From: bartekltg
Date: Thu, 18 Apr 2013 13:43
92 lines
5701 bytes
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ą;)


>> 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.


> 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.

> Pytanie do Ciebie byłoby takie: jak dobrać ilość/kształt pixeli

Było do mnie jakieś pytanie? :)

> 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.

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?


> 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? )

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

pzdr
bartekltg
Technical Details
Message-ID: <kkotab$1md$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <kkdqot$5rl$1@node2.news.atman.pl> <kkdtr5$9n9$1@node1.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>

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!.POSTED!not-for-mail
From: bartekltg <bartekltg@gmail.com>
Newsgroups: pl.comp.programming
Subject: Re: Podpis cyfrowy
 większej ilości podmiotów
Date: Thu, 18 Apr 2013 15:43:37 +0200
Organization: ATMAN - ATM S.A.
Lines: 94
Message-ID: <kkotab$1md$1@node2.news.atman.pl>
References: <kkdqot$5rl$1@node2.news.atman.pl> <kkdtr5$9n9$1@node1.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>
NNTP-Posting-Host: 89-73-65-59.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1366292619 1741 89.73.65.59 (18 Apr 2013 13:43:39 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 18 Apr 2013 13:43:39 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130328 Thunderbird/17.0.5
In-Reply-To: <kkos77$g5v$2@news.task.gda.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit