Quella dei SoC è una "moda" lanciata da AMD perché "ho comprato ATi" e seguita da Intel perché "qualcosa in questo chip devo pur metterci".
Un design "serio" sarebbe quello usato anche da Toshiba in alcuni portatili, ovvero una serie di SPE (derivazione Cell, senza PPE) da usare come acceleratori per varie funzioni.
Molto più flessibile di un intera VGA e molto più pratico.
Non che debbano per forza seguire la "strada" (ISA ed architettura) degli SPE, gli basta fare qualcosa di simile... processori veloci altamente programmabili con memorie locali integrate.
Le prestazioni di una qualsiasi VGA sono NETTAMENTE superiori a quelle del cell.
Bastava vedere la differenza enorme dei risultati delle gpu dei tempi confrontate con quelle del cell su seti.
E con le GPU che abbiamo attualmente non oso pensare a quanto e' arrivato il divario.

cell <<<<< della piu' scarsa vga

L'unico ostacolo ad oggi sono la mancanza di decenti strumenti di sviluppo e di linguaggi supportati.
E' vero che ci sono anche binding di python per cuda ad esempio, ma se non erro alcune parti andavano necessariamente scritte in C, almeno fino a qualche tempo fa.
Ora comunque abbiamo anche OpenCl su mac/linux e direct compute su windows per sfruttare le GPU.
Solo che uno SPE non è una VGA.
Gli stream processor sono comodissimi per alcune cose, ma mancano della flessibilità di uno SPE... non a caso l'idea di usare gli SPE come pixel shader è fallita miseramente (=troppo poco prestanti) mentre come vertex shader (dove c'è bisogno di maggior flessibilità) sono ottimi.
Tutto stà a quel che gli devi far fare... gli SPE non sono da usarsi come chip grafici ma come processori vettoriali ad alta velocità.
Laddove uno shader è limitato dalle dimensioni del codice che può eseguire e dalla legnosità imposta dalla sua struttura "massicciamente parallela" uno SPE è molto più flessibile... poi è ovvio che non sia flessibile quanto una CPU, ma è sicuramente la via di mezzo più pratica...
Per capirci: devi fare un playback h264 ? Carichi il codice che si occupa della decodifica in uno SPE e lui effettua tutto il lavoro pesante da solo... questo uno stream processor non può farlo.
Il vantaggio è che non devi fare (come si "usa ora") un componente integrato per la decodifica h264 che rimane "idle" quando non lo usi... quando ti serve inizializzi uno SPE ed hai quella funzione... quando non ti serve più lo resetti e torna disponibile.
Non a caso Sony per la PS3 (dove comunque è limitato a... beh, le cose che si fanno sulla PS3) ha fatto delle librerie che sevono ad automatizzare questi lavori di commissionamento e decommissionamento degli SPE... se non ci vuoi avere a che fare ok, "programmi" gli SPE per le funzioni che ti servono e li usi come "black box".
SuperMario=ITA= ha scritto:
Si ma spegnere il 90% dei circuiti di una scheda è un conto, spegnerli su un chip è un altro.
Alla fine queste gpu devono fare cagate come aero..metterle nel processore nn costa nemmeno tanto, sicuramente meno di spegnere parti di una scheda
Ma anche no.
Elettronicamente non ci vuole un cavolo per spegnere quel che non ti serve, basta smettere di alimentare i "pezzi" inutili (ed i chip hanno mediamente una dozzina di gate d'alimentazione, quindi separarli in "primari" e "secondari" non è difficile).
PS: Per la cronaca... non so nVidia ma su AMD (quindi parliamo proprio di quelle applicazioncine di calcolo distribuito) se il codice è di 200 comandi il tempo d'esecuzione per un "blocco" di stream è di 200 istruzioni... e questo perché gli stream processor devono valutare TUTTE le istruzioni del codice, anche quelle che il singolo SP non esegue effettivamente, perché il "blocco" procede linearmente (in modo "massicciamente" SIMD). Pensate come "rende bene" su un codice pieno di salti
