-
61. Data: 2013-04-18 11:53:10
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: "M.M." <m...@g...com>
On Thursday, April 18, 2013 11:24:46 AM UTC+2, firr kenobi wrote:
> tylko nie napisz if( x > +2. || x < -2. || y > +2. || y < -2.) bo tam jest &&
> a nie ||
Z && jest minimalnie szybciej, ale nie wiem dlaczego. Przecież jeśli
jest ||, to wystarczy że jeden warunek spełniony i przerywa. Jeśli
jest &&, to musi dwa przetestować żeby przerwać. Dziwne.
> - i ja bym nie uzywal dzieleń bo tam nie ku trmu specjalnej potzeby
Bez dzielenia:
http://pastebin.com/a901JqeR
Daje mi taki efekt:
https://thumbs.rapidshare.com/thumbs/1024/BCC/289800
217A241913394DFA53047C1.jpg
Pozdrawiam
-
62. Data: 2013-04-18 11:55:11
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: "M.M." <m...@g...com>
On Thursday, April 18, 2013 11:47:56 AM UTC+2, firr kenobi wrote:
> >
>
> >
>
> > for(n=0; n<=max_iter; n++)
>
> > {
>
> >
>
> > reim2 = (re + re) * im;
>
> > re = (re - im) * (re + im) + cRe;
>
> > im = reim2 + cIm;
>
> > if( re > 2.0 || re < -2.0
>
> > && im > 2.0 || im < -2.0 ) break;
>
> >
>
> > }
>
> >
>
>
>
> to ew mialoby pewien potencjal bo
>
> mozna rozwinac i robic testy tylko
>
> co iles iteracji nie w kazdej
>
>
>
> ale musialbym przepisac wlasnorecznie
>
> na sse i sprawdzic - nie wczytywalem
>
> sie poki co w te wersje i nie wiem
>
> czy w niektorych z nich nie robią
>
> podobnie, zapewne tak
Ja na dziś kończę tę zabawę, bo mam w uj roboty :)
Pozdrawiam
-
63. Data: 2013-04-18 12:00:59
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: firr kenobi <p...@g...com>
W dniu czwartek, 18 kwietnia 2013 11:53:10 UTC+2 użytkownik M.M. napisał:
> On Thursday, April 18, 2013 11:24:46 AM UTC+2, firr kenobi wrote:
>
>
>
> > tylko nie napisz if( x > +2. || x < -2. || y > +2. || y < -2.) bo tam jest &&
>
> > a nie ||
>
> Z && jest minimalnie szybciej, ale nie wiem dlaczego. Przecież jeśli
>
> jest ||, to wystarczy że jeden warunek spełniony i przerywa. Jeśli
>
> jest &&, to musi dwa przetestować żeby przerwać. Dziwne.
>
>
>
>
>
> > - i ja bym nie uzywal dzieleń bo tam nie ku trmu specjalnej potzeby
>
> Bez dzielenia:
>
> http://pastebin.com/a901JqeR
>
>
>
>
>
> Daje mi taki efekt:
>
> https://thumbs.rapidshare.com/thumbs/1024/BCC/289800
217A241913394DFA53047C1.jpg
>
>
>
zobacz nie
const double tmp = x*x - y*y + _x;
y = 2.0 * x * y + _y;
//if( std::fabs(y) > 2.0 || std::fabs(tmp) > 2.0 ) break;
if( x > 2.0 || x < -2.0 && y > +2.0 || y < -2.0 ) break;
x = tmp;
tylko
const double tmp = (x+y)*(x-y) + _x;
y = (x+x)* y + _y;
if( x > 2.0 || x < -2.0 && y > +2.0 || y < -2.0 ) break;
x = tmp;
tylko
dwa mnozenia zamiast czterech
po czym porownaj te cztery cmp z
wersja z dwoma fabsami i porownaj
tez z wersją
for(...)
{
im = (re+re)*im + c_im;
re = rere - imim + c_re;
rere=re*re;
imim=im*im;
if(rere+imim>4.0) break;
}
po czym podaj te trzy wniki
-
64. Data: 2013-04-18 12:05:34
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: firr kenobi <p...@g...com>
W dniu czwartek, 18 kwietnia 2013 11:55:11 UTC+2 użytkownik M.M. napisał:
> On Thursday, April 18, 2013 11:47:56 AM UTC+2, firr kenobi wrote:
>
> > >
>
> >
>
> > >
>
> >
>
> > > for(n=0; n<=max_iter; n++)
>
> >
>
> > > {
>
> >
>
> > >
>
> >
>
> > > reim2 = (re + re) * im;
>
> >
>
> > > re = (re - im) * (re + im) + cRe;
>
> >
>
> > > im = reim2 + cIm;
>
> >
>
> > > if( re > 2.0 || re < -2.0
>
> >
>
> > > && im > 2.0 || im < -2.0 ) break;
>
> >
>
> > >
>
> >
>
> > > }
>
> >
>
> > >
>
> >
>
> >
>
> >
>
> > to ew mialoby pewien potencjal bo
>
> >
>
> > mozna rozwinac i robic testy tylko
>
> >
>
> > co iles iteracji nie w kazdej
>
> >
>
> >
>
> >
>
> > ale musialbym przepisac wlasnorecznie
>
> >
>
> > na sse i sprawdzic - nie wczytywalem
>
> >
>
> > sie poki co w te wersje i nie wiem
>
> >
>
> > czy w niektorych z nich nie robią
>
> >
>
> > podobnie, zapewne tak
>
>
>
> Ja na dziś kończę tę zabawę, bo mam w uj roboty :)
>
spox, ja powinienem podlubac
w tym sse i posprawdzac co i jak
ale tez nie wiem czy teraz bo to wymaga jednak co nieco skupienia
-
65. Data: 2013-04-18 12:31:38
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: Edek <e...@g...com>
Dnia Thu, 18 Apr 2013 00:01:56 -0700 po głębokim namyśle firr kenobi
rzekł:
> ile szybsza? jak ktos o czyms napomyka a nie podaje jakichs istotnych
> albo pseudoistotnych informacji wizacych sie z tym o czym mowi to dla
> mnie taka rozmowa nie ma sensu i po prostu ten ktos nie kwalifikuje sie
> do tego typu rozmowy ktorą ja bylbym w stanie uznac za sensowną ;/ - Tak
> ze proponuje albo przeklejac odpowiednie cytaty na grupe albo jednak nie
> liczyc ze bede kontynulowal tego typu pseudorozmowy na temat bo mam
> lepsze rzezy do roboty
Hehe, to zależy od karty. Mandelbrot się idealnie zrównolegla, więc
na karcie z 1 TFlop uzyskuje się praktycznie ~1TFlop. Co tu tworzyć...
--
Edek
-
66. Data: 2013-04-18 12:43:14
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: Edek <e...@g...com>
Dnia Thu, 18 Apr 2013 02:04:18 -0700 po głębokim namyśle M.M. rzekł:
> Ja raczej nie napiszę w ASM, większość dawno temu zapomniałem :) Czy
> mógłbyś podrzuć mi wersję tej procedury w asmie, tak żebym mógł ją
> skompilować GCC64 bity? Czyli musiałby to być jakiś asembler osadzony.
Napisałem wersję AVX, powinna działać na i3:
http://pastebin.com/PEDVihPP
Wersja ze strony Intela wyrabiała się w 1.5s (rozsądna była 2.5s)
czyli 60% czasu, ja dodatkowo zrównolegliłem a gcc wykonało jeszcze
jakieś voodoo i jest 30% czasu rozsądnej:
$ time ./mb1 1000 1000
test = 1423724122.000000 iter = 1473998340.000000
real 0m0.748s
user 0m0.745s
sys 0m0.000s
Wynik jest prawdopodobnie ok, ale nie jest idealnie taki sam. Przez dobre
10 minut szukałem błędu i mam nauczkę, żeby z assemblerem się
ostrożnie obchodzić, bo nie wiem czy jest błąd czy nie. A jak w czymś
tak prostym nie potrafię znaleźć błędu przez 10 minut to oznacza
tylko jedno: system error, wrong language.
Dodatkowo okazało się, że jakakolwiek logika branchy w pętli
wewnętrznej strasznie "boli". Przypuszczam, że wektoryzacja gcc
o ile dobrze potrafi radzić sobie ze zrównoleglanymi danymi,
to nawet tak proste ify jak w mandalbrocie już te algorytmy
analizujące przerastają.
--
Edek
-
67. Data: 2013-04-18 12:45:43
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: firr kenobi <p...@g...com>
W dniu czwartek, 18 kwietnia 2013 12:31:38 UTC+2 użytkownik Edek napisał:
> Dnia Thu, 18 Apr 2013 00:01:56 -0700 po głębokim namyśle firr kenobi
>
> rzekł:
>
>
>
> > ile szybsza? jak ktos o czyms napomyka a nie podaje jakichs istotnych
>
> > albo pseudoistotnych informacji wizacych sie z tym o czym mowi to dla
>
> > mnie taka rozmowa nie ma sensu i po prostu ten ktos nie kwalifikuje sie
>
> > do tego typu rozmowy ktorą ja bylbym w stanie uznac za sensowną ;/ - Tak
>
> > ze proponuje albo przeklejac odpowiednie cytaty na grupe albo jednak nie
>
> > liczyc ze bede kontynulowal tego typu pseudorozmowy na temat bo mam
>
> > lepsze rzezy do roboty
>
>
>
> Hehe, to zależy od karty. Mandelbrot się idealnie zrównolegla, więc
>
> na karcie z 1 TFlop uzyskuje się praktycznie ~1TFlop. Co tu tworzyć...
>
>
a przykladowy kod? albo przyklad uruchomienia z podanym czasem wyniku itp
?
-
68. Data: 2013-04-18 13:13:02
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: Edek <e...@g...com>
Dnia Thu, 18 Apr 2013 03:45:43 -0700 po głębokim namyśle firr kenobi
rzekł:
> W dniu czwartek, 18 kwietnia 2013 12:31:38 UTC+2 użytkownik Edek
> napisał:
>> Dnia Thu, 18 Apr 2013 00:01:56 -0700 po głębokim namyśle firr kenobi
>>
>> rzekł:
>>
>>
>>
>> > ile szybsza? jak ktos o czyms napomyka a nie podaje jakichs istotnych
>>
>> > albo pseudoistotnych informacji wizacych sie z tym o czym mowi to dla
>>
>> > mnie taka rozmowa nie ma sensu i po prostu ten ktos nie kwalifikuje
>> > sie
>>
>> > do tego typu rozmowy ktorą ja bylbym w stanie uznac za sensowną ;/ -
>> > Tak
>>
>> > ze proponuje albo przeklejac odpowiednie cytaty na grupe albo jednak
>> > nie
>>
>> > liczyc ze bede kontynulowal tego typu pseudorozmowy na temat bo mam
>>
>> > lepsze rzezy do roboty
>>
>>
>>
>> Hehe, to zależy od karty. Mandelbrot się idealnie zrównolegla, więc
>>
>> na karcie z 1 TFlop uzyskuje się praktycznie ~1TFlop. Co tu tworzyć...
>>
>>
>>
> a przykladowy kod? albo przyklad uruchomienia z podanym czasem wyniku
> itp ?
Spytaj wuja Gugla, w tej chwili nie zrobię benchmarku.
A zresztą, pierwszy z brzegu link:
http://blogs.mathworks.com/loren/2011/07/18/a-mandel
brot-set-on-the-gpu/
Mówi o 340x szybciej w Matlabie.
Przykładowy kod zależy znowu od karty, od jej Compute Capability
jeżeli chodzi o Nvidię. Przydatna jest instrukcja głosująca "any".
Pamięc tu nie ogranicza przepustowości, więc zostają niewielkie
straty zależne od rozkładów ilości iteracji w grupach pikseli,
wynik jest do przewidzenia. Mandelbrot dlatego jest książkowym
przykładem zrównoleglania, że jest banalnie prosty i przewidywalny
i (prawie) idealnie się zrównolegla.
--
Edek
-
69. Data: 2013-04-18 13:17:29
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: firr kenobi <p...@g...com>
z której stronki? troche głupio
jest odnosic to co sie pisze do stronki bez podania dokladnie o jaką chodzi , nie ;)
-
70. Data: 2013-04-18 13:35:34
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: Edek <e...@g...com>
Dnia Thu, 18 Apr 2013 04:17:29 -0700 po głębokim namyśle firr kenobi
rzekł:
> z której stronki? troche głupio jest odnosic to co sie pisze do stronki
> bez podania dokladnie o jaką chodzi , nie ;)
Przepraszam Wodza... niech wódz poszuka Intela w necie.
--
Edek