Symulator EU07 (i nie tylko) > Poszukuję, chcę zrobić

 Optymalizacja symulatora

<< < (2/5) > >>

panthero:
Ok, w końcu znów siedzę przed komputerem, bo wracałem do domu z Opola - swoją drogą - 3 x Kiblem podróż czasem może być męcząca, a czasem fascynująca - dziś to drugie, ale do rzeczy.

Tak pobieżnie czytam te Wasze posty i przyznaję, że nie ogarniam całego forum - jeśli wcześniej się podobny temat postu do mojego pojawił, to przepraszam za powtórzenie. Sedno całej sprawy - z mojego punktu widzenia jest takie - nie neguję tego, że symulator jest optymalnie napisany:
 

--- Cytat: youBy w 17 Kwietnia 2008, 19:58:19 ---
--- Cytat: queuedEU w 17 Kwietnia 2008, 19:50:27 ---Witam, i jednoczenie nie rospisujac sie o zawilosci i balaganie w kodzie zaproponuje funkcje Ground.Update(dt, n);, ale jako ze to jest zbyt obszerne to moze cos innego... uno momento ...

--- Koniec cytatu ---
To akurat jest dosyć dobrze zrobiona funkcja jednak :)

--- Koniec cytatu ---

Po prostu - w Delphi pisze od kilku lat, funkcje "inline" asemblera też już pisałem - teraz na studiach zabrałem sie ostro za "myślenie" w asemblerze z dobrym efektem, więc pomyślałem, że mogę jakoś się Wam przydać. Przyznam się na przykład, że też próbowałem (na projekt) zrobić grę w OpenGL(Tetris) ale jakoś to zarzuciłem, zaliczyłem czym innym - jednak pojęcie o tym pewne mam - ale mnie najbardziej chodzi o doraźne przepisanie metod typowo obliczeniowych - koprocesor, liczby nawet z precyzją większą niż double (tbyte) to wszystko potrafię wykorzystać - instrukcję typu MMX i SEE też można wykorzystać. Ogólnie temat rzeka. Naprawdę chce też coś dać od siebie - kabin ani modeli nie zrobię bo grafik ze mnie marny, ale programowaniem mogę pomć.

Ra:
Myślę, że potencjał może być w wykorzystaniu równoczesnego (równoległego?) mnożenia liczb zmiennoprzecinkowych...

panthero:

--- Cytat: Ra w 17 Kwietnia 2008, 23:14:15 ---Myślę, że potencjał może być w wykorzystaniu równoczesnego (równoległego?) mnożenia liczb zmiennoprzecinkowych...

--- Koniec cytatu ---

A to m. in. można właśnie uzyskać na określonych instrukcjach SSE - http://pl.wikipedia.org/wiki/Streaming_SIMD_Extensions

Wszystkie nowsze procesory - od Pentium III wzwyż to posiadają, więc można tą technologię wykorzystać. Jednym słowem - wiem, że w OpenGL np. w określaniu współrzędnych wykorzystuje się typ Single. Rejestr XMM w SSE może jednocześnie przeprowadzić CZTERY równoległe operacje mnożenia na tym typie. Możliwości są - nie można ich nie wykorzystać. Ja proponuję coś takiego - napiszę sobie np. w Delphi jakiś program, który będzie wykonywał jakieś złożone obliczeniowo operacje. I zrobię go w dwóch lub trzech wersjach - pierwsza "normalna" tj. bez wstawek asemblerowych, druga - wstawki asemblera, ale tylko z wykorzystaniem FPU i trzecia - wstawki asemblera z wykorzystaniem MMX/SSE. Następnie przesłałbym to chętnym developerom, a oni mogliby wyrazić swoje zdanie i odrzucić lub ewentualnie zaaprobować mój pomysł.

Winger:
Mi sie pomysl podoba, tymbardziej iz to wlasnie liczenie fizyki jest najwiekszym obciazeniem starego projektu. Jesli mozna to uproscic/zoptymalizowac, to czemu nie?
Ktokolwiek ma najnowsza wersje kodu, niech ja koledze Panthero udostepni.

youBy:
150 FPS w Mocznikach mam, gdy renderuje się tylko kabina; Normalnie w granicach 15 - 30, a
maksimum wyciągane na moim sprzęcie to jakieś 350-400 FPS. Jak widać to rendering daje ostro po czasie przetwarzania.
(Dane zostały zebrane przypadkowo podczas testów funkcji - wynik negatywny).

A najbardziej aktualne źródła ma chyba @KURS90.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod