-
Data: 2012-08-03 17:46:09
Temat: Re: [asm/c] optymalizacja elementarnego raytracera
Od: " fire" <f...@W...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]M.M. <m...@W...gazeta.pl> napisał(a):
> f-i-r <f...@W...gazeta.pl> napisał(a):
> > hehe, tn poziom glabienia mnie przygnebia i na pewno nie pogadamy
> > na takim poziomie ;) nie umiesz powiedzec nic nt (tematem jest
> Ale rację trzeba przyznać, że jako punktu wyjścia powinieneś użyć
> asemblera wygenerowanego przez lepszy kompilator, np. GCC, Microsoft,
> Intel, słyszałem też, że jest AMD i IBMa ale nigdy nie widziałem.
asm is kool, w sumie widze trzy domeny optymalizacji tutaj : c-optymization
(przerabianie i przestawianie linijek), way-optymization (tj 'algorytmiczna'
- np ew jakies geometryczne zaleznosci i struktury pomocniecze w stylu
cache) i asm-optymization; dwie pierwsze umiem robic ale w asmie stoje
kiepsko o tyle to by wlasnie nalezalo przytrenowac; ( w bcc niestety nieco
niewygodnie sie eksperymentuje z asmem, a i wiedzy 'ksiazkowej' nt asma nie
mam w tej chwili za duzej)
koles na so podal ew wzorzec wersji 'intersect ray sphere' pod xmm ->
inline void intersect4RaysSphere(
float* rOx, float* rOy, float* rOz,
float* rVx, float* rVy, float* rVz,
float sOx, float sOy, float sOz,
float sR)
{
// calculate Q
movss xmm0, sOx
movss xmm1, sOy
movss xmm2, sOz
shufps xmm0, xmm0, 0
shufps xmm1, xmm1, 0
shufps xmm2, xmm2, 0
subps xmm0, [rOx]
subps xmm1, [rOy]
subps xmm2, [rOz]
// calculate pow(dot(Q, rV), 2) in xmm3
movaps xmm3, [rVx]
movaps xmm4, [rVy]
movaps xmm5, [rVz]
mulps xmm3, xmm0
mulps xmm4, xmm1
mulps xmm5, xmm2
addps xmm3, xmm4
addps xmm3, xmm5
movaps xmm4, xmm3
mulps xmm3, xmm3
// calculate pow(length(Q), 2)
// there's no point in taking the square root only to then square it
mulps xmm0, xmm0
mulps xmm1, xmm1
mulps xmm2, xmm2
addps xmm0, xmm1
addps xmm0, xmm2
// calculate d
movss xmm1, sR
mulss xmm1, xmm1
shufps xmm1, xmm1, 0
subps xmm0, xmm3
subps xmm1, xmm0
sqrtps xmm1, xmm1
// test for intersection
// at this point:
// xmm3 = v * v
// xmm4 = v
// xmm1 = sqrt(d)
movaps xmm0, [minus1] // memory location with { -1.0, -1.0, -1.0, -1.0 }
subps xmm4, xmm1
// get a mask of d's smaller than 0.0
psrad xmm1, 31
// select -1 if less than zero or v*v - d if >= 0
andps xmm0, xmm1
andnps xmm1, xmm4
orps xmm0, xmm1
ret
}
narazie chyba zaczne od mniejszych drobiazgow, typu 'normalize' na fpu,
albo nawet mniej - porientuje sie w tutorialach ;-) ale tak czy owak
zadanie nauczenia sie asma chyba mnie nie ominie
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Najnowsze wątki z tej grupy
- 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
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-19 Gdynia => Sales Executive / KAM <=
- 2025-06-19 Warszawa => IT Business Analyst (projects in the telco sector) <=
- 2025-06-19 Lublin => Programista Delphi <=
- 2025-06-19 Warszawa => Scrum Master <=
- 2025-06-19 Warszawa => Solution Architect <=
- 2025-06-19 Warszawa => Software Solution Architect <=
- 2025-06-19 Zakrzewo => Konsultant SAP HCM <=
- 2025-06-19 Zakrzewo => SAP HCM Consultant <=
- 2025-06-19 Poznań => SAP HCR Consultant <=
- 2025-06-19 6,756,000 car crashes in the United States in 2019 with 36,096 fatalities.
- 2025-06-19 6,756,000 car crashes in the United States in 2019 with 36,096 fatalities.
- 2025-06-18 Poseł KO mecenas Giertych został pouczony o obowiązującym prawie [z SN]
- 2025-06-18 112
- 2025-06-18 Poznań => MLOps Engineer <=
- 2025-06-18 Gdańsk => Mainframe (z/OS, Assembler) Developer <=