
23 Gennaio 2015
Torniamo oggi con l’appuntamento della Rubrica dei Lettori è una sezione del blog che permette a tutti gli utenti di porre i propri dubbi, quesiti, prove, test e pensieri ai fan del mondo Mobile. Dopo il focus sulle CPU 64-bit e Android: un'analisi dei Pro e Contro, l'amico Alessandro Scarozza ci ha inviato un altro interessante approfondimento sul mondo delle CPU e GPU all'interno del mercato mobile. Un focus che cerca di chiarire alcuni aspetti che magari a molti potrebbero non essere noti e che permettono di conoscere meglio le differenze tra i vari SoC in circolazione.
CPU e GPU, cosa sono e come poter confrontare le varie proposte nel mondo mobile?
Per prima cosa è necessario conoscere la differenza tra CPU e GPU per poter valutare un processore e di conseguenza uno smartphone o un tablet rispetto ad un altro.
La CPU: Central Processing Unit , ha il compito di leggere le istruzioni dalle varie memorie, eseguirle e scrivere l’esito sempre nelle memorie. La parola “Central” indica come la CPu abbia anche il compito di coordinare tutte le altre unità di calcolo secondarie come ad esempio la GPU.
La GPU: Graphics Processing Unit ha il compito di trasformare i dati delle applicazioni che sono di natura molto diversa in un flusso video sempre uguale compatibile con il monitor. In poche parole un videogame 3D, un film o una qualunque app vengono tutte trasformate in una sequenza di “immagini” inviate al monitor, questo lavoro lo esegue la GPU.
Detto questo verrebbe naturale pensare: Non potrebbe fare tutto la CPU? In teoria si, ma la natura estremamente diversa dei compiti ha fatto propendere per la realizzazione di 2 componenti separate. La CPU svolge compiti tendenzialmente sequenziali, per eseguire l’istruzione 2 è necessario sapere l’esito dell’istruzione 1; la GPU al contrario ha compiti tendenzialmente paralleli, calcolare il colore di un pixel non richiede di conoscere i colori degli altri pixel. Per fare un esempio lo Snapdragon 800 ha 4 unità per parallelizzare i calcoli lato CPU e ben 128 lato GPU.
In tutto questo cosa centra il SOC?
Per SOC si intende System On Chip, in pratica invece di realizzare fisicamente i componenti in tanti piccoli chip, per motivi di efficienza energetica, si realizza un unico chip che contiene tutto. Quindi avremo tanti componenti a livello logico ma un unico componente a livello fisico.
Per le CPU quali parametri NON devo guardare quando voglio confrontarle?
I 2 parametri che vengono mostrati più spesso e che sono più inutili sono la frequenza massima supportata e il numero di core. In origine ad ogni ciclo di clock corrispondeva un operazione, quindi più cicli venivano effettuati al secondo e meglio era. Successivamente gli sviluppi hanno permesso di far effettuare più operazioni nello stesso ciclo di clock e da quel momento la frequenza operativa non è stata più un parametro attendibile.
L’altro fattore inutile sono il numero di core per 2 motivi. Per poter utilizzare i vari core abbiamo bisogno di un numero di thread paralleli almeno uguale al numero di core, questo significa che app e sistema operativo devono essere scritte utilizzando il maggior numero di thread possibile, al giorno d’oggi da 4 core in su non vi è alcuna differenza sia sul mercato mobile che addirittura desktop, al contrario nel segmento server più core ci sono meglio è. Inoltre i core, per ottimizzare i consumi, potrebbero non essere tutti della stessa architettura, quindi al massimo andrebbero considerati nel conteggio solamente i core ad alte performance. Al contrario i vendor tendono ad avere la brutta abitudine di contarli tutti per pompare i numeri.
Per la CPU quali parametri devo guardare per confrontarle?
Ci sono moltissimi parametri da controllare ma il più importante è l’architettura. Per il mondo desktop le varie architetture sono una l'evoluzione dell'altra, con piccole varianti per settori specifici, per il mondo mobile ci sono varie architetture visto che il mondo mobile è molto più vario di quello desktop, ci sono quindi architetture pensate per massimizzare le performance ed altre per minimizzare il consumo, altre infine sono intermedie. Di seguito trovate la lista delle principali architetture ordinate per potenza, con indicato lo scopo dell’architettura.
Il problema è che ARM permette di creare architetture custom ad alcuni produttori, tra cui Qualcom, Apple e Nvidia; per fortuna è sufficiente andare a vedere l’architettura presa come base. Per esempio l’architettura Krait di Qualcom è una derivazione dell’architettura A15, è quindi un architettura votata alle performance.
Per le GPU come funziona?
Da una parte la situazione è ancora piu complessa: non esiste uno standard architetturale su cui i vari produttori basano le proprie GPU, non è possibile in nessun modo fare un confronto leggendo solamente le specifiche tecniche hardware. Dall’altra esiste un metro di misura universale ed attendibile: i FLOPS (FLoating point Operations Per Second). Tutte le operazioni di rendering grafico sono quasi esclusivamente operazioni in “virgola mobile”, quindi questo valore è sufficiente per indicare la potenza della GPU. Per fare due esempi, Nvidia Tegra K1 arriva a 364.79 GFLOPS mentre Adreno 430 arriva a 324/388.8 a seconda della configurazione.
Riassumendo, come si fa a fare un confronto veloce?
La cosa più ovvia è guardare i benchmark anche se spesso sono taroccati. I produttori spesso quando rilevano una specifica app in esecuzione aumentano la frequenza operativa di CPU e GPU anche se questo comporta un aumento del consumo della batteria. Questa pratica piuttosto scorretta permette di guadagnare fino ad un 5% di punteggio al massimo, ci è comunque utile per effettuare un confronto.
Un altro modo è guardare solamente i gigaFLOPS della GPU in quanto ad una GPU potente affiancano sempre una CPU altrettanto potente. | Qui alcuni dati.
Ringraziamo Alessandro per il suo contributo e la spiegazione che speriamo possa essere utile a molti. Ora non resta che attendere l'evoluzione del mercato a 64-bit e vedere fino a dove si spingeranno i produttori nell'aumentare il numero di core, non sempre realmente utili.
Commenti
la CPU non mi fa andare la fotocamera e la torcia potete aiutarmi per favore grazie
La CPU non mi fa andare la fotocamera e la torcia potete aiutarmi per favore grazie
djciamo che uusare solo 2 core all posto di 4 per esempio sul mio s3 la differenza in termiji di batteria si sente e non ne risentono in un uso normale le prestazioni
g2 krait 400
note 4 krait 450
I super graficoni dei Keynote quando dicono potenza aumentata di X volte sulla GPU sono proprio i Gflops
Basta farlo :D
Ok grazie non sapevo i dettagli di questi processori
AMD64 (x86-64) o Moorefield, a seconda di cosa intendi per architettura
TI LAMENTI DELLA 305 E 306 CONFRONTA LE GPU DELLO SNAP 600 E 610
Intel Atom Z3580 sullo zenfone 2, volendo potresti installarci windows 3.1 o dos
Ma i nuovi zenphone di Asus con processor Intel che architettura hanno?
non puoi paragonare AMD64 a AArch64. La prima è una ISA completa totamente compatibile con le ISA x86 a 32bit precedenti, quindi è unità autonoma a se stante. La seconda è una sub-architettura di codifica della ISA ArmV8-A, quindi 'solamente' parte di essa. :)
infatti nel commento sopra ho detto che è bene distinguere i casi in cui per 'architettura' si intende una ISA da quelli in cui si intende una microarchitettura :)
es:
ARMv8-A-> ISA
AArch64->sub-architettura
Cortex A57-> microarchitettura
AMD64->ISA
Haswell->microarchitettura
Ma ad esempio l'LG G2 e il galaxy note 4 che architettura hanno?
si e no. Tegra K1 è sia il nome del SoC sia il nome della GPU che è una derivata di Kepler
Bell'articolo e molto semplice. Solo una piccola precisazione ma anche conferma : quando paragoni Tegra K1 ad Adreno 430 paragoni un SoC con una GPU (la GPU del Tegra dovrebbe essere una GeForce Kepler qualcosa)?
Intel sta cercando di entrare ma secondo me sta facendo l'errore mostruoso di mantenere l'architettura x86. per capirci su un atom per tablet del 2015 si potrebbe installare windows 3.1 o dos; secondo me dovrebbe proprio creare un architettura da 0 tagliando la compatibilità con il mondo desktop.
Esiste anche VIA, con l'architettura NANO, ma la cosa è piu teorica che pratica :)
esiste solo ARM sul mobile?
l'errore stava nel fatto che stavo confrontando un'architettura ISA con una microarchitettura. :)
:)
xan sei tu il mitico Alessandro che ci diletta con queste fantastiche rubriche XD
Tranquillo, affermare "che AMD64 è l'unica architettura delle cpu desktop" è tecnicamente corretto ;)
per evitare confusioni è bene distinguere i casi in cui per 'architettura' si intende una ISA da quelli in cui si intende una microarchitettura
Bell'articolo, semplice ed interessante!
Complimenti all'autore.
Per il lato GPU ho già visto il link, mi interessava quello CPU. Seguirò il tuo consiglio e cercherò dei benchmark.
Vi ringrazio di aver accolta la mia richiesta, non ne potevo più dei fan android che dicevano" il tuo iphone ha solo 2 core" e fan apple a dire" il tuo android ha bisogno di un reattore nucleare per andare bene, il mio iPhone va anche a vapore"
grande rubrica. come hdblog nessuno, poco da dire...
beh, le gpu le trovi sul link "qui alcuni dati". le cpu è semplice, il soc dello zenfone 2 equivale ad uno snap 805 grosso modo. sono decisamente potenti in generale gli atom (anche perchè la cpu è la stessa delle versioni che fanno girare windows...).
difficile dare una risposta: lato CPU o GPU? ti interessa a parità di core e frequenza o a chip finale? la cosa migliore è trovare dei benchmark
Questa è la rubrica dei lettori che voglio leggere :)
Una curiosita: ma gli Atom? Vorrei comprare lo Zenfone 2 ma vorrei sapere a cosa sono paragonabili. Complimenti per la guida, semplice e chiara :D
grande sito.
modificato l'articolo, grazie per la segnalazione
Lo snap 810 è un piccola rivoluzione, praticamente non ha niente in comune con i vecchi snap comunque gli octacore big little vengono gestiti nativamente dal kernel 3.10 ergo non ci saranno problemi
in effetti un piccolo errore l'ho trovato, cerco di sistemarlo mantenendo semplice la cosa
Anche il Denver che sulla carta è il più performante (7 wide contro il 6wide del cyclone e 3 wide del a57)
quello che intendevo dire è che tutte le cpu desktop sono implementazioni di AMD64, al contrario anche soltanto per i recenti arm a 64 bit gia ne esistono 3 di architetture: cortex-A57, cortex-A53 e cyclone di apple.
Ciao, se non ho capito male sei l'autore, volevo farti notare che il terzultimo paragrafo mi sembra dare adito ad un possibile fraintendimento.
Affermi che AMD64 è l'unica architettura delle cpu desktop, mentre nel mondo mobile dici che sono varie, e elenchi i core arm reference e custom.
AMD64 (o x86-64) è un set di istruzioni (versione a 64bit del precedente x86), che trova il suo equivalente in AArch64 nel mondo mobile. Entrambi sono implementanti poi in diverse microarchitetture di core di cpu diverse tra loro.
Quindi come poi AArch64 viene implementanto nei profondamente diversi tra loro A53 e A57, lo stesso accade sul desktop, dove abbiamo viene implementanto nelle architetture Haswell o/o Silvermont di Intel (tra le innumerevoli altre senza dmenticare amd....).
A meno che non volessi intendere che su desktop ormai la maggioranza si basa sull'ISA AMD64, mentre su mobile solo ora si sta diffondendo AArch64 e con AArhc32 convivono e convivranno per un po' ancora, ulteriormente ramificando le varie microarchitetture arm.
Non so se sei d'accordo, capisco comunque che la complessità dell'argomento male si sposa a un articolo introduttivo.
Ottima spiegazione ;)
pagherei per avere un grafico prestazionale di tutte le architetture con tutte le CPU con un solo core attivo e tutte a 1.0 Ghz
Tra un pò mettono anche te tra i moderatori caro Simo..!
an ok! manderò sicuramente una mail a ARM per esplicare la mia perplessità ;-)
sul sito ARM a volte ci sono confronti a parità di clock quanto va uno e/o quanto va l'altro, riassumerle per fare una piccola tabellina di confronto sarebbe una genialata, un cortex A5 a 2ghz è pari a un A15 a 0.8ghz ad es (ho scritto valori totalmente inventati)
quello che dici è corretto ma le categorie non le ho fatte io ma ARM. l'A15 è stato concepito per massimizzare le performance, l'A17 è concepito per bilanciare performance e consumi. quello che ho scritto tra parentesi è la categoria ARM non una mia interpretazione
assolutamente vero!
PS.
no Simo anche tu col "risoluto", ormai è entrato nel gergo ma è "piu itagliano" dire "molto risoluti"
infatti è una 305 con supporto ai 64 bit e nulla di più
appunto, che ci siano anche 20 anni non importa, fatto sta che sono simili, o meglio, prestazionalmente l'A17 è più vicino a un A15 che a un A9 o A7
l'A15 è pensato per avere le massime prestazioni. l'A17 è pensato come intermedio. Sono molto simili prestazionalmente perchè tra i 2 ci sono 3 o 4 anni di differenza
ottimo articolo!
anche se avrei messo qualche distinzione maggiore tra le varie architetture, ad es. un confronto prestazionale dall' A5 all A57 a parità di clock.
PS.
l'A12 non esiste più, arm ha confermato che A12 e A17 sono esattamente la stessa cosa, A17 prestazionalmente è quasi (QUASI) un A15, lo avrei distinto con un'altra categoria
I valori dei Gflops sono utilissimi, così uno che crede ancora alle percentuali che da Apple ad ogni conferenza sui suoi nuovi processori capisce che tutto quello che Apple dice è solo un Gigaflop (xD)
Questo è l'articolo dell'anno! Complimenti :)