DAX ha scritto:Mi spiace, ma non concordo affatto. La GPU non può sostituire in toto la CPU nei calcoli in virgola mobile, o in generale in calcoli massicciamente paralleli, perché dipende tutto dal tipo di algoritmi che sono adattabili alla sua architettura.
Tant'è che le unità SIMD delle CPU moderne vengono continuamente aggiornate. Non a caso Intel ha tirato fuori le AVX di recente, e sono sicuro che se ne farà un ottimo uso. Come sempre...
Le unità AVX sono in netta competizione con quanto offerto dal GP-GPU in quanto c'è una mega datriba tra intel ed nVidia, non so rammenti i tempi dell'annuncio delle stazioni Tesla e intel che non ha licenziato i nuovi chipset ad nvidia (e certamente intel non sta a braccetto nemmeno con Ati/Amd).
Le due questioni sono ben diverse, e non sono collegate. Le licenze sono un tema che non riguarda solo nVidia, e che Intel batte già da parecchio tempo.
Inoltre non vedo sovrapposizione fra le AVX e il GP-GPU computing. Forse ti confondi con l'architettura Larrabee, che è basata su x86 e che va a competere con nVidia e AMD proprio in questo settore.
Ma se hai informazioni in merito mi farebbe piacere leggerle, perché per me rappresentano una novità.
Cercano di dire, NO! Non usate il GP-GPU (visto che loro non offrono CUDA e compagnia bella) ma i dati AVX per quanto eccellenti per una CPU sono pur sempre ridicoli in confronto a quelli ottenibili su una GPU.
Non vedo come sia possibile questa generalizzazione. Le GPU e le AVX hanno architetture molto diverse, sebbene in alcuni casi siano sovrapponibili.
Poi mentre le GPU sono utilizabili anche in sistemi "non-PC" (quindi anche dalle nostre parti usiamo le componenti che usa Windows), AVX è solo per x86 ( e per ora solo Windows) a noi tocca altivec che è ben altra cosa...(meno potente).
Questo è un altro discorso, ma di estensioni SIMD ne sono presenti parecchie.
Invece anche FreeScale sta provvedendo ad aggiornare Altivec con nuove istruzioni,
Ma come, non sei tu ad insegnarmi che loro le CPU le fanno per il mercato embedded? ;-)
Esattamente, ma non vedo cosa ci sia di male in ciò.
Ricordati che li ci sono sistemi rack che nemmeno ce l'ahnno il chip grafico e quindi se vuoi acelerare la vector math o usi Altivec/SSE o niente...
Questo se parli di server, e in ogni caso anche nel caso di server sono ormai comuni soluzioni con GPU integrata.
Nel settore embedded mobile c'è SEMPRE una GPU, anche di ottima potenza, che fa parte del sistema.
Quindi?
quando il trend è quello di inglobare GPU dentro il core della CPU.
Err...le GPU integrate in Sandy Bridge fanno una figura ultra ridicola contro schede dedicate di 6/7 anni fa.
Infatti Intel ha stretto un accordo con Infineon per infilare una GPU PowerVR nelle sue prossime soluzioni.
Ma a parte questo stranamente non hai citato AMD con le sue soluzioni Fusion, per non parlare di nVidia con Tegra. E' soltanto una dimenticanza?

E' chiaro che quello è solo un trend per chi vuole vedere i film/youtube e usare facebook, senza acquistare una GPU dedicata.
AMD e nVidia stanno dimostrando che una GPU integrata non serve soltanto a questo.
Per il resto putroppo l'atto pratico non trova conferma delle migliori prestazioni float (a basso regime di MHZ) dato che un secondo bench abbastanza float based (Lame) una volta disattivato l'altivec da risultati piuttosto deludenti per chi si aspetta chissà che (valori simili alla 460).
Mi piacerebbe vedere in cosa consiste e in quali condizioni è stato effettuato il test.
Sta su Bitplane, test con lame senza Altivec (e qui parlavamo appunto delle potenzialità lisce).
Non ce l'ho e non l'ho trovato nemmeno online. In sintesi il dato quale sarebbe?
Sai com'è io mi fido piu delle prove su strada che bench sintetici che, come ampiamente dimostrato da Blender e Lame, non hanno corrispondenza reale.
SPEC fa uso di centinaia di algoritmi che ritrovi poi nel codice di tutti i giorni. Si va dai parser (interpreti, compilatori) alla compressione di Huffman, passando per query su base dati, FFT, filtraggio di immagini, ecc. E scusa se è poco...
Infatti, come dicevo, è uno standard industriale usato da tutti, proprio per la varietà del tipo di codice e, quindi, dell'affidabilità che ne deriva.
Quello che vuoi ma se poi sui su strada le differenze tra Peg2 e 460EX (senza Altivec) sono finora risultate irrilevanti, che ti devo dire? Se vuoi ti dico che risultano incredibili super duper yeah!![]()
Non mi sembra che un solo test (quello con Lame; Blender riporta dati contrastanti e va approfondito) possa essere preso come campione di validità universale. Statisticamente è una posizione decisamente debole.
Si dovrebbero fare molti test, con codice quanto più variegato possibile. Che poi è quello che fa SPEC.
Fatico a trovare dati che dimostrino di come la Pegasos2 prevalga sulla 460EX "senza" Altivec,
Io dati non ne ho, ma se li hai tu, passami i link, così potrò almeno dargli un'occhiata.
Per ora abbiamo osservato (sempre senza Altivec parliamo) il bench di blender che hai citato anche tu (dove un 460 a 1Ghz termina il render un po prima del G4 a 800Mhz. Cosa credi che avvenga aumentando il G4 a 1Ghz e la 460 a 1150Mhz? Ancora una volta differenze irrisorie/poca roba? abbastanza inevitabile.)
Quel test è tutto da vedere, come già detto. Per il resto un G4 che passa da 800Mhz a 1Ghz ha un incremento del 25%, mentre un 460 che passa da 1Ghz a 1,15Ghz ha un incremento del 15%. Questo per il clock. A livello prestazionale prendendo QUEL risultato direi che il G4 non è messo affatto male.
Ma, ripeto, bisogna vedere la bontà di quel test col G4, visto che ci sono anche altri risultati in cui si dimostra più efficiente a parità di clock.
e il test lame fatto da bitplane.
In entrambi i casi, non si registrano differenze da far gridare al miracolo da una parte e far strappare i capelli dall'altra, la noia la fa abbastanza da padrona.
Prendendo per buono il LAME, con un solo test non si può dedurre nulla.
Sono molti di più i test che ho riportato io confrontando G3 e G4, dove complessivamente il G4 risulta avere prestazioni superiori. E se consideriamo che il 460 è a metà fra G2 e G3, direi che il quadro non è esattamente a suo favore.
Anche perché ti stai fissando con un G4 a clock abbastanza basso, quando è arrivato al doppio di quella frequenza, proprio in virtù della sua maggior scalabilità in frequenza, e mi sembra che gli altri test di divina dimostrino che all'aumentare della frequenza i risultati siano ben più lusinghieri, no?
Quindi la CPU il suo sporco lavoro lo fa, e si vede.
come fatico a trovare benchmark che pongano altivec al di sopra di GP-GPU.
Perché non ce ne sono? Altrimenti passami il link.
No dico, ma i test di video encoding con GP-GPU li hai visti si? Altivec è un Vic20 in confronto...
Embè? Puoi dimostrare che QUALUNQUE algoritmo in cui sia possibile impiegare un'unità SIMD possa essere portato su una GPU e funzionare (molto) meglio?
Se hai in tasca questa dimostrazione, allora il futuro è quello che ho dipinto: torniamo alle CPU da Commodore 64, lasciando che le GPU facciano praticamente tutto.
Ma mi sembra poco realistico, come quadro, no?
Io potrei farti alcuni esempi in cui l'uso di un'unità SIMD permetta di ottenere prestazioni ben più elevate di qualunque GPU, anche superpompata.
Se la CPU non è importante, a questo punto possiamo tornare a utilizzare il buon 6510 del Commodore 64...
Su questo siamo d'accordo al 100% in verità.
Quello che dico io è limitato a un range microscopico e cioè, al fatto che tra 460EX a 1150Mhz e G4 a 1Ghz SENZA altivec, non si sono registrate differenze eclatanti che possano far strappare i capelli, cosa confermata da benchmarks pratici, che una cosa o due a che fare con in floats ce l'hanno pure...
Il mio paragone termina a queste due schede non è un discorso in generale,
Sì, ma nemmeno puoi generalizzare con due soli benchmark in mano, di cui uno che mostra risultati variabili...
ben consapevole del fatto che i giochi open source arrivano da Linux x86 dove di codice ottimizato Altivec c'è il nisba piu totale (espando ulteriormente al riguardo in altri commenti).
Non è necessario scrivere in assembly per sfruttare le unità SIMD. E' sufficiente utilizzare un buon compilatore, con eventualmente alcune direttive per indicare la presenza di dati vettoriali (se il compilatore non ce la fa a riconoscerli da solo).
Per i calcoli di tipo vector in applicazioni professionali la Peg2 ha l'Altivec del G4 ma non potrà mai avvantaggiarsi del GP-GPU (un difetto della Peg2 non del G4). La 460EX potrà ricevere software di video encoding/decoding accelerati dalla GPU, ma non ha l'Altivec.
Non vedo perché, visto che tutt'ora vengono prodotte schede video AGP con GPU moderne (anche se si tratta ormai di una nicchia di mercato).
Tra i due "potenziali"perferisco quello offerto dalla 460EX e ti spiego definitivamente il perche: il GP-GPU (openCL) è una cosa che faranno per altre piattaforme e che se OpenSource, puoi usare su Amiga, PC, Mac wherever, mentre se fai una cosa specifica per Altivec sarebbe solo per PPC. La cosa ci invita a riflettere sulle conseguenze macroscopiche di tale situazione: quale pensi che la comunità Linux si filerà secondo te?
L'uno o l'altro a seconda del tipo di algoritmo. Inoltre le unità SIMD si possono utilizzare senza ricorrere direttamente all'assembly (vedi sopra).
Ciò non toglie che il GP-GPU è utilizzabile anche su schede AGP (anzi, mi pare ci siano anche schede PCI, tra l'altro).
Il seguente esempio risponde alla domanda: è già pronta la simulazione fisica e fluidodinamica openCL per Blender...(con altre cose che si stanno muovendo per i renderers) per Altivec nada.
Lasciamo alle GPU questo tipo di calcolo, per i quali sono molto versate.
Anche con l'altiveq la Peg2 non gestisce video FullHD, mentre è notizia recente l'introduzione a breve in Gallium/Mesa (solo per schede RadeonHD) dell'accelerazione video HW.
Mi sembra che il quadro cominci a farsi chiaro...
Stai supponendo che la Peg2 (che non è l'unica scheda al mondo a montare un G4) non sia in grado di montare GPU moderne nel suo slot AGP.
Eh, no, mi spiace, ma le cose non stanno affatto così. La CPU il suo lavoro di elaborazione della scena (e dell'IA) lo deve fare, e si tratta di calcoli in virgola mobile. Calcoli per cui un'unità SIMD dà un'ottima mano, a prescindere dalla GPU utilizzata, perché questo è lavoro che NON compete a quest'ultima.
Daccordissimo...ma...Dunque Altivec, dove disponibile, farebbe sicuramente la differenza, posto che venga sfruttata, appunto.
...AI ottimizata a mano per l'altivec in un gioco PCx86 portato su Amiga?(
)
Hai ragione in generale ma ad Amiga ahimè, tange poco che ci possiamo fare?
Come già detto, non serve l'assembly per sfruttare le unità SIMD. Posso dirti che anche in giochi AAA è sempre più raro trovare pezzi di codice assembly.
Al più la moda è rappresentata dagli "intrinsic" del C++, che possono essere "emulati" anche su architetture completamente diverse.
Il che, almeno da quel che ho letto finora, non è affatto scontato, visto che si parla tanto di ottimizzare qui, ottimizzare là, ma sembra che la pratica sia stata abbandonata anche dagli sviluppatori (neo) amighisti...
Ai tempi d'oro si facevano giochi "piccoli" in assembler e li si ottimizava fino alla morte. Oggi ti capitano giochi fatti da altri con 12 miliardi di linee di codice (un gioco grosso e non tuo in pratica). Al massimo puoi ottimizare i driver video e questa domanda a Rogue gli è stata posta svariate volte in passato, lui ha risposto che la maniera in cui il sistema OpenGl è incastrato adesso non si puo fare molto e serviva farne uno nuovo.
Ci si può arrabbiare del fatto che il lavoro non sia stato fatto prima, ma finalmente ci si sono messi sopra "con la capa e col pensiero" e meglio tardi che mai.
E questo non dimostra forse che ottimizzare a manina il codice usando l'assembly x86 è cosa alquanto rara? Dunque perché continui a tirare in ballo quest'architettura?
Come detto, le ottimizzazioni di basso livello ormai difficilmente le trovi su progetti di milioni di righe di codice.
Lo si fa, se serve, su qualche driver o libreria di sistema. E preferendo gli intrinsic, quale strumento molto più comodo e di più facile portabilità.
Riguardo all'X1000, vedremo con quale supporto arriverà. A mio avviso mancherà l'SMP, i 64 bit, e i driver e/o SDK per sfruttare l'XMOS.
"Day one" è probabile, ma ricordiamoci che le promesse per quest'anno di Hyperion sono state, AmigaOS 4.1Update 2 for classics, Update3 for all e X1000 sugli scaffali con l'ultima versione disponibile di Aos. Dopo di che verranno aggiunte anche le altre facilities.
Come detto in altre occasioni, non mi pare un comportamento corretto far uscire una macchina che non si possa sfruttare al day one. I soldi gli utenti li cacciano fuori subito, non dopo diversi mesi.
Altrimenti è giusto il ragionamento di divina, perché il rischio è che tale supporto non arrivi mai.
E, come tu stesso hai detto, chi glielo fa fare a spendere tempo per un centinaio di utenti? La situazione sarà la stessa delle peg2, visto che hanno venduto qualche centinaio di licenze.
Perché per X1000 e per peg2, alle stesse condizioni? Visti i precedenti, c'è di che dubitarne fortemente...
