Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Using assembler i c++ to speedup OpenGL app

[es] :: 3D programiranje :: Using assembler i c++ to speedup OpenGL app

[ Pregleda: 4076 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
*.vdial.verat.net.

ICQ: 208550327


+14 Profil

icon Using assembler i c++ to speedup OpenGL app04.09.2005. u 19:13 - pre 176 meseci
Zanima me koliko je korisno koristiti asembler u C++ ( __asm ... ) ili celih funkcija odradjenih u asembleru sa OpenGL-om.

Da li vredi uciti asembler zbog ubrzanja programa.

U stvari, znam da je asembler brzi, ali sa danasnjim funkcijama grafickih kartica, da li je potrebno neke "sporije" radnje prebaciti u asembler code?
EOF
 
Odgovor na temu

yooyo
Centroid / Technical director

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: Using assembler i c++ to speedup OpenGL app05.09.2005. u 00:00 - pre 176 meseci
Zavisi od podele posla. Ono sto CPU radi treba sto bolje optimizovati, a GPU deo posla treba maksimalno prilagoditi hardveru. Npr.. mozes maksimalno da se trudis da ubrzas neki deo programa ali problem je npr. u transferu podataka na karticu i neces dobiti ocekivano ubrzanje.

Da bi stekao bolju sliku sta najvise utice na performanse pogledaj dokumentaciju na:
http://developer.nvidia.com/ob...ggraph_2005_presentations.html
http://developer.nvidia.com/object/perf_docs_by_date.html

Sto se asemblera tice... ima smisla pisati SSE optimizovane matematicke rutine ako radis veliki deo posla na CPU.

yooyo
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.hsd1.wa.comcast.net.



+18 Profil

icon Re: Using assembler i c++ to speedup OpenGL app05.09.2005. u 00:06 - pre 176 meseci
Yooyo je u pravu, ali u velikoj vecini slucajeva nece biti potrebna optimizacija u vidu asemblera, vec algoritamska optimizacija. Asm programiranje je danas vrlo retko u igrama.
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1339
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+46 Profil

icon Re: Using assembler i c++ to speedup OpenGL app05.09.2005. u 02:19 - pre 176 meseci
Dodao bih jos da ako ne znas 100% sta radis, lako mozes da napises kod koji je
sporiji od onoga sto bi generisao kompajler. Posebno sa danasnjim procesorima
i svim mogucim cache-related problemima.
 
Odgovor na temu

Filip Strugar
Filip Strugar
Leamington Spa, UK

Član broj: 9871
Poruke: 383
*.dialup.sezampro.yu.

Sajt: www.rebellion.co.uk


+1 Profil

icon Re: Using assembler i c++ to speedup OpenGL app06.09.2005. u 01:07 - pre 175 meseci
I ja da ponovim vec receno: Mani se asemblera i zaboravi na pojam low-level 'ubrzavanja programa' dok ti stvarno konkretno ne zatreba :)
Asembler nikada neces iskoristiti u ovoj oblasti - osim u jako retkim slucajevima - npr brzi int cast (ali za to ti opet ne treba nikakvo znanje asemblera) ili sto je yooyo rekao SSE, ako ti se bas nekad zabode da npr radis optimizaciju CPU vertex processinga na vec skoro-zavrsenom projektu, sto ti stvaaaaarno verovatno nikad nece trebati :)
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1339
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+46 Profil

icon Re: Using assembler i c++ to speedup OpenGL app07.09.2005. u 07:55 - pre 175 meseci
Da dodam samo da i u C++-u mozes da uradis dosta toga sto je vezano za
hardware, ako znas kako isti funkcionise. Toliko ima bitnijih stvari od low-level
optimizacije da ona postaje "deprecated" :)
Organizovati strukture tako da imaju cache-friendly velicinu, manje "skakanja" po
memoriji itd.

Primera radi:
Code:
memcpy( &matrix1, &matrix2, sizeof(matrix) );

je mnogo sporije od:
Code:
for (int i=0; i<16; ++i) matrix1[i] = matrix2[i];

sto opet moze biti sporije od:
Code:
for (int i=15; i>=0; --i) matrix1[i] = matrix2[i];

 
Odgovor na temu

mloh2
Zoran Stupic
BG

Član broj: 62103
Poruke: 24
*.beotel.net.



Profil

icon Re: Using assembler i c++ to speedup OpenGL app09.09.2005. u 14:07 - pre 175 meseci
Ja podrzavam najsporiju varijantu :)
matrix1=matrix2;
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1339
222.65.106.*

ICQ: 14293955
Sajt: https://github.com/milost..


+46 Profil

icon Re: Using assembler i c++ to speedup OpenGL app09.09.2005. u 16:40 - pre 175 meseci
Pazi, to moze da bude i jedna od boljih, ako je kompajler dobar, mada se ne bih
oslonio na to :)
 
Odgovor na temu

Ognjen Djukic

Član broj: 64080
Poruke: 26
*.kc.vicert.com.



Profil

icon Re: Using assembler i c++ to speedup OpenGL app14.09.2005. u 13:53 - pre 175 meseci
Zasto je:
memcpy( &matrix1, &matrix2, sizeof(matrix) );

sporije od:
for (int i=0; i<16; ++i) matrix1 = matrix2;

?
Thanks.
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1339
222.65.109.*

ICQ: 14293955
Sajt: https://github.com/milost..


+46 Profil

icon Re: Using assembler i c++ to speedup OpenGL app14.09.2005. u 14:32 - pre 175 meseci
Zato sto memcpy mora da proveri da li se preklapaju blokovi memorije koje
kopiras. Isto tako na brzinu kopiranja utice alignment tih blokova memorije
i naravno da li je ta memorija kesirana.
 
Odgovor na temu

[es] :: 3D programiranje :: Using assembler i c++ to speedup OpenGL app

[ Pregleda: 4076 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.