Entra

View Full Version : Assassin's Creed migliore per intelligenza artificiale su XBox 360?


Redazione di Hardware Upg
02-10-2006, 08:07
Link alla notizia: http://www.hwupgrade.it/news/videogiochi/assassin-s-creed-migliore-per-intelligenza-artificiale-su-xbox-360_18746.html

Una dichiarazione di Jade Raymond riportata da IGN potrebbe far pensare ad una migliore ottimizzazione del nuovo titolo di Ubisoft Montreal per XBox 360.

Click sul link per visualizzare la notizia.

GigiDagostino
02-10-2006, 08:13
Sebbene le versioni PlayStation 3 e XBox 360 siano virtualmente identiche, Raymond ha detto che sull'edizione XBox 360 il team sta mettendo un'enfasi speciale. L'hardware consente un migliore threading, il che migliorerà ancora di più l'intelligenza articiale della folla.


:eek: Sta cosa mi stupisce e ne sono pure contento! cioè l'hw di X360 è migliore per l'intelligenza artificiale? OTTIMO!

ahahah ps3 è già dietro...

dsajbASSAEdsjfnsdlffd
02-10-2006, 08:23
beh essendo core simmetrici è sempre stato chiaro che sarebbe stato più facile programmarli, quando la complessità del compito che gli si assegna cresce come nel caso dell'intelligenza artificiale, evidentemente al team di sviluppo non vale la pena spaccarsi la testa con l'architettura fantasiosa di cell.
sono curioso di vedere qualche prova comparativa, quando sarà il momento.

dwfgerw
02-10-2006, 08:25
ma come Cell è noto per avere una predilizione per questo tipo di calcoli e loro puntano di più su PowerPC ? Diciamo che MS ha sborsato qualcosa di più va....

coschizza
02-10-2006, 08:28
Sebbene le versioni PlayStation 3 e XBox 360 siano virtualmente identiche, Raymond ha detto che sull'edizione XBox 360 il team sta mettendo un'enfasi speciale. L'hardware consente un migliore threading, il che migliorerà ancora di più l'intelligenza articiale della folla.


:eek: Sta cosa mi stupisce e ne sono pure contento! cioè l'hw di X360 è migliore per l'intelligenza artificiale? OTTIMO!

ahahah ps3 è già dietro...

la questione è semplice, per come hanno creato il gioco è piu sfruttabile il 3 core ms che il cell sony, questo perche è molto difficile (quasi impossibile per certi versi) implementare codice general purpose sulle SPE dell cpu sony e quindi per come è stato fatto il gioco ubisoft e per come si implementa normalmente la AI nei giochi è piu facile sfruttare l'hardware della concorrenza.

se il gioco avesse richiesto grande potenze per fisica o comunque elaborazioni in stream di dati in floating point probabilmente avremmo avuto lo stesso annuncio della ubisoft ma invertito nelle parti.

come sempre conta molto di piu il software e chi lo fa che l'hardware e le sue potenze teoriche di picco.

comunque la demo che ho visto in diretta alla presentazione mi ha convinto parecchio.

coschizza
02-10-2006, 08:37
ma come Cell è noto per avere una predilizione per questo tipo di calcoli e loro puntano di più su PowerPC ? Diciamo che MS ha sborsato qualcosa di più va....

apparte il fatot che entrambe si possono definire "PowerPC" visto che il core 1 è quasi identico per entrambe le cpu (se non per delle personalizzazioni sulla controparte MS)

è esattamente l'opposto il cell è proprio scomodissimo per questo tipo di calcoli perche ha "solo" 1 core general purpose e 7 (ma di utilizzabili al massimo 5 o 6 a seconda dei casi) SPE che non possono gestire in maniera efficiente codice che prevede salti e breach prediction, rendendoli di fatto inefficienti in elaborazioni come l'AI che richiede codice intrinsicamente piendo di questo tipo di istruzioni.

GigiDagostino
02-10-2006, 08:43
bhè a sto punto si può intuire come Sony punta esclusivamente alla grafica, e molto meno alla fisica e l'IA...o almeno è quello che capisco io dai vostri commenti,visto che sony ha cell che non è adatto al codice General purpose, e per quanto ne so (molto poco) la fisica e l'ia è general purpose.....correggetemi se sbaglio.

Kintaro70
02-10-2006, 08:48
Se si impegnano alla Sony potrebbero far uscire il Cell-Quad core su PS3, logicamente con un piccolo posticipo sulla data di lancio.

:muro: :muro: :muro: :muro:

astorcas
02-10-2006, 08:51
A me sembra troppo strano. Il discorso sarà che l'X360 c'è da più tempo ha tre core simmetrici ed è più gestibile dai developer. Ma non possono venire a dire che ha l'hw più adatto per l'AI. In verità avrebbero dovuto dire: "Visto che l'X360 è più facile da programmare (e che la M$ ci ha dato più dindini (parere mio)) abbiamo dato alla versione X360 quel tocco di IA in più".
PS. non sono un fanboy sony e posseggo felicemente la scatola bianca!

jpjcssource
02-10-2006, 08:54
http://it.com.cn/f/games/069/8/pc0908qz0800.jpg

adesso diventerà l'eroina di tutti i boxari :p

Comunque rimane il fatto che avevano semplicemente un gioco scritto per funzionare su i dual core del pc e sul trial core della xbox360 e non hanno tempo ne voglia di spendere soldi per ottimizzarlo anche per Cell.

Ottimizzandolo per processori multicore dove i core sono simmetrici con la stessa spesa prendi due piattaforme ovvero il pc e l'xbox, mentre ottimizzando per l'architettura cell ne prendi solo una....hanno fatto un ragionamento sulle vendite future...

Freisar
02-10-2006, 08:54
:mbe: No graficamente la 360 sta meglio per vari motivi!

La PS3 dovrebbe eccellere nella fisica e altre cosuccie ma in quanto a IA il discorso credo che sia quanto cavolo ci metto a ottenere la stessa IA a livello di programmazione?

Se devo rispettare dei tempi di uscita zac dei tagli li devo fare!

dsajbASSAEdsjfnsdlffd
02-10-2006, 09:02
è quasi cosi, con la differnza che penso sia stata una scelta di convenienza solo loro senza interventi esterni, nel senso che probabilmente implementare una buona AI su XBOX è talmente facile che sarebbe un peccato non farlo, mentre su PS3 richiederebbe uno sforzo considerevole e quindi si sono accontentati di quello che passava il convento. questo sta a significare esattamente che XBox ha l'hardware più adatto all'AI perche consente di svilupparne una migliore con minori spese, quindi, è più adatto

ragnoG
02-10-2006, 09:03
Sebbene le versioni PlayStation 3 e XBox 360 siano virtualmente identiche, Raymond ha detto che sull'edizione XBox 360 il team sta mettendo un'enfasi speciale. L'hardware consente un migliore threading, il che migliorerà ancora di più l'intelligenza articiale della folla.


:eek: Sta cosa mi stupisce e ne sono pure contento! cioè l'hw di X360 è migliore per l'intelligenza artificiale? OTTIMO!

ahahah ps3 è già dietro...

Secondo me è solo un problema di programmazione... i programmatori conoscono già a fondo l'architettura di X360 e la sanno programmare bene, menre su quella di PS3 sono ancora al buio.
Poi non dimentichiamoci il marketing: sia microsoft che sony pagano per far fare queste dichiarazioni ai programmatori... magari non c'è neanche nulla di vero.

Sulla carta mi pare addirittura che la PS3 abbia più core fisici di X360, quindi mi pare assurdo che abbia capacità inferiori di threading.

In ogni caso a me entrambe queste consolle sanno già di vecchio... una ha una potenza inferiore ad una ATI X1900 con un'architettura un po' più evoluta (o solo diversa) e supporto a qualche effetto DX10.
L'altra ha una 7900 GT/GTX (non conosco le frequenze).
Non mi piacciono.. vanno bene solo per chi non si vuol perdere nel mondo dei pc.

Io non ci avrei neanche scritto una news su questa notizia.

DevilsAdvocate
02-10-2006, 09:07
L'hardware consente un migliore threading
Qualcosa non torna, il punto forte di PS3 ed il motivo per cui all'inizio c'era chi
si lamentava era proprio la forte orientazione al multithread del Cell....

astorcas
02-10-2006, 09:08
Secondo me è solo un problema di programmazione... i programmatori conoscono già a fondo l'architettura di X360 e la sanno programmare bene, menre su quella di PS3 sono ancora al buio.
Poi non dimentichiamoci il marketing: sia microsoft che sony pagano per far fare queste dichiarazioni ai programmatori... magari non c'è neanche nulla di vero.

Sulla carta mi pare addirittura che la PS3 abbia più core fisici di X360, quindi mi pare assurdo che abbia capacità inferiori di threading.

In ogni caso a me entrambe queste consolle sanno già di vecchio... una ha una potenza inferiore ad una ATI X1900 con un'architettura un po' più evoluta (o solo diversa) e supporto a qualche effetto DX10.
L'altra ha una 7900 GT/GTX (non conosco le frequenze).
Non mi piacciono.. vanno bene solo per chi non si vuol perdere nel mondo dei pc.

Io non ci avrei neanche scritto una news su questa notizia.

Anch'io sono sempre stato pcista convinto ma sono giunto alla conclusione che alcuni giochi il pc se li sogna perciò da questa gen ho deciso di possedere anch'io una console!!! E l'hardware che credi essere vecchio, forse lo sarà per pc ma per console durerà ancora parecchio!

coschizza
02-10-2006, 09:19
Qualcosa non torna, il punto forte di PS3 ed il motivo per cui all'inizio c'era chi
si lamentava era proprio la forte orientazione al multithread del Cell....

vero, pero il problema è proprio questo il cell fa uso in maniera "esasperata" del multithread, cioè senza codice di questo tipo alla fine il cell risulta piu lento di un P4 di vecchia generazione.

alla fine la cpu della xbox 360 ha lo stesso problema ma avendo meno core e essendo simmetrici rende meno difficile il loro utilizzo visto che il codice di 1 core puo essere riposizionato sugli altri 3 senza problemi, invece sul cell un codice fatto per il core principale non puo girare da nessuna altra parte senza una sostazniale riprogrammazione.

ErminioF
02-10-2006, 09:31
PS3 ha hw ancora nuovo/acerbo, la 360 è molto più facile da programmare...dire che 1 è migliore dell'alta sulla AI mi sembra molto prematuro, probabilmente alla ubisoft non avevano voglia di sbattersi per la versione ps3 o i soldi di ms hanno permesso di lavorare meglio sulla console di casa :)

javaboy
02-10-2006, 09:48
Il problema principale è che le 6 spe della play 3 sono ottime per eseguire calcoli floating point ma non si prestano per l'IA.
Suppongo che sulla play 3 tutta l'ia dovrà essere gestita dall'unico core powerPC mentre l'xbox360 ha ben 3 core analoghi.

coschizza
02-10-2006, 09:52
A mio parere per farsi un idea piu precisa sui problemi/vantaggi di programmare sui nuovi pc/console con multicore è utile (per chi ha una cultura informatica gia molto elevata) dare un occiata a questo articolo MS

http://download.microsoft.com/download/5/b/e/5bec52bd-8f96-4137-a2ab-df6c7a2580b9/Coding_for_Multiple_Cores.ppt

si descrive in maniera precisa problemi e vantaggi nel sfruttare i 3 core della console xbox 360 ma anche a livello piu generale come si risolve il problema di sfruttare il piu possibile un hardware cosi complesso.

la cosa interessante è soprattutto verso la metà dove si prendono in esame casi reali di giochi per la console MS in particolare Kameo e PGR3, e si vede come vengono divise le risorse all'interno della cpu per cercare di parallelizzare il piu possibile il codice. E' interessante notare come praticamente in sessun caso l'hardware viene sfruttato al 100% e alcuni core sono utilizzati solo sporadicamente.

per chi si vuole cimentare nella lettura consiglio di leggere anche le note utilizzate normalmente del relatore perche contengono appunti interessanti.

IMHO capendo i concetti delle slide capirete (per chi non lo sa gia ovviamente ;) ) quanto lavoro bisogna fare in piu per sfruttare hardware multicore e multi thread sia su console sia su pc e del perche i giochi multipiattaforma come Assassin's Creed l'ubisoft abbia preferito un apporcico piu soft invece di investire ingenti risorse nell'ottimizzazione e programmazione di una versione (ps3) che ad oggi ha una base installata paria a 0.

aceto876
02-10-2006, 09:55
apparte il fatot che entrambe si possono definire "PowerPC" visto che il core 1 è quasi identico per entrambe le cpu (se non per delle personalizzazioni sulla controparte MS)

è esattamente l'opposto il cell è proprio scomodissimo per questo tipo di calcoli perche ha "solo" 1 core general purpose e 7 (ma di utilizzabili al massimo 5 o 6 a seconda dei casi) SPE che non possono gestire in maniera efficiente codice che prevede salti e breach prediction, rendendoli di fatto inefficienti in elaborazioni come l'AI che richiede codice intrinsicamente piendo di questo tipo di istruzioni.

Esatto. Da quel che capisco il codice AI è pieno di salti condizionali, cosa che viene eseguita al meglio un core General Purpose. L'X360 ne ha 3 con la possibilità di eseguire 6 thread insieme. Il Cell è costituito da 8 unità, ma solo una ha capacità General Purpose. Le SPE sono core specifici che eseguono molto bene dei calcoli, ma non si occupano mi pare di gestire salti come la PPE (si chiama così?). Per questo che mi aspettavo che il Cell fosse bestiale nello streaming audiovideo e nel calcolo della fisica, ma molto meno nel codice salterino dell'AI. Poi magari con sforzi di programmazione immani si può trovare il modo di ottimizzare un po' le cose per il Cell. Ma non penso si possano fare i miracoli.

Per inciso nemmeno il processore Xbox credo che sia così eccezionale, dato che neppure lui è in grado di fare esecuzione di codice Out Of Order, che penso sia molto utile con un codice a salti come quello dell'AI. Ma su quest'ultima cosa sono ancora meno sicuro che sul resto (portate pazienza ma sono un ingegnere meccanico. In quanto ingegnere, faccio sempre finta di sapere tutto :O , ma in quanto meccanico non so un Razzo di elettronica :doh: )

sslazio
02-10-2006, 09:57
per me l'hw microsoft è la sintesi della perfezione per una console di questa generazione.
Se avessero fatto giusto uno sforzetto in più mettendo 16 mega di memoria interna al chip grafico invece che 10 così da rendere più facile l'implementazione di AA ad alte risoluzioni non ci sarebbe stato nulla da fare per PS3.
Comunque anche così ritengo che l'hw di 360 sia superiore.

Jon_Snow
02-10-2006, 10:49
Il problema del processore Cell non è certamente la difficoltà nell'elaborare applicazioni General Purpose delle sue 7 sotto-unità*, bensì nel modo in cui queste devono essere gestite per ottenere il massimo delle prestazioni.

Laddove i tre core della 360 forniscono a livello logico, similmente alle architetture dei recenti Desktop PC, la possibilità di gestiste sei thread indipedenti in modo del tutto immediato, ben diversa è la filosofia del Cell che, è bene ricordare, è nato dalla IBM come soluzione server/workstation e poi adottato dalla Sony per la sua console. Nonostate le unità sinergistiche sono molte, esse sono strutturate per favorire il coordinamento e la comunicazione tra esse a discapito della indipendenza logica. In teoria le SPU possono svolgere compiti distinti, però, studiando nei dettagli l'architettura, ci si accorge di molte ottimizzazioni e di alcune scelte rivolte a facilitare la comunicazione e l'elaborazione, diciamo tra virgolette, "sincronizzata" tra loro. Si pensi ad esempio al BUS gestito con protocollo derivato dal classico token ring, scelta molto semplicistica ed utile solo se i dati che devono viaggiare hanno alta probabilità di trovare il destinatario tra gli immediati vicini. Anche la facilità con cui una SPU accede allo spazio dati dell'altra è un ulteriore indizio in tal senso.

Gli impressionanti limiti teorici del Cell vengono di fatto raggiunti quando si cerca di portare la comunicazione a diventare una sorta di vera e propria pipeline a livello di macroistruzioni i cui stadi di parallelizzazione vengono svolti dalle SPU stesse. Ed è porprio su questo punto che i programmatori incontrano maggiori difficiltà nell'ottimizzazzione, in quanto, gestire una parallellizzazione dell'esecuzione di una operazione estremamente complessa non è facile, richiede conoscenze perfino della tempistica media delle macroistruzioni stesse.

E' bene ricordare che tutto ciò va incontro proprio ad applicazioni server, macchine predisposte a svolgere computazioni di calcolo estremamente complesse e su enormi quantità di dati, a discapito di applicazioni multitask ed in real-time quali quelle videoludiche. Anche la particolare gestione della cache delle SPU, dove non esplicitamente gestito a livello hardware alcun algoritmo di predizione, da un'ulteriore palese prova di ciò che ho appena detto: in applicazioni SIMD su workstation è solitamente più facile effettuare una predizione delle istruzioni successive, ben diversa è la situzione in gioco dove la banda di utilizzo di caching è molto più influente.

Infine si fa notare che SPU sono coordinate da un'unità centrale PowerPC la cui frequenza a 3.2GHz ed implementazione di una sorta di HyperThreading, è comune a uno solo dei core sulla 360.

Con questo non voglio certo demolire la PS3 le cui potenzialità sono estremamente più alte rispetto alla 360, solo dare un'idea chiara del motivo per cui la 360 riesce a gestire meglio un motore multithread. Questa volta mazzette di Zio Bill credo proprio non ce ne siano, anche perché andrebbe contro gli interessi di una SH multipiattaforma ed in continua ascesa quale la Ubisoft.


Non è vero che ne funzioneranno solo 5 o 6, saranno 7 sulle 8 presenti nel chip ad essere abilitate.

coschizza
02-10-2006, 11:15
Non è vero che ne funzioneranno solo 5 o 6, saranno 7 sulle 8 presenti nel chip ad essere abilitate.

non mi sono spiegato bene scusa

ho detto che funzioneranno solo 5 o 6 per il semplice fatto che 1 spe viene utilizzata al 100% dal SO della ps3 e quindi non è utilizzabile dal motore di un gioco, inoltre quando verrà utilizzato il servizio live della ps3 per gestire chat in tempo reale e comunicazione video viene utilizzata anche un ulteriore spe rendendola di fatto non sfruttabile se non in parte daigli sviluppatori.

questo è almeno quello che si trova negli sdk della ps3, che non ho io ma amici oltreoceano

DevilsAdvocate
02-10-2006, 11:24
@Jon_Snow: scusa ma se come dici tu il problema e' semplicemente di branch prediction e salti, non si risolve col vecchissimo metodo del case multicondizione?
(in pratica si effettua un numero molto minore di salti preparando prima un valore corrispondente all'insieme delle condizioni con istruzioni IF a salto minimo (1 istruzione) e poi effettuando un salto piu' grosso guidato da
una "tabella" opportuna).

Almeno questo era il metodo che si usava in tempi antichi.(la
tabellizzazione di seni e coseni e' stata alla base del 3D....)

Quanto al problema della sincronizzazione delle SPU, non mi pare un grosso
problema: perche' si dovrebbe usare del tempo-macchina per eseguire esclusivamente l'AI quando la si puo'
eseguire in background dedicandole esclusivamente 1-2 SPU e "mescolando"
il codice general purpose in vari punti dentro il ciclo per la generazione di ogni
frame? ( portando cosi' i problemi di sincronismo a zero o quasi, visto che
si "dilata" l'esecuzione nel tempo quasi come se fosse un processo in
background lanciato su una CPU secondaria).

O e' una cosa troppo difficile/complicata per i programmatori della
Ubisoft? Avendo 7 spu da usare (ok, meno una per il sistema
operativo...) potrebbero anche decidere di sfruttarle
tenendone 1-2 riservate all'AI, o no?
Farei notare che quelli della Bethesda che hanno portato il RadiantAI
su PS3 (perche' Oblivion sara' disponibile da novembre) non hanno
annunciato niente di simile, e dubito che l'AI di Assassin Creed possa
essere cosi' tanto piu' avanzata del RadiantAI (attualmente la migliore AI
mai messa in un videogioco) da costituire caso a parte...

dsajbASSAEdsjfnsdlffd
02-10-2006, 11:42
@DevilsAdvocate: no stando a ciò che dice Jon_Snow le risorse condivise dalle SPU sono talmente sincronizzate che se non implementi il tutto in stile pipeline hai un degrado quasi totale delle performance. stando cosi le cose ti serta solo il core mutipurpose per implementare l'AI, anche perche non credo tu possa materialmente combinare una serie di if in un salto solo, gia con (esempio) 8 sei a 2^8 salti, senza contare che alcuni salti futuri potrebbero essere condizionati da computazioni su salti precedenti (molto propabile inquanto trattasi di un contesto di AI) il che manda a pu77ane tutto il discorso, metti il caso che gli if da aggregare siano 10 invece di 8... la manutenibilità del codice e soprattutto i tempi fisici per implementare questo disastro salgono esponenzialmente (e non a caso!) e con loro i costi

DevilsAdvocate
02-10-2006, 11:43
non mi sono spiegato bene scusa

ho detto che funzioneranno solo 5 o 6 per il semplice fatto che 1 spe viene utilizzata al 100% dal SO della ps3 e quindi non è utilizzabile dal motore di un gioco, inoltre quando verrà utilizzato il servizio live della ps3 per gestire chat in tempo reale e comunicazione video viene utilizzata anche un ulteriore spe rendendola di fatto non sfruttabile se non in parte daigli sviluppatori.

questo è almeno quello che si trova negli sdk della ps3, che non ho io ma amici oltreoceano

Non credo che l'uso della semplice chat possa occupare una intera SPE,
(ne usera' si e no il 5%), mentre ritengo ovvio che se abiliti la
comunicazione video (webcam di tutti i partecipanti al gioco) una certa
potenza la devi prendere da qualche parte..... (e' gia' molto carino che
basti una singola SPE per gestire tutti i dati dei flussi video di una decina
di giocatori! Non credo che su Xbox360 sara' possibile niente di
paragonabile...). Comunque entrambi i casi chat/videochat valgono solo
per i titoli multiplayer, non e' questo il caso.... hanno 6 SPE a
disposizione per Assassin Creed.

DevilsAdvocate
02-10-2006, 11:45
@DevilsAdvocate: no stando a ciò che dice Jon_Snow le risorse condivise dalle SPU sono talmente sincronizzate che se non implementi il tutto in stile pipeline hai un degrado quasi totale delle performance. stando cosi le cose ti serta solo il core mutipurpose per implementare l'AI, anche perche non credo tu possa materialmente combinare una serie di if in un salto solo, gia con (esempio) 8 sei a 2^8 salti, senza contare che alcuni salti futuri potrebbero essere condizionati da computazioni su salti precedenti (molto propabile inquanto trattasi di un contesto di AI) il che manda a pu77ane tutto il discorso, metti il caso che gli if da aggregare siano 10 invece di 8... la manutenibilità del codice e soprattutto i tempi fisici per implementare questo disastro salgono esponenzialmente (e non a caso!) e con loro i costi

Questo e' in contraddizione con quanto detto da Coschizza: come
potrebbero allora dedicare 1 SPE esclusivamente al sistema operativo
ed una al sistema di videochat? Allora le prestazioni sarebbero sempre e
comunque "degradate" dalla SPE che controlla il so,e tutto il discorso
non avrebbe senso perche' implementare l'AI in questo modo non
degraderebbe alcunche'....

quanto ai 2^8 salti (256), una tabella con 256 indirizzi di memoria non
mi pare questo incredibile sforzo, quanto occupera' mai, 1-2Kb?
Se gli IF da aggregare sono 10 ne tieni 2 normali e ne aggreghi 8,
passi comunque da 10 salti "lontani" a 3, una velocizzazione non da
poco. (10/3 *100% = 333,3% cioe' il 233,3% piu' veloce sui salti...)

dsajbASSAEdsjfnsdlffd
02-10-2006, 11:56
non è la dimensione della tabella che mi preoccupa, ma il codice che DEVI riscrivere per ogni combinazione di condizioni, che nel caso peggiore è distinto da ogni altra situazione per delle inezie (piccole porzioni che con una struttra a if classica sarebbro probabilmente più manutenibili), ma a parte questo resta il problema, ben più grosso, delle computazioni basate su salti precedenti, che volendo sempre guardare il caso peggiore, potrebbero essere ad ogni brench.

coschizza
02-10-2006, 11:58
Non credo che l'uso della semplice chat possa occupare una intera SPE,
(ne usera' si e no il 5%), mentre ritengo ovvio che se abiliti la
comunicazione video (webcam di tutti i partecipanti al gioco) una certa
potenza la devi prendere da qualche parte..... (e' gia' molto carino che
basti una singola SPE per gestire tutti i dati dei flussi video di una decina
di giocatori! Non credo che su Xbox360 sara' possibile niente di
paragonabile...). Comunque entrambi i casi chat/videochat valgono solo
per i titoli multiplayer, non e' questo il caso.... hanno 6 SPE a
disposizione per Assassin Creed.

con le ADSL che troviamo in giro penso che neanche la ps3 potrà gestire tutti i dati dei flussi video di una decina di giocatori, e gia tanto se i giochi non avranno troppi lag ;)

per quello che riguarda la gestione delle chat e dell'audio non ho sottomano dati per la ps3 ma ho quelli della xbox 360 che come saprai non ha un processore audio inclusa (come la ps3 delresto) e quindi la MS ha stimato in 20-25% l'occupazione massima di 1 delle cpu (piu precisamente 1 dei 2 thread hadware disponibili per cpu), questo per gestire via software il mixer audio.

quindi non so se gli sviluppatori vorranno sovvracaricare la spe utilizzata per l'audio con altri componenti del motore. Questo visto che anche sulla 360 cercano di non metterci codice fondamentale o che deve aver a disposizione tutta la potenza.

DevilsAdvocate
02-10-2006, 12:02
non è la dimensione della tabella che mi preoccupa, ma il codice che DEVI scrivere per ogni combinazione di condizioni, che nel caso peggiore è distinto da ogni altra situazione per delle inezie (piccole porzioni che con una struttra a if classica sarebbro probabilmente più manutenibili), ma a parte questo resta il problema, ben più grosso, delle computazioni basate su salti precedenti, che volendo sempre guardare il caso peggiore, potrebbero essere ad ogni brench.
non mi pare ci sia cosi' tanto codice in piu', invece di (semplifico, in
realta' nel caso 2 sara' 1 case invece di molti if)

if (condizione a) then (jump(1))
if (condizione b) then (jump(2))
1 if (condizione c) then (jump(...))
if (condizione d) then (jump(...))
2 if(condizione e) then (jump(...))
......

si usa:

if (condizione a) then (salto.var=1)
if (condizione b) then (salto.var=2)
if (condizione c) then (salto.var=3)
if (condizione d) then (salto.var=4)
.......
/*fine degli if*/
jump.derived (salto.var)

facendo attenzione a conoscere dove son mappate in memoria le "label"
a cui saltare (ovviamente la tabella non si costruisce a mano ma
attraverso scripting/programmino dedicato, come il case of puo' essere
scritto "aiutandosi" con varie utility, addirittura si puo' pensare a crearsi
un tool che legge il codice sorgente del caso 1 e lo trasforma automaticamente in quello del caso 2)

Luposardo
02-10-2006, 12:09
Mi pare strano che con tutte queste grandi capacità di calcolo delle nuove console ci sia comunque così tanta differenza, non sono un grande esperto ma così a primo impatto pare più una questione di ottimizzazione dell'IA più che una migliore gestione da parte di una console rispetto un'altra...

DevilsAdvocate
02-10-2006, 12:14
con le ADSL che troviamo in giro penso che neanche la ps3 potrà gestire tutti i dati dei flussi video di una decina di giocatori, e gia tanto se i giochi non avranno troppi lag ;)

ehm, anche se il monitor fosse in HD 1080p (1900x1080) i flussi
sarebbero ovviamente riscalati in risoluzione per non occupare
tutto lo schermo (ecco perche' serve l'SPE). Inoltre 2-3 anni fa
qualcosa sopra ai 640 kbps delle ADSL "classiche" era impensabile, oggi
le ADSL economiche sono a 1,2 Mb, quelle normali a 4/8Mb e volendo ce
ne sono di piu' veloci.
Con lo standard ADSL2 invece stiamo a 2/4 Mbps per quelle lente
e 12 su un massimo di 22 per quelle veloci....

per quello che riguarda la gestione delle chat e dell'audio non ho sottomano dati per la ps3 ma ho quelli della xbox 360 che come saprai non ha un processore audio inclusa (come la ps3 delresto) e quindi la MS ha stimato in 20-25% l'occupazione massima di 1 delle cpu (piu precisamente 1 dei 2 thread hadware disponibili per cpu), questo per gestire via software il mixer audio.
Esattamente quello che penso io, un'elaborazione dati attorno al 5% del
tempo di una SPE, visto che qui i salti sono circa zero.
(ricordiamoci che un Cell con 8 SPE gestisce 48 flussi mpeg2 risoluzione
DVD,cioe' 8 per ogni SPE, mentre una cpu general purpose senza
accelerazione della scheda grafica, occupava ben piu' del 30% del
tempo macchina su cpu a 2 ghz. (8 flussi = 240% del tempo macchina),
oggi non lo vediamo piu' perche' su PC e' tutto fatto sfruttando le
accelerazioni delle schede video).

k-Christian27
02-10-2006, 12:14
Una info per chi giudica l X360 nuna macchinetta:

Non so se avete visto la presentazione in tempo reale di Alan Wake gestita solamente da un PC Quad Core...
L'uragano e la tempesta hanno sfuttato i quad core e come stesso ha detto il programmatore del gioco Alan Wake non potrebbe girare con questo tipo di effeti su di un PC double core...
Ovvero i super effetti (comunque anche i normali sono meravigliosi) gireranno alla grande sul X360 che è 6 !!!! core...

Cio che abbiamo visto da un anno fino ad ora è veramente un assaggio anche se è difficile da credere perchè chiunque habbia giocato KAMEO (e soffrmatosi a vedere tutto il mondo circostante) è rimasto allibito da cosa è riuscita a fare la RARE... ovvero cio che sognavo anni fa.. gioche stile CGI in tempo reale...

Byexx...

dsajbASSAEdsjfnsdlffd
02-10-2006, 12:31
@devilsavvocate

probabilmente non hai capito, ci riprovo:

(Nota: dal forum si vede meglio)

if (A) {
istruzioneA
if (B) {
istruzioneB
}
else {
istruzioneC
}
}
else {
istruzioneD
if (C) {
istruzioneE
}
else {
istruzioneF
}

diventa

if (A&B) {
istruzioneA
istruzioneB
}
if (A&!B) {
istruzioneA
istruzioneC
}
if (!A&C) {
istruzioneD
istruzioneE
}
if (!A&!C) {
istruzioneD
istruzioneF
}


ora ti chiedo di fare l'enorme sforzo di immaginazione di aggiungere altri livelli di if al primo caso e immaginarti quante volte devi replicare le istruzioni nel secondo caso per farlo venire analogo (nota che è pseudocodice, con "!A&!C" intendo il tuo indice che corrisponde alla sitazione in cui è falso il salto associato ad a e c, ad esempio)

ora, è VERISSIMO che puoi scriverti un codice che faccia queste trasformazioni quando è possibile ossia tutte le codnizioni sono GIA VALUTABILI prima del primo if, e NON È SEMPRE COSÌ, ma a questo putno lo vedi che è più costoso il secondo approccio? hai addirittura bisogno di sviluppare un tool per scriverti gli if... non è per niente una bella cosa, e poi chi lo mantiene? quando fai una modifica ad esempio all'istruzioneA la devi cambiare intutti i blocchi altrimenti hai bug a cascata.

considera inoltre che nel primo caso arrivi al blocco di istruzioni da eseguire con un albero, nel secondo caso invece è come scorrersi una lista, è svantaggioso in tutti i sensi a meno che non sia possibile indicizzarei l salto al posto giusto con un calcolo in tempo costante, ma non sembra questo il caso

spero di essere stato chiaro questa volta.

Jon_Snow
02-10-2006, 12:43
ho detto che funzioneranno solo 5 o 6 per il semplice fatto che 1 spe viene utilizzata al 100% dal SO della ps3 e quindi non è utilizzabile dal motore di un gioco, inoltre quando verrà utilizzato il servizio live della ps3 per gestire chat in tempo reale e comunicazione video viene utilizzata anche un ulteriore spe rendendola di fatto non sfruttabile se non in parte daigli sviluppatori.

Ok avevo capito male, sorry! :)

@Jon_Snow: scusa ma se come dici tu il problema e' semplicemente di branch prediction e salti, non si risolve col vecchissimo metodo del case multicondizione?
(in pratica si effettua un numero molto minore di salti preparando prima un valore corrispondente all'insieme delle condizioni con istruzioni IF a salto minimo (1 istruzione) e poi effettuando un salto piu' grosso guidato da
una "tabella" opportuna).

Prima di risponderti vorrei precisare che i miei sono stati esempi per dare l'idea su un'architettura realmente innovativa, il processore Cell è una grande opera ingegneristica che gode di tutta la mia ammirazione è stato un piacere poterla studiare.
Tornato alla tua domanda, hai intuito bene l'idea della IBM che tra le altre cose si era già vista parecchi anni fa ed è stata ripresa oggi con i tempi e dimensioni di cache più maturi.

Per qualsiasi CPU, la banda di cache utilizzata è fortemente legata a come è scritto il programma sia logicamente e sia a livello di linguaggio macchina. Esistono molte tecniche che aiutano nel predirre l'istruzione successiva o comunque a limitare i casi di stallo. Ottimizzazioni del genere solitamente sono effettuate già dal compilatore e dai kit di sviluppo stessi che ovviamente prima di raggiungere una certa maturità necessitano di molto tempo.

Nel caso delle SPU tutto ciò è reso ancora più estremo spostando ulteriormente il punto focale a livello software dovendo gestire "a mano" (ovviamente con l'aiuto dei compilatori) la caching stessa senza il supporto di unità elettroniche. Una scelta del genere non è da folli perché la linea di principio e simile all'idea dei RISC PowerPC: snellirre la complessità hardware per diminuire i ritardi dovuti ad un numero eccessivo di porte logiche necessarie per gestire algortimi complessi. In altre parole la cache è più veloce di quelle tipiche per PC. Ovviamente la complessità di progettazione del software aument, certamente ciò che dici potrebbe essere una delle tante vie. Il problema è che tutto è legato all'applicazione stessa e nei giochi, dove il real-time è un fattore cruciale, il modo con cui si limita l'accesso diretto in RAM diventa di cruciale importanza.

Anche se a parole potrebbe sembrare facile, in realtà non lo è affatto, è sicuramente un'aggiunta in più ai programmatori. Daltro canto i margini di miglioramento sono molto elevati e legati soprattutto allo sviluppo dell'SDK da parte di Sony. Il fatto che li abbia presentati con enorme ritardo alle case terze la dice lunga su quanto difficile e su quanto importanti siano.

Quanto al problema della sincronizzazione delle SPU, non mi pare un grosso
problema: perche' si dovrebbe usare del tempo-macchina per eseguire esclusivamente l'AI quando la si puo'
eseguire in background dedicandole esclusivamente 1-2 SPU e "mescolando"
il codice general purpose in vari punti dentro il ciclo per la generazione di ogni
frame? ( portando cosi' i problemi di sincronismo a zero o quasi, visto che
si "dilata" l'esecuzione nel tempo quasi come se fosse un processo in
background lanciato su una CPU secondaria).

O e' una cosa troppo difficile/complicata per i programmatori della Ubisoft?

Il problema è che le SPU per come sono pensate non sono paragonabili a core indipendenti, forzandole a tale funzionamento si perdono molte delle vere potenzialità del Cell. Assegnare compiti del tutto indipendenti non si sfruttano le possibilità di comunicazione tra le unità, e si potrebbero intercorrere a colli di bottiglia imprevisti. Ad esempio il BUS EIB tra i coprocessori è pensato per favorire passaggi di dati tra SPU molto vicine, tanto è vero che gli ingegneri hanno bloccato la possibilità di spedire byte ad un'unità troppo "distanti".

Assegnando alle varie SPU codice GP senza un determinato criterio si rischia di generare una eccessiva mole di dati. In realtà la strada da seguire è quella che hai intuito tu: cercare di "mescolare" le varie operazioni tra i coprocessori piuttosto che assegnare compiti specifici ad ognuno di essi. Sembra facile? Non lo è affatto. Il parallismo per essere sfruttato al meglio rischiede molta esperienza. Il rischio è quello di sbilanciare il carico tra le SPU ed è bene precisare che tutto ciò è a livello macchina e non applicativo.

No, non è facile per niente. Ovviamente la Ubisoft ha tutti i mezzi per poterlo fare, ma un conto è la teoria, altro è la pratica con costi e tempi ristretti.

Wip3out
02-10-2006, 12:58
Scusate, apparte i tecnicismi e le considerazioni sulla convenienza o meno per UBISOFT di "studiare" il CELL, ma se non erro Assanins Creed era nato come esclusiva PS3, quindi in teoria se dovevano metere più impegno da una parte avrebbe dovuto essere proprio la parte Sony. Invece hanno completamente ribaltato la frittata. Questo è forse indice di una "estrema" sconvenienza nel cercare ottimizzazione per il CELL?
Che ne pensate?

Jon_Snow
02-10-2006, 13:08
bhe ovviamente non sta a me decidere se ad Ubisoft conveniva o meno puntare sulla PS3, se hanno fatto questa scelta hanno avuto i loro motivi.

La tua considerazione in realtà è più che esatta e ti quoterei in pieno se non fosse per un particolare, che già versione vista all'E3 girava su X360 anche se presentata allo stand Sony! Lo so, sembra assurdo, ma tempo fa avevo letto un articolo a riguardo, passato in sordina a quanto pare, e non ho letto di smentite in giro per la rete.

Defragg
02-10-2006, 13:54
Ovvero i super effetti (comunque anche i normali sono meravigliosi) gireranno alla grande sul X360 che è 6 !!!! core...
la X360 non è a 6 core...ha tre core fisici capaci ciascuno di 2 thread :)

Defragg
02-10-2006, 13:55
http://it.com.cn/f/games/069/8/pc0908qz0800.jpg

adesso diventerà l'eroina di tutti i boxari :p

e chi sarebbè? :D :sofico:

coschizza
02-10-2006, 14:01
e chi sarebbè? :D :sofico:

se non erro è la ragazza (produttore del gioco per l'ubisoft) che ha mostrato la demo all' x6 della scorsa settimana.

Defragg
02-10-2006, 14:09
se non erro è la ragazza (produttore del gioco per l'ubisoft) che ha mostrato la demo all' x6 della scorsa settimana.
'usti...che bella presenza :sofico:

jpjcssource
02-10-2006, 14:37
e chi sarebbè? :D :sofico:

è Jade Raymond, la produttrice di Assassin's Creed, ma non lo avevate capito :mbe: :confused: ? Quella che ha fatto le dichiarazioni riportate in questa news :read:

Apple80
02-10-2006, 17:49
certo. il problema della PS3 lo si sà già. è più difficile programmare i giochi. questa news non mi stupisce affatto.


il cell puo' avere delle caratteristike da sbavo, ma se poi non lo si sà controlalre serve a poco. Imho la potenza non è nulla senza controllo

Defragg
02-10-2006, 18:13
certo. il problema della PS3 lo si sà già. è più difficile programmare i giochi. questa news non mi stupisce affatto.


il cell puo' avere delle caratteristike da sbavo, ma se poi non lo si sà controlalre serve a poco. Imho la potenza non è nulla senza controllo
bella la citazione della pubblicità delle gomme :D

è Jade Raymond, la produttrice di Assassin's Creed, ma non lo avevate capito :mbe: :confused: ? Quella che ha fatto le dichiarazioni riportate in questa news :read:
non mi immaginavo fosse una bella (e giovane) ragazza... :oink:

mscala
02-10-2006, 19:00
Mamma mia e che ci si inventa per cercare di guadagnare quote di mercato per l'Xbox360.
Io penso che la Microsoft con questi giochetti "pubblicitari" di terze parti, debba ormai rassegnarsi e guadagnarsi la sua fetta di mercato.
Lasciasse perdere le case che le console le ha fatte da decenni!

kenjcj2000
02-10-2006, 19:22
mi fà piacere vedere come si metta in mezzo micros. pure quando non apre bocca .... aspettiamo e vedremo....

jpjcssource
02-10-2006, 19:27
Mamma mia e che ci si inventa per cercare di guadagnare quote di mercato per l'Xbox360.
Io penso che la Microsoft con questi giochetti "pubblicitari" di terze parti, debba ormai rassegnarsi e guadagnarsi la sua fetta di mercato.
Lasciasse perdere le case che le console le ha fatte da decenni!

Beh sicuramente questi giochetti pubblicitari fanno parte del marketing, anche se il ragionamento cpu xbox360 - cell non è affatto da buttare secondo me.

In una console war i colpi bassi e i giochetti pubblicitari non mancano mai e sarà sempre così anche se bisogna dire che microsoft per aumentare la propria fetta di mercato stà facendo molto di più di fare qualche semplice giochetto e stà pressando pesantemente la concorrenza.

kenjcj2000
02-10-2006, 19:40
Beh sicuramente questi giochetti pubblicitari fanno parte del marketing, anche se il ragionamento cpu xbox360 - cell non è affatto da buttare secondo me.

In una console war i colpi bassi e i giochetti pubblicitari non mancano mai e sarà sempre così anche se bisogna dire che microsoft per aumentare la propria fetta di mercato stà facendo molto di più di fare qualche semplice giochetto e stà pressando pesantemente la concorrenza.

sicuramente i 7 spe faranno il loro dovere .. mi viene da dire ci mancherebbe altro visto che la play3 gli è stata costruita attorno :) x ora dai fimati in game mostrati non vedo niente che non possa non girare su un 360.. lo sò che:

1: i filmati lasciano il tempo che trovano
2: la ps2 pure lei all^inizio non era stò granchè e poi si è rilevata vincente pure sotto l^aspetto grafico

ma mi viene da dire che il 360 non avrà questi magnifici 7 e questo lo sappiamo tutti ma come scheda grafica è un passo avanti e su questo non ci piove

io ritengo che saranno due buone macchine con giochi graficamente notevoli dall^una e dall^altra parte a secondo di chi e come ci svilupperà sopra

non vedo un vincitore questa volta se parliamo di potenza della macchina ..se poi parliamo di future vendite bè sinceramente penso che nonostante i passi falsi fatti da sony x questa rimandata uscita rimarrà leader nella vendite ...

jpjcssource
02-10-2006, 19:51
sicuramente i 7 spe faranno il loro dovere .. mi viene da dire ci mancherebbe altro visto che la play3 gli è stata costruita attorno :) x ora dai fimati in game mostrati non vedo niente che non possa non girare su un 360.. lo sò che:

1: i filmati lasciano il tempo che trovano
2: la ps2 pure lei all^inizio non era stò granchè e poi si è rilevata vincente pure sotto l^aspetto grafico

ma mi viene da dire che il 360 non avrà questi magnifici 7 e questo lo sappiamo tutti ma come scheda grafica è un passo avanti e su questo non ci piove

io ritengo che saranno due buone macchine con giochi graficamente notevoli dall^una e dall^altra parte a secondo di chi e come ci svilupperà sopra

non vedo un vincitore questa volta se parliamo di potenza della macchina ..se poi parliamo di future vendite bè sinceramente penso che nonostante i passi falsi fatti da sony x questa rimandata uscita rimarrà leader nella vendite ...


Concordo, sony perderà qualche quota di mercato, ma rimarrà leader grazie al grande margine che ha ammucchiato negli ultimi anni ;)

Defragg
02-10-2006, 20:30
Mamma mia e che ci si inventa per cercare di guadagnare quote di mercato per l'Xbox360.
Io penso che la Microsoft con questi giochetti "pubblicitari" di terze parti, debba ormai rassegnarsi e guadagnarsi la sua fetta di mercato.
Lasciasse perdere le case che le console le ha fatte da decenni!
fà parte del gioco...così come sony e nintendo fanno

mscala
03-10-2006, 10:26
Sono contento che ci sono davvero molte persone con gli occhi ben aperti e che tali persone, non hanno interpretato le mie parole come la solita lotta tra chi parteggia per una o per l'altra console.
Infatti questi giochetti di marketing ci saranno sempre e concordo con voi ma spero che alla fine questo non vada a discapito del consumatore.
Non credo sia possibile realizzare le solite "Esclusive" se non da chi ci mette il nome, mi spiego meglio:
Io accetto l'esclusiva quando è marcata dal nome del produttore della console stessa.
Cioè ammetto che la Microsoft sforni, con suo nome, un titolo e lo faccia esclusivo per la sua piattaforma, come ammetto che lo faccia Sony o Nintendo etc.
Non ammetto però quando si paghino altre software house accaparrandosi l'esclusiva.
Questo dovrebbe essere vietato o almeno non permesso eticamente perchè il giocatore non dev'essere costretto a comprarne più di una, ma a comprare quella che reputa migliore.
Ma so che è una misera Utopia la mia.

Non trovate?

Defragg
03-10-2006, 13:43
Io accetto l'esclusiva quando è marcata dal nome del produttore della console stessa.
Cioè ammetto che la Microsoft sforni, con suo nome, un titolo e lo faccia esclusivo per la sua piattaforma, come ammetto che lo faccia Sony o Nintendo etc.
Non ammetto però quando si paghino altre software house accaparrandosi l'esclusiva.
Questo dovrebbe essere vietato o almeno non permesso eticamente perchè il giocatore non dev'essere costretto a comprarne più di una, ma a comprare quella che reputa migliore.
Ma so che è una misera Utopia la mia.

Non trovate?
quoto...e (purtroppo :rolleyes: ) è solo un'utopia :muro: