Autor Wątek: Assembly  (Przeczytany 1925 razy)

Offline rhdbisgrt

  • Użytkownik

# Sierpień 29, 2012, 09:15:37
Sam interesuje sie asemblerem, chetnie bym przyoptymalizowal pare procedur przepisujac je z reki na SSE itd - i chetnie bym o tym pogadał.. Co ciekawe nie bardzo wiadomo gdzie taki wątek wstawic. Gdzie można wstawic taki wątek i od razu chciałbym ew zaczac topic nt kto z grupowiczów uzywa asma i do czego oraz ogolnie o asmowe programowanie..

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Sierpień 29, 2012, 09:25:02
Cytuj
kto z grupowiczów
Jakich grupowiczów? O jaką grupę ci chodzi?

Co do samego asma, to ja używam. Z reguły do programowania rzeczy typu takiego: http://www.pouet.net/prod.php?which=57688

Offline rhdbisgrt

  • Użytkownik

# Sierpień 29, 2012, 09:46:52
Jakich grupowiczów? O jaką grupę ci chodzi?

Co do samego asma, to ja używam. Z reguły do programowania rzeczy typu takiego: http://www.pouet.net/prod.php?which=57688

a w grach?

Co do demek, nie masz moze jakiegos zrodla jakiegos swojego demka open source (do pokazania) Rzucilbym okiem i moze dorzucił też jakis swój komentarz... (ostatnio faktycznie realnie nawet kodzilem w asmie pod fpu, acz nie opanowalem jeszcze sse i chetnie pogadalbym na te tematy) - gdyby ktos zalozyl tu dział assembly, to moge wrzucic tam pare pytań


Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Sierpień 29, 2012, 10:01:31
Cytuj
a w grach?
Nie, bo po co.

Cytuj
Co do demek, nie masz moze jakiegos zrodla jakiegos swojego demka open source
Nie mam, ale w przypadku asma to nie jest do końca potrzebne - możesz wyczytać debugując exeka. :)

Offline cybek

  • Użytkownik
    • Strona domowa!

# Sierpień 29, 2012, 12:42:41
Ja nie bardzo "używam", ale ucząc się go bawie sie trochę w OSdev i planuje też spróbować programów pod dosa.
Konkretniej NASMa używam.

Offline rhdbisgrt

  • Użytkownik

# Sierpień 29, 2012, 13:28:46
Nie, bo po co.

Nie da sie wykorzystac mocy sse/avx w kodzie w grach ? ?

Kompilator raczej nie przepisze zwykłego kodu pod sse, wiec trzebaby to klepac z ręki, nie ma w gamedevie takich kawałkow ktore by przyspieszyly np ze 3 czy 5 razy po przepisaniu na sse/avx ?

(poki co optymalizowalem swoj prosty raytracer i poprzyspieszalem poszczegolne funkcje, (okolo 2x) na calosc poki co to sie nie przelozylo wyraznie niestety poki co - ciekaw jestem czy przy dalszym przypisywaniu przyspieszy

(nie sprofilowalem jeszcze co warto przepisac i nie wzialem sie też za sse, ale gdyby dalo 2x speedup to bym uważał że warto)
« Ostatnia zmiana: Sierpień 29, 2012, 13:30:50 wysłana przez rhdbisgrt »

Offline cybek

  • Użytkownik
    • Strona domowa!

# Sierpień 29, 2012, 13:34:42
Kompilator raczej nie przepisze zwykłego kodu pod sse, wiec trzebaby to klepac z ręki, nie ma w gamedevie takich kawałkow ktore by przyspieszyly np ze 3 czy 5 razy po przepisaniu na sse/avx ?
Dlaczego niby nie? Polecenia jak polecenia, wystarczy dać odpowiednią flagę dla kompilatora.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Sierpień 29, 2012, 13:54:48
Cytuj
Nie da sie wykorzystac mocy sse/avx w kodzie w grach ? ?
Da się, ale mówimy o asmie, nie o SSE/AVX, prawda? Bo tych ostatnich możesz używać przez zbudowane operacje kompilatora, który w dodatku Ci to zoptymalizuje, zadba o rejestry, itd.

Cytuj
Kompilator raczej nie przepisze zwykłego kodu pod sse, wiec trzebaby to klepac z ręki, nie ma w gamedevie takich kawałkow ktore by przyspieszyly np ze 3 czy 5 razy po przepisaniu na sse/avx ?
Zwykłego kodu nie przepisze, ale możesz napisać kod pod SSE.

Cytuj
(poki co optymalizowalem swoj prosty raytracer i poprzyspieszalem poszczegolne funkcje, (okolo 2x) na calosc poki co to sie nie przelozylo wyraznie niestety poki co - ciekaw jestem czy przy dalszym przypisywaniu przyspieszy
Jak optymalizujesz na ślepo, to się nie dziw. Najpierw pomierz gdzie się przycina, a dopiero potem optymalizuj jak wiesz już co.

Ale jeżeli chodzi o optymalizacje raytracingu na CPU, to ja bym sobie dał spokój i przepisał na Pixel (lub Compute) Shadery. :)

Cytuj
Dlaczego niby nie? Polecenia jak polecenia, wystarczy dać odpowiednią flagę dla kompilatora.
Nie sądzę, żeby kompilator sam z siebie tak łatwo ogarnął wektoryzację.

Offline Xender

  • Użytkownik

# Sierpień 29, 2012, 14:53:56
@up - co do kompilatorów - czemu nie miałyby ogarniać wektoryzacji? Przy innej magii jaką potrafią nie wygląda to na coś niewykonalnego.

Ma ktoś może jakieś materiały na ten temat? Jakieś testy czy zestawienia kodu ręcznie pisanego pod SSE z automatycznie optymalizowanym?

Offline yarpen

  • Użytkownik

# Sierpień 29, 2012, 17:00:58
Nie pamietam dokladnych liczb, bo to bylo kawal czasu temu, ale przepisanie naszej biblioteki recznie na SSE/AltiVec/SPU bardzo mocno ja dopalilo. Kompilatory radza sobie w bardzo prostych przypadkach, ale jakiekolwiek bardziej skomplikowane f-kcje je klada. Koder moze lepiej wykorzystac specyfike sytuacji. Prosty przyklad - cross product mozna napisac uzywajac jedynie f-kcji wektorowych, w ogole nie przechodzac w skalary, ale jezeli to zapiszemy 'klasycznie' to kompilator zrobi z tego sieke.
Duzo zalezy tez od platformy, na x86/SSE jest jeszcze niezle, na X360 tak sobie, a na SPU czasami mozna sie poplakac.