-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " kenobi" <f...@W...gazeta.pl>
Newsgroups: pl.comp.programming
Subject: Re: normalize na fpu
Date: Mon, 13 Aug 2012 16:08:31 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 117
Message-ID: <k0b8pv$k0f$1@inews.gazeta.pl>
References: <k07u5f$930$1@inews.gazeta.pl>
<a...@k...googlegroups.com>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1344874111 20495 172.20.26.234 (13 Aug 2012 16:08:31 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 13 Aug 2012 16:08:31 +0000 (UTC)
X-User: fir
X-Forwarded-For: 31.61.129.240
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:199265
[ ukryj nagłówki ]bartekltg <b...@g...com> napisał(a):
> On 12 Sie, 11:48, " kenobi" <f...@g...pl> wrote:
>
> > 90 cykli - i tak szybciej niz to co wyprodukowal moj
> > kompiletor (150) =A0[dokladnie nie wiem nawet czemu
> > moze przez to ze ta funkcja jest okrojona tj nie
> > sprawdza czy nie ma dzielenia przez 0 ;-)
>
> Sprzed kt=F3rej wojny to kompilator?
> ******
> void norm(double &a, double &b, double &c)
> {
> double dl =3D sqrt(a*a+b*b+c*c);
> a/=3Ddl;
> b/=3Ddl;
> c/=3Ddl;
> }
> ******
> g++ bla.cpp -O2 -S --verbose-asm -g
> as -alhnd bla.s > bla.lst
> *****
> 10:bla.cpp **** double dl =3D sqrt(a*a+b*b+c*c);
> 61 .loc 1 10 0
> 62 0004 F20F101F movsd (%rdi), %xmm3 # *a_1(D),
> *a_1(D)
> 63 0008 F20F1016 movsd (%rsi), %xmm2 # *b_5(D),
> tmp96
> 64 000c 660F28C3 movapd %xmm3, %xmm0 # *a_1(D),
> tmp82
> 65 0010 F20F100A movsd (%rdx), %xmm1 # *c_10(D),
> tmp94
> 66 0014 F20F59D2 mulsd %xmm2, %xmm2 # tmp96, tmp96
> 67 0018 F20F59C3 mulsd %xmm3, %xmm0 # *a_1(D),
> tmp82
> 68 001c F20F59C9 mulsd %xmm1, %xmm1 # tmp94, tmp94
> 69 0020 F20F58C2 addsd %xmm2, %xmm0 # tmp96, tmp82
> 70 0024 F20F58C1 addsd %xmm1, %xmm0 # tmp94, tmp82
> 71 0028 F20F51C8 sqrtsd %xmm0, %xmm1 # tmp82, tmp77
> 72 002c 660F2EC9 ucomisd %xmm1, %xmm1 # tmp77, tmp77
> 73 0030 7A25 jp .L6 #,
> 74 .LVL1:
> 75 .L2:
> 11:bla.cpp **** a/=3Ddl;
> 76 .loc 1 11 0
> 77 0032 F20F5ED9 divsd %xmm1, %xmm3 # tmp77, tmp88
> 78 0036 F20F111F movsd %xmm3, (%rdi) # tmp88,
> *a_1(D)
> 12:bla.cpp **** b/=3Ddl;
> 79 .loc 1 12 0
> 80 003a F20F1006 movsd (%rsi), %xmm0 # *b_5(D),
> tmp90
> 81 003e F20F5EC1 divsd %xmm1, %xmm0 # tmp77, tmp90
> 82 0042 F20F1106 movsd %xmm0, (%rsi) # tmp90,
> *b_5(D)
> 13:bla.cpp **** c/=3Ddl;
> 83 .loc 1 13 0
> 84 0046 F20F1002 movsd (%rdx), %xmm0 # *c_10(D),
> tmp92
> 85 004a F20F5EC1 divsd %xmm1, %xmm0 # tmp77, tmp92
> 86 004e F20F1102 movsd %xmm0, (%rdx) # tmp92,
> *c_10(D)
> 87 .LBE2:
> 14:bla.cpp ****
> 15:bla.cpp **** }
>
>
> Na oko wr=EAcz szybciej:)
>
>
> > =A0chcialbym to poprawic, czy ktos zna jakies zasady
> > 'polepszania' takich funkcji ? i moglby zaproponowac
> > poprawki?
>
> 1. gcc/visual studio.
> 2. Jaka=B6 wyspecjalizowana biblioteka, je=B6li tych oblicze=F1 wi=EAcej.
>
> 3. Je=B6li nie musisz mie=E6 dok=B3adno=B6ci, to spr=F3buj to,
> http://en.wikipedia.org/wiki/Fast_inverse_square_roo
t#Overview_of_the_code
> 100 lat temu zastosowanie kilku iteracji Newtona by=B3o szybsze ni=BF
> sqrt z koprocesora, ale dzi=B6 nie musi to by=E6 prawd=B1.
>
w danym momencie zalezy mi na treningu asma a nie wynikach
kompilacji, do sse jeszcze nie dojechalem
- bardzo zle napisana procedura, nie ma sprawdzenia czy nie
ma dzielenie przez 0 (co prawda takie podejscie jest
wydajniejsze bo np w moim raytracerku zerowe wektory sie
akurat nie trafiały) i nie pisz4e sie trzech dzielen tylko
cos w stylu
double inv_d = 1.0/sqrt(a*a+b*b+c*c);
a*=inv_d;
b*=inv_d;
c*=inv_d;
nie wiem jak na najnowszysch prockach ale na
moim jedno dzielenie to kilka/kilkanascie mnozeni
i dodawan, czyli to jest blisko 3 razy szybszew,
gcc jak widac tego zreszta nie zoptymalizowal i wstawil
te trzy dzielenia, w sumie fajnie popatrzec na
wynik jego produkcji - popatrze jeszcze na to - imo
jakos specjalnie to sie chyba nie spisal, normalny
kod spod sztancy tak jak i w bcc32
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 13.08.12 18:46 bartekltg
- 13.08.12 19:01 kenobi
- 13.08.12 19:30 bartekltg
- 13.08.12 20:07 Michoo
- 13.08.12 20:24 kenobi
- 13.08.12 22:21 bartekltg
- 13.08.12 22:54 kenobi
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump
- 2025-12-24 Podżeganie?
- 2025-12-24 => Senior Algorithm Developer (Java/Kotlin) <=




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem