Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 5.620 pregleda

Najnovija ↓

Using assembler i c++ to speedup OpenGL app 04.09.2005. u 20:13 · pre 257 meseci #1
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?
Potpis
EOF
Re: Using assembler i c++ to speedup OpenGL app 05.09.2005. u 01:00 · pre 257 meseci #2
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
Re: Using assembler i c++ to speedup OpenGL app 05.09.2005. u 01:06 · pre 257 meseci #3
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.
Re: Using assembler i c++ to speedup OpenGL app 06.09.2005. u 02:07 · pre 257 meseci #5
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 :)
Re: Using assembler i c++ to speedup OpenGL app 07.09.2005. u 08:55 · pre 257 meseci #6
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];

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme