-
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
- 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
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
Najnowsze wątki
- 2025-04-29 Nożownik zaatakował i zabił lekarza
- 2025-04-29 Polecam żarówki Blackout na Blackout z dużym gwintem
- 2025-04-29 Porażka kasty sędziowskiej przed Trybunałem Sprawiedliwości UE
- 2025-04-29 Kombinacja znaków A11 i B33?
- 2025-04-29 Na jakim etapie jest sprawa karna "gaśnicowego" Brauna z grudnia 2023?
- 2025-04-29 TSUE jest "przeciw a nawet za" neosędziami :-)
- 2025-04-29 Wrocław => Konsultant wdrożeniowy (systemy kontrolingowe) <=
- 2025-04-29 China => Production Coordinator / Representant Product Dev <=
- 2025-04-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-04-28 Hiszpania bez pradu
- 2025-04-28 chinska stal
- 2025-04-28 QR kody
- 2025-04-28 Dojarki
- 2025-04-28 Hiszpania bez pradu
- 2025-04-28 Kiedy posiedzenia sejmu zgodne ze standardem Konklave ?