Šta je novo?

Quad core is useless for games?

  • Začetnik teme Začetnik teme Nedjo
  • Datum pokretanja Datum pokretanja
Hm, ako developeri "razmišljaju" na taj način, nije mi jasno čemu više jezgara, i kako će se oni uposliti kod next gen konzola? Nije mi logično da ta jezgra ne mogu pravilno da se uposle, već samo da je takvo programiranje naporno...
 
Pa ako developerima nije problem razviti igru za PS3 ili novi Xbox koji su isto SMP mašine, zašto bi im to bio problem na PC-u. I zašto bi baš sve 4 jezgre morale biti 100% zaposlene sa nekom igrom.
 
Poslednja izmena:
ja kad budem video da su poceli i 2 jezgra da koriste bicu srecan, do tada... sigle core is dead, long live single core 😀
 
Ja mislim da sam već negde replicirao na thread sa istom temom (Nedjo?), ali ne mogu da skapiram da je ono za šta on tvrdi da developeri govore blizu zdravom razumu...
 
Brate, sada sam u tim vodama i mislim da covek nije bas pri svesti... jedno jezgro racuna kolizije,jedno transformise, trece pije kafu itd.. veoma skalabilan pristup 🙂 🙂 verovatno ce da ima jedan switch ( broj procesora ) pa case za slucaj da ih ima dva tri cetri da bi pametno podelio poslove 🙂 🙂 🙂 mrzi me da pisem sve kritike ali najbolje je razmotriti sta se desava sa kesom pri tim operacijama.... posao se radi na stari dobri nacin... A->B->C->D gde je algoritam sastavljen od sekvencijalnih delova paralelnih blokova koji se onda izdele na jezgra ... tipa A1,A2,A3... i sl..
 
Poslednja izmena:
Ljudi bre, sta vam je ... programiranje na vise procesora stvari kao sto su igrice treba da donese , lupam ali barem 0.6-0.9 * broj jezgra ubrzanja.. pogledajte malo kako se pisu ozbiljni simulatori u naucne svrhe i videcete da je na 100 procesora ubrzanje reda 60 recimo kod simulacija molekula (AMBER), doduse kod raytraceing-a je problem malo teze podele poslova usled nepoznavanja vidljivosti ali opet prelazi 0.5 * br cpu-a
 
Poslednja izmena:
genuine, mislim da ti tvoje akademsko poznavanje materije smeta da ukapiras poentu koju najznacajniji i najiskusniji gamedeveloperi isticu: game kod je tesko pisati za multiprocesorske sisteme (Poslusaj Karmakov Key Note sa ovogodisnjeg QuakeCona - covek prica o monolitnoj strukturi game enginea i koliko je tesko istu paralelizovati na vise jzegara)!!!

Izuzetno je dobro pitanje cemu vise jezgara, narocito ovako skupih jezgara! 'oce li Office raditi brze? 'oce li Winamp raditi brze? 'oce li firefox raditi brze?? Pojedinacno, apsolutno nece, na gomili...hm, pa recimo da ce masinu sa quadcore procesorom biti teze smoriti, ali to nije odgovor!

Jedinu pravu korist od quad+ core procesora ce imati ljudi koji se bave renderingom! Gameri apsolutno nece imati nikakvu korist. meni je narocito simpaticno ono Intelovo potenciranje fizike na posvecenom jezgru, sto su im finci i z Remedija demonstrirali na IDF-u! Pa DX10 graficke ce u tome biti mnogo efikasnije po mnogo nizoj "ceni" kada su u pitanju performanse. A zahvaljujuci Havok FX API-u, lakse ce se i programirati.
 
Poslednja izmena:
Itekako je Racio(razum) ovde u pitanju...quadcore je pogreshio vreme.Ako izadje na zimu onda je misstimed.Ko da optimizuje kod za 4 procesora?
Hardware je uvek bio brzi od software-a.A igre?O tome je suvishno i troshiti stranicu.
Zato je po meni najbolje imati npr.e6600 jer mislim da ce "vrshiti posao" ljudima narednih godina bez problema bez obzira na qudcore na 65 i kasnije,na 45nm...
 
Poslednja izmena:
ovako... teze jeste ali nije tesko... za performanse sam govorio samo sto se tice cpu proracunavanja... recimo kod transformacija moze cak i da se nesto izracuna ako uzmes u obzir max eff protok bus-a, promasaje u kesu pri transformacijama i protoke kroz procesore tako da za odredjeni eff protok na bus-u mozes da nadjes max broj procesora koji ce da se efikasno iskoriste za dati posao... drugo je kada se govori o celokupnim performansama jer protok obrade graficke moze da bude limitirajuci faktor... probacu da napravim jedan mali demo koji ce da radi to sto sam akademski pricao i kome nece graficka kartica biti usko grlo vec cpu... pa da probamo kakva je skalabilnost tog... samo da kupim neki core duo laptop prvo
 
Poslednja izmena:
Pazi,ja nisam u tom pogledu struchan kao ti ali idem nekom logikom.***.vidi i sadashnje programe...jesu li optimizovani za dva jezgra?Shta programeri rade i zashto hardware izlazi brze nego shto oni uspeju da optimizuju kodove-nemam pojma.A zamisli tek 4 jezgra.U tom smislu vidim da ce to u praksi ici sa jakim delay-om.
 
Ti developeri iz Fuadovog teksta su moroni. Nije poenta da jedan core radi na fizici, drugi AI, treci renderuje, ... Svaka od ovih akcija se interno moze paralelizovati. Npr... collision detekcija se moze paralelizovati, AI (pathfinder) takodje, razna ucitavanja textura i modela, multiplayer. Naravno... dizajn game enginea se mora menjati isto kao sto se menja kad npr. izadje nova verzija DirectX-a.
Ideja je da se sitne nezavisne akcije mogu paralelno izvrsavati. Maksimalna efikasnost bi se postigla koriscenjem thread-poola i ubacivanjem tih poslica u red za obradu.
Sadasnji game loop izgleda otprilike ovako:
sve dok nije kraj igre
AI
Animiraj
fizika
collision detection
render
prikazi frame

U multicore sisemima game loop bi izgledao:
sve dok nije kraj
sve AI zadatke ubaci u red za izvrsavanje
sve animacije stavi u red za izvrsavanje
sve proracune fizike ubaci u red za izvrsavanje
sve testove za detekciju sudara ubaci u red za izvrsavanje
izvrsi zadate poslove sa vise procesora
sacekaj da se svi poslovi zavrse
render
prikazi frame pa ponovo

Jedno je siguno... game engine dizajniran da radi na multi-core sistemima ce lose raditi na single-core sistemima.

yooyo
 
Poslednja izmena:
Jedno je siguno... game engine dizajniran da radi na multi-core sistemima ce lose raditi na single-core sistemima.

yooyo

To otprilike i jeste odgovor na moje pitanje od pre par postova:
byMaX je napisao(la):
Hm, ako developeri "razmišljaju" na taj način, nije mi jasno čemu više jezgara, i kako će se oni uposliti kod next gen konzola? Nije mi logično da ta jezgra ne mogu pravilno da se uposle, već samo da je takvo programiranje naporno...

Igre za PC se i dalje prave da dobro rade na single-core sistemima, pa ako bi ih pravili za multi-core CPUs, performance hit bi bio neprihvatljivo veliki čak i na brzim single-core procesorima. A da je programiranje igara generalno teško za multi-core procesore, PS3 i Xbox360 ne bi imali više jezgara...! Fuad je trebalo da se ogradi, da kaže da se tu misli na PC scenu, a možda je samo čuo šta dvojica chaps pričaju, pa onda samo tako prenosi, bez da je malo razmislio...
 
Poslednja izmena:
To znaci da ce se na PC-ju opet sve svesti na kupovinu sto jaceg hardvera, jer niko nece da optimizuje nista, posto postoji gomila najrazlicitijih platformi... Jos ako im to sjebe backward compatibility, naravno da nema nista od optimizovanja.

Sa druge strane hardverski na prvi pogled slabije konzole, usled bolje arhitekture i bolje optimizacije, ali pre svega zbog unificiranosti platforme, imace i dalje atraktivnije naslove.

Uostalom, multi-core je lansiran zato sto vise nisu mogli da se pumpaju megaherci, a slogani tipa: "Dual Core - Do More" na kutijama Intel procesora pokazuju ustvari da multi core trenutno ne donosi benefite. Srecom, pa ne placamo nista extra za te dual core procesore, tj. kostaju isto kao sto su kostali single core modeli.

Mislim ipak da multi core ima primenu i da je svaki kod koji se oslanja na kalkulacije moguce optmizivati, a i da se dosta toga treba uraditi na nivou OS-a da bi se i u multitaskingu video benefit od dual corea. SMP je bio do sada uglavnom koncketrisan u serverskoj primeni, gde je u multitaqskig primeni dolazio do izrazaja zahvaljujuci serverskim verzijama OS-ova. Sada i MS prebacuje serverski kernel na desktop, bas iz tog razloga. Dobro optimizovan softver je npr. Adobe Photoshop, a ne samo render...

Kod PC-ja se grafika pojacava iz meseca u mesec, pa samim tim programeri nemaju interesa da pisu bog-zna koliko optimizovani kod niti imaju potrebe za time. Kod konzole sa druge strane dosta toga se oslanja i na CPU, pa je optimizacija obavezna. Igrice na PC-ju se ne oslanjaju previse na CPU, doduse postoje engini koji vise opterecuju CPU. Eventulana primena CPU-a za fiziks je takodje propala, jer ce ubuduce akceleratori imati i fiziks podrsku. AKo se nesto ne oslanja previse na CPU, onda su koristi od jaceg CPU-a manje. Uostalom i u vreme single corea je bilo uocljivo da pojedine igre i ne profitiraju toliko od povecanja radnog takta, ali itekako osete overklok grafike.
 
Ti developeri iz Fuadovog teksta su moroni. Nije poenta da jedan core radi na fizici, drugi AI, treci renderuje, ... Svaka od ovih akcija se interno moze paralelizovati. Npr... collision detekcija se moze paralelizovati, AI (pathfinder) takodje, razna ucitavanja textura i modela, multiplayer. yooyo
To u teoriji sve lepo zvuci, samo jos da neko sedne i da implementira kako treba! Za sada ni najbogatiji ni najpametniji u game industriji to nisu uradili... verovatno zato sto postoji dubok jaz izmedju teoretisanja i prakticne implementacije?!
 
E John Carmak je ubacio SMP patch u quake 3 valjda i ima dosta poboljsanja inace on ima odslusana dva semestra sa fakulteta... veliki problem kod programera tog kalibra je sekvencijalni nacin razmisljanja i veoma mala praksa na paralelizacijama...ima dosta samoukih ljudi koji jesu dobri programeri ali su uskog pogleda... ne podcenjujem ih ali ipak vise sekvencijalno programiranje pada u vodu...
sve sto je yooyo je na mestu i nesto slicno bi trebalo i radi se.. prepravljati tekuce engine je moguce samo ako su dobro isprojektovani ali ja bih pre od nule... inace mislim da ce to malo da utice na cenu igrica jer se najveci deo se trosi na hvatanje pokreta od pravih ljudi, muziku, dizajn marketing i sl...

p.s.
kod yooyo-vog modela bi trebalo samo da se ubaci sinhronizacija na kriticnim mestima zbog postojanja data-dependency-a tipa render zahteva animacije da budu izvrsene i sl...ta sinhronizacija (serializacija) gusi paralelizam ali ovde bi se to ne oseca... mozda na 200 procesora 🙂 🙂

p.s.2 hocu da se ogradim od poredjenja sa bilo kojim uspesnim programerima iz gaming industrije... sto bi rekao jedan covek JA NE ZNAM DA SNESEM JAJE ALI ZNAM KOJE JE MUCAK...(doduse znam po malo )
 
Poslednja izmena:
To znaci da ce se na PC-ju opet sve svesti na kupovinu sto jaceg hardvera, jer niko nece da optimizuje nista, posto postoji gomila najrazlicitijih platformi... Jos ako im to sjebe backward compatibility, naravno da nema nista od optimizovanja.

Pa ne mora da znači da se ništa neće optimizovati, jer će i Dual Core procesori postati svima dostupni. Single Core će ostati samo za embedded sisteme i najjeftinije notebookove. Samim tim, ako igru optimizuju za multi-core, beneficiraće i sistemi sa četri jezgra. Carmack je lepo pokazao kako se to radi, samo jednim patch-om za već postojeću igru. Šta, nije valjda da su svi toliko lošiji programeri od njega samog?


Sa druge strane hardverski na prvi pogled slabije konzole, usled bolje arhitekture i bolje optimizacije, ali pre svega zbog unificiranosti platforme, imace i dalje atraktivnije naslove.

Kao šta? Ajde kad već pričaš, nemoj napamet! Šta Xbox360 ima, da je toliko atraktivno, a da ne postoji na PC-ju? Xbox360 je i napravio slavu na PC igrama ili onim koje su se razvijale paralelno. Prednost te konzole je što košta 300, odnosno 400 dolara, a za PC ti treba bar 1000 da bi igrao takve igre. Konzole (pustite drajvera i ložane) nikad nisu imale nešto super-atraktivno. To su igračke mašine koje samo za to služe - igranje; a da te pri tom to ne košta mnogo. Dakle, u gornjoj rečenici si u pravu u vezi sa svim što si rekao, osim u dve poslednje reči!

Kod PC-ja se grafika pojacava iz meseca u mesec, pa samim tim programeri nemaju interesa da pisu bog-zna koliko optimizovani kod niti imaju potrebe za time. Kod konzole sa druge strane dosta toga se oslanja i na CPU, pa je optimizacija obavezna. Igrice na PC-ju se ne oslanjaju previse na CPU, doduse postoje engini koji vise opterecuju CPU. Eventulana primena CPU-a za fiziks je takodje propala, jer ce ubuduce akceleratori imati i fiziks podrsku. AKo se nesto ne oslanja previse na CPU, onda su koristi od jaceg CPU-a manje. Uostalom i u vreme single corea je bilo uocljivo da pojedine igre i ne profitiraju toliko od povecanja radnog takta, ali itekako osete overklok grafike.

Ako tako postaviš stvari, u pravu si. Igre se ne oslanjaju na CPU, ali je zato grafičkim karticama neophodno da imaju brz CPU, kako ih ne bi bound-ovao. Ako se drajver za grafičku razvije tako da može da iskoristi više jezgara (a videli smo da može), onda je to to. Imaš veći broj fps. i bez da igra ume da koristi multi-core. A igre koje umeju da iskoriste više jezgara, postoje - Quake 4, Oblivion, FarCry 1.37, FEAR...! Znamo da i brz CPU ume da ograniči performanse u igrama kad radi sa jako brzom grafikom. Šta će biti kad izađu G80 i R600? Za njih i Core 2 može da bude prespor, a taj Core 2 će biti tu duže nego G80 i R600. Zato je logično da programeri drajvera iskoriste oslanjanje na više jezgara - od te implementacije može zavisiti koja će grafička biti brža (ako se opet budu "klale" u procenat).

Dakle, top bottom: Quad Core is useless for games?
I don't think so!
 
Kod PC-ja se grafika pojacava iz meseca u mesec, pa samim tim programeri nemaju interesa da pisu bog-zna koliko optimizovani kod niti imaju potrebe za time. Kod konzole sa druge strane dosta toga se oslanja i na CPU, pa je optimizacija obavezna. Igrice na PC-ju se ne oslanjaju previse na CPU, doduse postoje engini koji vise opterecuju CPU. Eventulana primena CPU-a za fiziks je takodje propala, jer ce ubuduce akceleratori imati i fiziks podrsku. AKo se nesto ne oslanja previse na CPU, onda su koristi od jaceg CPU-a manje. Uostalom i u vreme single corea je bilo uocljivo da pojedine igre i ne profitiraju toliko od povecanja radnog takta, ali itekako osete overklok grafike.
Apsolutno se slazem! 🙂 Danas solidna gaming masina uopste ne mora da ima Bog zna koliko jak procesor. Kada physics bude presao na GPU, jos manje ce se pitati procesor za glatkocu u igrama. Mozda bude neke razlike u strateskim igrama gde je engine opterecen velikom kolicinom vestacke inteligencije i automatskog rezonovanja.

Optimizovati igre za multicore nije ni lako ni jeftino ni jednostavno, a opet, i da ih optimizuju, uvek se prvo pita graficka. Dzaba ti Quad Core ultra mega giga fancy CPU, ako imas X300 Shit Edition! :d
 
Znamo da i brz CPU ume da ograniči performanse u igrama kad radi sa jako brzom grafikom. Šta će biti kad izađu G80 i R600? Za njih i Core 2 može da bude prespor, a taj Core 2 će biti tu duže nego G80 i R600. Zato je logično da programeri drajvera iskoriste oslanjanje na više jezgara - od te implementacije može zavisiti koja će grafička biti brža (ako se opet budu "klale" u procenat).
Za igraca nije bitno da li igra ima 100 ili 150 FPS. Sa brzim single core procesorom taj FPS rate nije 50% manji nego sa dual core, sa jako brzom grafickom. Minimalni FPS u igrama je mnogo bitniji, nego prosecan. Sa quad core cenim da nece biti nikakve razlike u odnosu na DC, na istom taktu.
 
Poslednja izmena:
E John Carmak je ubacio SMP patch u quake 3 valjda i ima dosta poboljsanja inace on ima odslusana dva semestra sa fakulteta... veliki problem kod programera tog kalibra je sekvencijalni nacin razmisljanja i veoma mala praksa na paralelizacijama...ima dosta samoukih ljudi koji jesu dobri programeri ali su uskog pogleda... ne podcenjujem ih ali ipak vise sekvencijalno programiranje pada u vodu...
sve sto je yooyo je na mestu i nesto slicno bi trebalo i radi se.. prepravljati tekuce engine je moguce samo ako su dobro isprojektovani ali ja bih pre od nule... inace mislim da ce to malo da utice na cenu igrica jer se najveci deo se trosi na hvatanje pokreta od pravih ljudi, muziku, dizajn marketing i sl...
Patch o kome pricas (za Q3) je star "milion godina" i JC je jednom prilikom o njemu govorio i pricao je kakvih problema je bilo na razlicitim OS-ovima, sa razlicitim procesorima i razlicitim drajverima. Sve u svemu, nije radilo kako treba!
Uporno se ponavljas od teme do teme, nastojeci da doneses sud o necemu u sta zaista imas ogranicen uvid. Pa, ako neko ima vrhunsko programersko znanje, onda je to covek koji po ceo dan programira zadnjih dvadeset godina! Zar ti ne pada na pamet da je besmisleno da ti dajes analizu JC-evog poznavanja programiranja i pritom u svoj elaborat da uplices njegova dva semestra fakulteta!?!?! OK! Svi smo do sada ukapirali sta ti studiras i sta je tvoje podrucje interesovanja i da posedujes teoretsko znanje uvazavanja vredno. Ali ipak...
Kada isprogramiras 3D game engine kompleksan kao... pa, recimo DOOM2, onda izvoli pa deli savete o tome koliko je sta tesko u pravljenju igara i koliko sta kosta. Ovako je besmisleno da suprodstavljas svoje misljenje misljenju veterana u gaming industriji.
p.s.
kod yooyo-vog modela bi trebalo samo da se ubaci sinhronizacija na kriticnim mestima zbog postojanja data-dependency-a tipa render zahteva animacije da budu izvrsene i sl...ta sinhronizacija (serializacija) gusi paralelizam ali ovde bi se to ne oseca... mozda na 200 procesora 🙂 🙂
Yooyo jedini u ovoj raspravi poseduje kredibilitet da komentarise, ali od njega ocekujem dve stvari: 1) ili da nam prenese misljenje nekog programera iz industrije kako i koliko je lako iskoristiti QC procesore 2) ili da sedne i napise demonstraciju 😉
p.s.2 hocu da se ogradim od poredjenja sa bilo kojim uspesnim programerima iz gaming industrije... sto bi rekao jedan covek JA NE ZNAM DA SNESEM JAJE ALI ZNAM KOJE JE MUCAK...(doduse znam po malo )
Pa mozes ti nacelno da se ogradjujes koliko 'oces, ali ti si gore napisao sta si napisao. I ne brini, naravno da te necemo porediti sa i jednim uspesnim/poznatim programerom iz gaming industrije. barem dok u praksi ne demonstriras svoje bogato teoretsko znanje!
 
samo jedna napomena .. to sam vec negde napisao... kada poredite performanse jednu promenljivu od obicno dve fiksirate.. recimo kod 3d igrica svi fiksiraju mogucnosti a gledaju frame rate kao direktnu posledicu graficke i cpu-.. moze i obratno.. ajde da fiksiramo frame rate pa da vidimo sta za to mozemo da dobijemo od mogucnosti.. upravo tu dolazi quad core.. isti broj poligona -> mnogo kvalitetnije animacije pokreta koje se real time izracunavaju, mnogo napredniji AI, realisticniji zvuk i sl. i sve to za istu frejmazu koju mozete da postignete na single core procesoru jer je recimo uslovljena brojem trouglova koje graficka moze da obradi.... kada su se hardverasi potrudili da naprave extra platforme mogu malo i programeri da ih iskoriste... a ne samo da kenj..ju kako je mnogo teze i skuplje i kako se vise isplati da sede i ne rade nista ( a ubaraju pare od prethodnih) nego da pisu engine na drugaciji nacin i da svima svane...🙂

p.s.
doom 2 nije tezak engine za programiranje .. ako se ne varam na nivou je quake I-a... i mislim da cak nije radjen ni u c++ nego je budzen u c... za te endzine mislim da je najzasluzniji bio majkl abrash koji je veoma poznat po svojim asm optimizacijama tako da ako trebam to da radim na istoj platformi kao on digao bih ruke odmah( secam se da je imao trik da sakrije latency za operaciju deljenja koju je koristio u algoritmu za teksturiranje ( posto je 1/z u/z o v/z linerano u ravni perspektivne projekcije) tako sto je za vreme racunanja deljenja koje je trajalo boga pitaj koliko taktova (fdiv) radi linearnu intepolaciju izmedju dve tacno izracunate tacke)...
ako treba da se radi za opengl ili directX onda no problem...
to je bilo vreme dos4gw ako se neko seca i watcom c++-a

inace moram odmah da kazem da ne planiram da se bavim programiranjima za firme i sl.. vec akademskim kenj...njima od kojih nema prakticnih koristi ...🙂
 
Poslednja izmena:
Sto se multi-core programiranja tice tu stvari nisu komplikovane. Zna se pristup ali se postojeci algoritmi moraju totalno izvrnuti, tj. napisati ih tako da se sve sitni delovi code-a izvrsavaju paralelno koliko je to moguce.

Najlakse je da se postojeci moduli (AI, fizika, detekcija dodira/sudara) svaki gurne u po jedan thread pa se na pocetku frejma svim threadovima da znak da krenu i onda sacekati da zavrse posao, pokupiti rezultate i izrendati frame. Problem je sto su neki moduli medjusobno zavisni pa tu dolazi ona Fuadova prica sa deveoperima koji kukaju na multu-core. Pojavljuje se problem sa sinhronizacijom, tj.. treba spreciti da 2 threada cackaju po isom objektu u istom trenutku. Ovo se moze srediti, ali je jako tesko detektovati mesta koja treba zastititi od visestrukog pristupa.

Drugi nacin je da se kljucni moduli igre napisu sa podrskom za multicore. U praksi potrebno je napraviti objekat koji zadate poslove dodeljuje slobodnim jezgrima na izvrsavanje. Po mom misljenju najbolji je thread-pool. Napravi se npr. 2x vise threadova od ukupnog broja jezgara i svi threadovi su na pocetku uspavani. Onda se u pool ubaci job i prvi slobodni thread se izabere da izvrsi posao. Ako su job-ovi medjusobno nezavisni onda nema problema, ali ako je redosled izvrsavanja job-ova bitan onda se code za dodeljivanje poslova threadovima malo modifikuje da vodi racuna i o ovim zahtevima.
Neki poslovi se nemogu paralelizovati (rendering) i apsolutno je glupo dodeliti ceo jedan core za render kada ce on vecinu svog vremena cekati da se svi poslovi zavrse pre nego sto pocne render. Zato se svakom core-u dodeljuje bar 2 thread-a, tako da ako jedan thread spava vecinu svog vremena onda ce drugi thread imati ceo core na raspolaganju.
Svaki job moze generisati nove job-ove i/ili isporuciti rezultat.
Najjednostavnije je srediti detekciju sudara. Umesto da jedan thread proverava sve potencijalne sudare, bolje je napraviti spisak svih potencijalnih sudara i svaku stavku spiska poslati kao job u thread-pool. Unutar job-a se vrsi provera sudara i ako se sudar dogodi onda se postavi novi job za obradu sudara. Nvidia je objavila jedan spimatican PDF o ovome.

Slicno je i sa AI. Standardni A* algoritmi su idealni za paralelizaciju.

Na ovaj nacin zauzece svih jezgara je podjednako, i obrada podataka je dobro izbalansirana. Ne treba puno brinuti o cache-u. Bitno je da algoritam koji obavlja neki specifican posao bude optimizovan da lepo koristi prednosti cache-a.

Kada thread pool ostane bez posla to znaci da su svi moduli dobili resenja svojih poslova i da se moze poceti render (koji se nemoze paralelizovati na CPU... vec je paralelizovan na GPU).

Moja iskustva sa multi-core programiranjem je veoma pozitivna. Aplikacija koju sam napravio za realtiem obradu motion capture podataka sam koristio thread-pool mehanizam. Program lepo radi i na 2xCPU i na 4xCPU sistemima. Skaliranje je veoma dobro.
 
Za igraca nije bitno da li igra ima 100 ili 150 FPS. Sa brzim single core procesorom taj FPS rate nije 50% manji nego sa dual core, sa jako brzom grafickom. Minimalni FPS u igrama je mnogo bitniji, nego prosecan. Sa quad core cenim da nece biti nikakve razlike u odnosu na DC, na istom taktu.

To je zato što ti gledaš Quake 4 ili Doom 3, gde su tolike cifre. Uzmi i probaj iste igre u 19x12 (nabavi monitor, snađi se), stavi 16xAF i 6xAA pa ćeš da vidiš da se ne barata ciframa od 100 i 150fps. Average FPS u Oblivionu, X3, COD2 pa čak i NFS MW u 19x12 16xAF+6xAA su ispod 50fps i na najjačim mašinama. A padovi fps-a u pojedinim kratkim momentima pada i na 20-ak! Šta će biti kad izađe Crysis 2, Unreal Tournament 2007 i ostale igre?! Core 2 Quadro na 3 giga će zato, garantujem, smanjiti slučajeve minimalnog fps-a, ali i average fps-a u odnosu na Core 2 Duo na 3 giga i to odmah pošto izađu odgovarajući drajveri... Tako da, kad budemo videli rezultate sa stranih sajtova, vidimo se opet ovde da diskutujemo... 😉
 
Naravno da nece tu da ti pomogne quad core... U tolikim rezolucijama nema skoro uopste razlike izmedju A64, X2 i Core 2... To je heavy GPU load i jedino ti pomaze (osim jos jace grafike) multi GPU setup.

VGA drajveri sa SMP optimizacijama su izbaceni odavno (jos kada se pojavio Pentium D i A64 X2) i ne verujem da moze tu nesto dramaticno da se poboljsa, jer drajver je drajver i ne moze on da kompenzuje u tolikoj meri nedostatke koji proisticu iz "lose napisanih" engine-a.

SMP je ista stvar vozio ga ti na 2 ili 4 jezgra... Ne optimizuje se iznova softver kako dodajes jezgra, vec se softver multi treduje i ti posle dobijas odredjeni procenat ubrzanja sa povecanjem broja jezgara (skaliranje). Najveci skok je kada predjes sa jednog na dva jezgra. Vec cetiri jezgra donose drasticno manje boljitke i to u softveru koji je optimizovan, mada savrseno optimizovan softver ne postoji. Preko cetiri jezgra nema smisla za desktop, sto zbog komplexnosti platforme, sto zbog minimalnih dobitaka koji bi usledili. Buducnost je u nesimetricnim jezgrima - time ce delimicno biti prevazidjen problem (ne)optimizovanog softvera.

Ono sto je prava stvar za gaming u ovom trenutku jeste multi tredovani OpenGL API koji po recima OpenGL zajednice donosi opipljiva poboljsanja. Ipak, mala vajda od toga kada je "Vista gaming" u pitanju. Benefite od nove verzije OpenGL API-ja imace uglavnom profesionalci.
 
Poslednja izmena:
SMP je ista stvar vozio ga ti na 2 ili 4 jezgra... Ne optimizuje se iznova softver kako dodajes jezgra, vec se softver multi treduje i ti posle dobijas odredjeni procenat ubrzanja sa povecanjem broja jezgara (skaliranje).
Ovo je uglavnom tacno, mada uvek ima izuzetaka. Za pojedine probleme i algoritme je efikasnije ili lakse da se napise optimizacija za 2 jezgra nego opsta za N jezgara.

Buducnost je u nesimetricnim jezgrima - time ce delimicno biti prevazidjen problem (ne)optimizovanog softvera.

Nisam siguran da je buducnost u nesimetricnim jezgrima. Nesimetricnost uvodi dodatnu kompleksnost u development (a kompleksnosti ima vec previse) a dobitak je minimalan (koliko se procenata povrsine cipa dobija uvodjenjem slabijih jezgara, 10, 20 % maximalno, sto je zanemarivo u odnosu na cenu dodatne kompleksnosti).
 
e u svakom slucaju sto vise to bolje i mora da se pise takav software i nema tu neke vece diskusije.... ako krajtek ne napravi takav endzin svi ce kupiti quake engdzin koji posrzava smp ili sl.. tako da ce krajtek da propadne....
 
Poslednja izmena:
Crysis bi ako se ne varam trebao da iskoristi i 64 bita i vise jezgara, ne? Ne znam kako stoji stvar sa ostalim igrama u nastajanu, jel ima neko informacije?
 
Nazad
Vrh Dno