Autor Wątek: physics processing unit  (Przeczytany 11999 razy)

Offline scalarvector

  • Użytkownik

# Luty 06, 2006, 10:05:16
Czy czeka nas kolejna "ewolucja" w programowaniu gier? Czy w DirectX 10 będzie obsługa zdarzeń fizykalnych m.in takich jak ragdoll? Co sądzicie na temat takich kart physics processing unit do PC?

Pozdrawiam

Michał




Offline Mr. Spam

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

Offline Master Ar2ro

  • Użytkownik
    • Master Ar2ro's Software

# Luty 06, 2006, 12:14:52
Nie sądzę, żeby w DX10 Microsoft dodał silnik fizyczny (lub jakieś jego elementy)... w końcu jest to API *graficzne*. Jeżeli natomiast chodzi o karty fizyczne do PC to uważam, że jeszcze długo będzie to tylko dla ludzi albo bogatych, albo obsesyjnych graczy. Po pierwsze jest to dodatkowy wydatek, bez którego komputer doskonale sobie radzi, a do tego większość gier radzi sobie z fizyką i bez takich kart, co przy ciągłym wzroście wydajności także nie powinno być żadnym problemem...

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Luty 06, 2006, 12:40:40
PPU na pewno szybko znajdzie się w konsolach i pecety przez niego zostaną jeszcze bardziej w tyle. Chyba, że upowszechni się i w pecetach w jakiś nietypowy sposób, np. integrowany z kartami graficznymi albo płytami głównymi. Bo jako osobną kartę to faktycznie niewiele osób kupi.

st3tc

  • Gość
# Luty 06, 2006, 12:52:25
Ja się kiedyś próbowałem zabrać za robienie własnego procesora do fizyki w układzie FPGA. Kupiłem sobie zestaw Spartan 3. Układ ma 200000 bramek, ale jak się okazało jest to o wiele za mało. Ogólnie projekt miał się składać z 4 części:
- karta na PCI z procesorem
- DLL i driver do obsługi karty
- przerobiony GCC i binutils pod ten procesor (akurat to jest najłatwiejsze)
- biblioteka fizyczna pod PPU
Karta na PCI miała zawierać układ FPGA, Flash EEPROM do bootowania układu FPGA oraz pamięci DDR-SDRAM. Ogólnie miał być to procesor zoptymalizowany do wykonywania operacji ma macierzach i wektorach: dodawanie, odejmowanie, mnożenie, wyznaczniki, transpozycja, odwracanie i wiele innych. Układ również musiał by posiadać wbudowany kontroler pamięci DDR-SDRAM oraz mostek PCI i kontroler wewnętrznej szyny pomiędzy mostkiem, procesorem oraz kontrolerem pamięci, czyli bardzo dużo pracy i bardzo dużo wymaganych zasobów logicznych. Miało to działać tak, że gra ładuje do karty swoje skompilowane procedury, którymi ma coś liczyć. Potem programista przesyła tylko parametry do karty i czeka na wynik.
Główne problemy jakie napotkałem przy próbie implementacji samego procesora oraz przemyślenia dotyczące samego projektu:
1. Bardzo duża wymagana liczba układów mnożących i sumujących, żeby w miarę szybko liczyć sumy iloczynów, inaczej trzeba by wiele cykli czekać na wykonanie np. pomnożenia macierzy. Układy FPGA mają przeważnie układy mnożące stałoprzecinkowe, a tutaj trzeba conajmniej float, jeśli nie double.
2. Efektywna implementacja operacji na macierzach. Potrzeba dużo rejestrów tymczasowych do przechowywania wyników mnożenia. Procesor miał posiadać 16 rejestrów na macierze i wektory (5x5 float lub double) oraz 32 rejestry ogólnego przeznaczenia.
3. Kilka jednostek liczących na macierzach. Z tym już by był mniejszy problem, bo moduły napisane w VHDLu można używać wiele razy. Po prostu trzeba mocno rozbudowany ALU oraz FPU w jednym bloku.
4. Taki procesor musiałby posiadać przetwarzanie potokowe, żeby to w miarę szybko chodziło. Dlatego trzeba kilka jednostek obliczeniowych.

Projektowanie samej jednostki sterującej  i dekodera instrukcji akurat zabiera najmniej czasu, ponieważ ona tylko analizuje wartości i generuje odpowiednie sygnały dla pozostałych jednostek. W najlepszym przypadku jest to automat stanów.
Sam silnik fizyczny byłby zaimplementowany jako biblioteka linkowana z kodem programisty gry. W przypadku niektórych algorytmów można by się pokusić o implementację jak oddzielne bloki funkcjonalne w procesorze.

Jeśli chodzi $$$, to tutaj był największy problem. Sam development board kosztował mnie 500zł, i to była najtańsza werjsa. Jeśli chciałbym coś większego, 500$ to minimum, a na tyle już mnie nie stać. Z wykonaniem płytki do takiego układu też by nie było większego problemu, bo w jakiejś firmie za rozsądne pieniądze wykonają to.
Po analizie kosztów wyszło, że wykonanie samego układu (płyta, części i zlutowanie tego) kosztowało by z 300$, więc nie sądzę aby ktoś się tym zainteresował oprócz dużej firmy.

Offline ws

  • Użytkownik

# Luty 06, 2006, 15:52:08
Havok i Ageia sa glownymi rozgrywajacymi i wszystko zalezy ktora opcja wygra.
Havok stawia na fizyke na CPU i GPU a Ageia na PPU ktore zreszta sama produkuje.

Offline exor

  • Użytkownik

# Luty 06, 2006, 16:01:15
a ja myśle że sprawa może się powtórzyć podobnie jak kiedyś z akceleratoami 3d. teraz może procesory PPU są kosmicznie drogie, ale IMHO ktoś kiedyś wyprodukuje jakąś tanią karte podpinaną pod PCI, którą teoretycznie będzie mógł kupić każdy zapalony gracz. Kiedyś też nikt nikt nie miał akceleratorów 3d, a teraz to jest standard w każdym nowszym komputerze. Uważam że to tylko kwestia czasu

Offline Master Ar2ro

  • Użytkownik
    • Master Ar2ro's Software

# Luty 06, 2006, 16:20:33
exor: wydaje mi się, że nie będzie tak (tzn, że to tylko kwestia czasu), o ile gry do działania nie zaczną wymagać takich kart to wydaje mi się, że nie wejdą do powszechnego użytku.

W momencie, kiedu kupujesz kartę graficzną, która w pełni sprzętowo obsługuje DX9 i OGL 2 to różnica jest znacznie większa od tego, kiedy miałbyś jedynie starocia w stylu mojego śp. Monstera 3D, niż w momencie, kiedy z całkowicie programowego silnika fizycznego przejdziesz na sprzętowe wspomaganie... wyglądać gra będzie dokładnie tak samo, a działać jedynie nieco szybciej... poza tym... z akceleratorów graficznych korzystają prawie wszystkie gry, a silników fizycznych w bardzo wielu po prostu NIE TRZEBA (np. settlers, hom&m, civilization, itp). Można napisać sapera, wykorzystującego akcelerator, żeby wybuchy ładniej wyglądały, ale czy warto pisać sapera, w którym przylegające pola będą się poruszać po wybuchu zgodnie z zasadami fizyki? ;)

st3tc

  • Gość
# Luty 06, 2006, 16:24:51
Jeśli produkcja GPU jest w miarę tania, to PPU też będą tanie. Konkretnie lepiej by było wstawić na specjalnej karcie procesory z optymalizacją dla operacji na wektorach, wsparciem dla sieci neuronowych, itp. Koszt wyprodukowania jednej karty jest duży (kilkaset $$$), ale gdy produkcja idzie w setki tysięcy, to ceny pewnie będą porównywalne z cenami akceleratorów 3D.
Chyba, że komputery wieloprocesorowe/wielordzeniowe będą na porządku dziennym, to specjalizowane procesory nie mają większego sensu, bo zwykły procesor sobie z tym poradzi.

Offline exor

  • Użytkownik

# Luty 06, 2006, 16:30:41
poza tym... z akceleratorów graficznych korzystają prawie wszystkie gry, a silników fizycznych w bardzo wielu po prostu NIE TRZEBA (np. settlers, hom&m, civilization, itp). Można napisać sapera, wykorzystującego akcelerator, żeby wybuchy ładniej wyglądały, ale czy warto pisać sapera, w którym przylegające pola będą się poruszać po wybuchu zgodnie z zasadami fizyki? ;)
Pamiętaj że na początku też tylko quake używał akceleratora (wtedy chyba voodoo), a teraz głupiego bilarda nie odpalisz bez T&L. Dynamika w grach coraz badziej się liczy, bo im bardziej dąży się do maksymalego realizmu tym więcej uwagi zwraca się na fizykę. Havok II też nie jest szczytem technologicznym i pewnie silniki fizyczne będą się dalej rozwijały, a to wymaga odpowiniej mocy obliczeniowej. Jasne że na początku PPU będą miały wielkie stacje robocze w laboratoriach, ale moim zdaniem to się kiedyś upowszechni, ale oczywiście mogę się mylić :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 06, 2006, 16:42:03
Cytuj
Czy czeka nas kolejna "ewolucja" w programowaniu gier?
Nie. CPU radzą sobie z fizyką wystarczająco dobrze. Dodatkowe bajery były by fajne, ale nie na tyle, żeby przeciętny użytkownik kupił sobie do tego kartę.

Cytuj
Czy w DirectX 10 będzie obsługa zdarzeń fizykalnych m.in takich jak ragdoll?
Nie będzie. DirectX to API pozwalające na dostęp do sprzętu, nie silnik graficzny, fizyczny, czy jakikolwiej jeszcze. Pozatym, to PPU, o którym mówisz, zostało zrobione przez jedną firmę i akceleruje tylko jeden silnik fizyczny (Novodex). Najprawdopodobniej nie zamierzają oni pomóc w jakikolwiek sposób innym silnikom fizycznym, więc na DirectPhysics raczej nie ma co na razie liczyć.

Cytuj
Nie sądzę, żeby w DX10 Microsoft dodał silnik fizyczny (lub jakieś jego elementy)... w końcu jest to API *graficzne*.
DirectSound i DirectInput są częścią DirectX, a API graficznym nie są. ;) Jeżeli spopularyzują się karty do fizyki, to MS pewnie dorzuci DirectPhysics do zestawu. Na razie jednak się to nie zapowiada.


Cytuj
Po analizie kosztów wyszło, że wykonanie samego układu (płyta, części i zlutowanie tego) kosztowało by z 300$, więc nie sądzę aby ktoś się tym zainteresował oprócz dużej firmy.
Przecież nie będą budować PPU na FPGA. :) Jak już wymyślą, jak to ma działać, to zlecą produkcję chipów o niezmienialnej funkcjonalności, co w masowej produkcji na pewno będzie tańsze, a przy okazji mogą zmieścić tam więcej potoków. :)

Cytuj
Havok i Ageia sa glownymi rozgrywajacymi i wszystko zalezy ktora opcja wygra.
A ja siedzę na darmowym Newtonie i jestem z niego naprawdę zadowolony. :)

Cytuj
a ja myśle że sprawa może się powtórzyć podobnie jak kiedyś z akceleratoami 3d.
A ja myślę, że niekoniecznie. W przypadku akceleratorów 3D, różnicę było widać od razu i wykorzystywało to już trochę gier. W przypadku fizyki gry zawsze będą musiały być tak skonstruowane, żeby mogły sensownie działać bez pomocy PPU, a obecność PPU pozwoli tylko na dodatkowe bajery. A że fizyka jest nieco mniej widocznym elementem niż grafika - "jeżeli nie widać różnicy, to po co przepłacać?". :)

Cytuj
exor: wydaje mi się, że nie będzie tak (tzn, że to tylko kwestia czasu), o ile gry do działania nie zaczną wymagać takich kart to wydaje mi się, że nie wejdą do powszechnego użytku.
Gry nie zaczną wymagać PPU, bo zawsze będą gracze bez tego. A gracze bez PPU zawsze będą, bo gry nie zaczną tego wymagać. :)

Cytuj
Konkretnie lepiej by było wstawić na specjalnej karcie procesory z optymalizacją dla operacji na wektorach, wsparciem dla sieci neuronowych, itp.
Karty graficzne są coraz bardziej programowalne, więc być może kiedyś rozwój pójdzie także w tym kierunku.

st3tc

  • Gość
# Luty 06, 2006, 17:56:41
A ja uwazam, ze to nadejdzie. Jak sie pojawialy pierwsze akceleratorki (i nie bylo to voodoo) - a wlasciwie deaccelaratorki - bo softwarory rendering byl szybszy, tez nikt nie wrozyl temu swietlanej przyszlosci. Potem byl boom i pragnienie coraz wiekszej mocy. A karty dzwiekowe ? - przeciez tez mozna liczyc na sofcie dzwiek 3D, mozna ... ale nie taki jak wyspecjalizowane uklady DSP. Na fizyke tez przyjdzie pora - i musi przyjsc.

Jak slysze, ze ktos mowi, ze CPU uciagnie fize jak karta dedykowana - to chyba mu sie rozum pomieszal. Niech np. mi ktos pokaze CPU ktore jest w stanie wykonac transformacje kilkuset milionow wierzcholkow (jednostki VPU w kartach graficznych).

Podobnie jest z fizyka - im wiecej obiektow, tym wieksze wymagania. Przypomina to sytuacje z grafa 3D. Napoczatku tez byla slaba (tak jak obecna fiza na CPU), pozniej wraz z zwiekszaniem mocy szczegolowosc sie zwiekszala, coraz lepsze efekty itp itd - to samo bedzie z fiza.

Kto sie teraz zachwyca np fizyka z pierwszych unreali ?. Kiedys to bylo cos - teaz juz budzi usmiech na twarzy. Apetyt rosnie w miare jedzenia.

Karty sprzetowe do fizyki nadejda bo MUSZA nadejsc. GameDev to taki tworek, gdzie jesli jest mozliwosc wycisniecia wiekszej mocy - to sie to bierze.
« Ostatnia zmiana: Luty 06, 2006, 17:58:14 wysłana przez st3tc »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 06, 2006, 18:04:14
Cytuj
Jak slysze, ze ktos mowi, ze CPU uciagnie fize jak karta dedykowana - to chyba mu sie rozum pomieszal.
Jeżeli chodzi o mnie, to nie mówię, że uciągnie tak samo. CPU uciągnie fizykę w wystarczającym stopniu do zapewnienia grywalności, bo dopóki PPU nie staną się bardzo powszechne, żaden developer sobie na takie wymaganie raczej nie pozwoli i dodatkowa moc z PPU pójdzie wyłącznie na bajery, bez których jednak można przeżyć. A skoro bez tego można przeżyć, to po co kupować PPU.


Tak, czy inaczej, mam nadzieję, że PPU się nie upowszechnią dopóki nie wyjdzie jakieś niezależne od konkretnego i grubo płatnego silnika fizycznego.

st3tc

  • Gość
# Luty 06, 2006, 18:07:20
Ja nie pisalem o kupowaniu kart, tylko, ze era sprzetowej fizyki nadeszla, i nie ma bata - bedzie sie rozwijac (i dobrze).
Rynek ma to do siebie, ze nie lubi pustki ani monopolu - jestem ciekaw kiedy wyjda konkurencyjne uklady - zacznie sie wyscig, mozliwe, ze doczekamy sie kiedys standardu API itp itd. Czemu nie ? :)

Offline ws

  • Użytkownik

# Luty 06, 2006, 18:29:51

Nie. CPU radzą sobie z fizyką wystarczająco dobrze. Dodatkowe bajery były by fajne, ale nie na tyle, żeby przeciętny użytkownik kupił sobie do tego kartę.

Radza sobie slabo. Na obecnych CPU mozesz robic sensowna symulacje niewielkiej ilosci cial.
Havok stawia na nowe  wielordzeniowe CPU do symulacji cial wplywjacych na przebieg gry
i na GPU do symulacju efektow wylacznie graficznych opartych na fizyce. O takich efektach graficznych
na CPU mozesz tylko pomarzyc.


Cytuj
A ja myślę, że niekoniecznie. W przypadku akceleratorów 3D, różnicę było widać od razu i wykorzystywało to już trochę gier. W przypadku fizyki gry zawsze będą musiały być tak skonstruowane, żeby mogły sensownie działać bez pomocy PPU, a obecność PPU pozwoli tylko na dodatkowe bajery. A że fizyka jest nieco mniej widocznym elementem niż grafika - "jeżeli nie widać różnicy, to po co przepłacać?". :)

Tu sie mylisz. Jezeli gra bedzie korzystac z PPU to bez karty:
- albo roznica w grafice bdzie ogromna (gra bedzie korzystac z mnostwa efektow graficznych opartych na fizyce)
- albo gra bez karty w ogole nie zadziala / ale kto sie odwazy ja wydac?


Offline Master Ar2ro

  • Użytkownik
    • Master Ar2ro's Software

# Luty 06, 2006, 18:44:14
Tu sie mylisz. Jezeli gra bedzie korzystac z PPU to bez karty:
- albo roznica w grafice bdzie ogromna (gra bedzie korzystac z mnostwa efektow graficznych opartych na fizyce)
- albo gra bez karty w ogole nie zadziala / ale kto sie odwazy ja wydac?
ad1. Nie sądzę, aby różnica w grafice mogła być ogromna. Na pewno nie jestem w tym temacie na bierząco, jednak nie wybrażam sobie, o jakich efektach graficznych opartych na fizyce mówisz? Warunki atmosferyczne? Nie trzeba symulować każdej kropli deszczu ani też każdego źdźbła trawy, żeby poruszały się zgodnie z zasadami fizyki...

ad2. No i o to tez chodzi... kto wyda grę, dla której rynek (czyli zyski) jest bardzo ograniczony?