Hirdetés

2024. április 24., szerda

Gyorskeresés

Hozzászólások

(#1) Phvhun


Phvhun
őstag

Az egész cikket kb értelmetlenné tette hogy nem írtad le hogy mi is konkrétan az adatorientált programozási modell, esetleg egy példával kiegészítve.

(#2) Abu85 válasza Phvhun (#1) üzenetére


Abu85
HÁZIGAZDA

Kiegészítve. :R

Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

(#3) sirpalee válasza Phvhun (#1) üzenetére


sirpalee
csendes tag

A konkrétumok leírásához nem ártana gyakorlatban is érteni hozzá. Nem vetted észre, hogy az Abu cikkek mindig ködösítenek, és buzzwordokkel zavarják össze az olvasót, miközben semmiről sem szólnak?

raytraceisten és csodamedic

(#4) Phvhun válasza sirpalee (#3) üzenetére


Phvhun
őstag

Mert te mit is tettél le az asztalra 3.5 év ittléted alatt?

10 hozzászólást, amiből minimum 1 csak azért jött létre hogy a házigazdát szapulja.

(#5) 7time válasza sirpalee (#3) üzenetére


7time
senior tag

Ha jobban értesz hozzá tőled is szívesen olvasunk cikkeket, fikázni meg kb mindenki tud.

(#6) sayinpety válasza Phvhun (#1) üzenetére


sayinpety
tag

Regebb ota letezik a problema. A latency novekedese az oka. Az L1 1-3 ciklus, a main memory sokkal tobb. Az objektumorientalt programozas egyszerre jo es rossz. Egy osztalyra van kodod, amit futtatsz tobbszor. Ha a kod i/d cache misst eredmenyez, akkor mindegyik futtatas draga. Minden miss utan a main memory latencyvel lassul a kod. A DOD megszunteti az i/d cache misst az elso futtatas utan. A DOD kod csak egy for ciklus.

A multithread is nehez, ha nem lehet tudni elore hogyan lesz elerve az adat. Offload is lehetetlen jobb adateleres nelkul. Egy game kiveteles program. Tudni lehet minden adatrol amihez hozzaferunk. Esszeru elobb az adatokat optimalizalni, aztan a kodot.

(#7) Meteorhead


Meteorhead
aktív tag

Csak én nem értem, hogy ez a gyakorlatban mit jelent? Lehet, hogy eddig nem követték végig az adatok betöltését és a kiírásokat, de azért lehetett tudni, hogy mikor mit csinál egy motor. Adatpárhuzamosságra tervezni egy motort ennyire újnak számít?

(#8) atus72


atus72
senior tag

En nem fikazok de nekem sem jott le hogu pontosan mi is ez az uj paradigma :)
A legjobb valami pelda lenne, de nem varom el Abutol hogy csinaljon egyet hanem valami link kellene hogy megnezzuk mi is ez.

(#9) sayinpety válasza Meteorhead (#7) üzenetére


sayinpety
tag

Igen. A meglevo code base sok penzt emesztett fel. A valtast a cross-platform studiok a console generaciokhoz tervezik. Az elerheto game enginek jelentos resze nem veszi figyelembe az adatoptimalizalast/adatparhuzamositast, nem hasznalnak optimalis adatbetoltest. Allando a cache miss.

A DOD ma meg a console exclusive gamek privilegiuma.

[ Szerkesztve ]

(#10) marcell991


marcell991
tag

Itt egy pdf a DICE oldaláról, egész jól elmagyarázza a problémát [link]

Developers, developers, developers, developers! http://youtu.be/KMU0tzLwhbE

(#11) Phvhun válasza marcell991 (#10) üzenetére


Phvhun
őstag

Érdekes.

(#12) Psych0


Psych0
őstag

A gráfon lemaradt a processzor és memória performansz mértékegysége. Persze az is elég lett volna, hogy relatív performansz, de akkor is érdekes lenne, hogy milyen mértékegység esett ki. Gondolom hozzáférési idő, ami a processzorok esetében a regiszterekre értendő...

"As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches 1."

(#13) Goose-T


Goose-T
veterán

Beszabadult valaki az irodába, aki ért az SQL-hez is? :D Én régóta így írom a kódjaimat, most már tudom, hogy DOD filozófiával fejlesztek, tök jó. Ezen is látszik, hogy mennyire nincs átjárás a nagyvállalati szoftverfejlesztés és a játékstúdiók között.

Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar

(#14) bbTamas77 válasza sirpalee (#3) üzenetére


bbTamas77
aktív tag

Amúgy a cikkben világosan levan írva a lényeg.

[ Szerkesztve ]

(#15) Meteorhead válasza marcell991 (#10) üzenetére


Meteorhead
aktív tag

Magyarán rájöttek, hogy játék motorokban is van AoS vs SoA? Gratulálok.

(#16) sirpalee válasza Meteorhead (#15) üzenetére


sirpalee
csendes tag

Ez a folyamat már nagyon régóta tart. Az más téma, hogy a cikkíró csak most olvasott róla elsőnek.

raytraceisten és csodamedic

(#17) #06658560 válasza Phvhun (#4) üzenetére


#06658560
törölt tag

Mondjuk jól látja a helyzetet?

(#18) Raymond válasza sirpalee (#16) üzenetére


Raymond
félisten

Ott a pont. Egesz pontosan a konzolos jatekfejlesztesnel epp par eve a PS3 es CELL miatt volt nagy tema. Ugyanugy ahogy a SoA vs AoS is. Csak lehet hogy akkor a cikkiro meg nem kovette annyira tuzetesen a Beyond3D forumot igy nincs hatter info, csak most itt-ott van egy ilyen buzzword-el teli cikk ami siman sebbi egy darab ottani hozzaszolasa alapjan is keszulhet. Ahogy keszult is most mar nem egyszer :)

Privat velemeny - keretik nem megkovezni...

(#19) sayinpety válasza Raymond (#18) üzenetére


sayinpety
tag

Cellnel korabbi a problema. A Cellel csak nagyobb figyelmet kapott. A console kulon kategoria. Cross-platform fejlesztes soran a 3-4 eves keses lehetseges. Ma csak azert kap ujra figyelmet, mert mindenki elkezdi alkalmazni. A next-gen consolehoz/korszakhoz uj enginek keszulnek. A regi code base mar kitermelte a befektetest.
A Mantle sem vilagrengeto ujdonsag. A GCM volt az elso modern low-level/high-performance API, am a koncept csak most kerul at PCbe. Fel evtized kesessel.

(#20) lenox


lenox
veterán

A koncepció már egy évtizede létezik

A koncepcio kb. onnantol letezik, hogy kitalaltak a cache-t. Nem veletlenul talaltak ki, persze mindig ra lehet csodalkozni, hogy je, ha nem szopatom a cachet, hanem ertem, hogy hogyan mukodik, akkor mennyivel gyorsabb tud lenni valami, de monduk ezt tul nagy felfedezesnek nem neveznem.

(#21) Reverend válasza lenox (#20) üzenetére


Reverend
tag

Bizony! Csak valószínű akik most felfedezték újra a DOD-t, azok még nem éltek 1995-ben, amikor sz@ptunk a cache associativity-vel [link].

Csak hogy a fiatalok is értsék: ha egy cache 2 way assoc. és nem mellesleg (pl.) 4096 byte széles (pl. 8k L1 cache), azt jelenti, hogy a memóriában minden egész 4096 byte-os címről származó adatból 2-őt tud tárolni. Azaz ha beolvasol egy adatot az egyszerűség kedvéért 4096-ról, majd 8192-ről, ez még a cache-ben lesz. De ha beolvasol egyet 12288-ról, kiüti a korábbi adatot. Ha ezek után írsz egy kódot, mely két nagy tömböt összead egy harmadikba, és történetesen a tömbök alignolva vannak 4096-ra (mert pl. a méretük ennek egész számú többszöröse, és egymás mögött vannak), akkor látható, hogy szépen folyamatosan cache missed lesz. De ha az eredmény tömböt eltolod a cache blokkméretével (cache line, valahol 16 - 128 byte között processzortól függően), akkor sosem lesz cache missed, egész pontosan csak blokkhatárkor. A kód többszörösére gyorsul. Tipikus DOD probléma, illetve annak egy tovább bonyolított verziója.

Ezzel a problémával egy 486-os gépen küzdöttem 1995 körül. Ha jól emlékszem.

(#22) Jim Tonic


Jim Tonic
nagyúr

Klassz. Akkor most visszatérünk majd oda, amit régóta állítanak néhányan, hogy az OO ugyan kényelmes, de óriási overhead lesz a végeredménye?

Alcohol & calculus don't mix. Never drink & derive.

(#23) oraihunter válasza sirpalee (#3) üzenetére


oraihunter
aktív tag

Most ez komoly? :F :(((

oraihunter felhasználónak 381 pozitív és 0 negatív értékelése van a fórumon! Ha sürgős, akkor az adatlapon a telószám (06-30-293-42-53), de számkijelzés nélküli hívást már 21-éve nem fogadunk!

(#24) sirpalee válasza oraihunter (#23) üzenetére


sirpalee
csendes tag

Volt smiley? Nem. Akkor gondolom egyértelmű a válasz.

raytraceisten és csodamedic

Copyright © 2000-2024 PROHARDVER Informatikai Kft.