La GPU di Tegra K1: un SMX, più o meno

Nvidia ci ha permesso di dare uno sguardo più approfondito al SoC Tegra K1 presso il suo quartier generale a Santa Clara. Il cambiamento più importante riguarda la GPU: addio a pixel e vertex shader programmabili per fare spazio a un'architettura unificata Kepler, derivata direttamente dalle schede GeForce.

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

La GPU di Tegra K1: un SMX, più o meno

Tegra K1 ovviamente avrà delle limitazioni in ciò che può gestire fluidamente. È sì basato sull'architettura Kepler, ma l'implementazione specifica è stata centellinata per rientrare in un budget energetico limitato. Essenzialmente abbiamo a che fare con uno Streaming Multiprocessor all'interno di un singolo Graphics Processing Cluster. L'SMX contiene 192 CUDA Core. Anziché 16 unità texture, che è ciò che trovate in ambito desktop, Nvidia ha ridotto il numero presente in Tegra K1 a otto. E mentre ogni ROP gestisce otto pixel per clock in GK104, Tegra K1 abbassa tale numero a quattro.

Anche se Nvidia non ci ha dato un numero specifico riguardo la frequenza del suo core grafico, una delle slide indica 365 GFLOPs di picco. Dati i 192 shader, possiamo dedurre una frequenza di circa 950 MHz.

Alcuni degli altri cambiamenti necessari per consentire l'implementazione di Kepler in Tegra K1 sono più difficili da illustrare. In breve, se date uno sguardo al diagramma a blocchi della GPU, vedete che la parte in grigio che rappresenta i componenti che consentono alle varie parti di comunicare l'una con l'altra, è stata rimpiazzata per avere maggiore efficienza. Anche se Nvidia ha progettato l'architettura di prossima generazione Maxwell con in mente i dispositivi mobili, l'azienda continuerà a usare distintamente differenti parti per realizzare la soluzione mobile e scalare la GPU, bilanciando prestazioni e consumi.

Nonostante i vari interventi, Nvidia ha puntualizzato di non aver ridotto determinate altre caratteristiche dell'architettura. Ad esempio la tessellation è supportata tramite DirectX 11 e OpenGL, e lo stesso PolyMorph engine di seconda generazione che ritroviamo nelle GPU desktop è ancora parte dell'SMX. Non è la prima volta che sentiamo parlare di tessellation DX11 in hardware - lo Snapdragon 805 di Qualcomm con Adreno 420 è equipaggiato con supporto hull, domain e geometry shader, e così anche i core Vega di Vivante. Nvidia è fiduciosa che la sua implementazione sia la migliore, ma a oggi non c'è modo di provare le dichiarazioni dell'azienda.

Il path rendering accelerato dalla GPU è un'altra tecnologia che Nvidia ha sperimentato prima di tutto con le sue GPU più grandi - nel 2011 - e ora sta provando a spingere nel settore mobile. In breve, il path rendering è chiamato in causa dalla grafica 2D indipendente dalla risoluzione - contenuti come PostScript, PDF, font TrueType, Flash, Silverlight, HTML5 Canvas, insieme alle API Direct2D e OpenVG. Si tratta storicamente di un'operazione gestita dalla CPU. Gli artefatti sono incredibilmente chiari: quando si esegue il pinch to zoom di una pagina web usando un iPad di prima generazione, si possono contare i secondi impiegati dal SoC A4 per ri-rasterizzare la scena. Durante tale periodo di tempo, il testo rimane offuscato. Un iPad mini con chip A5, per esempio, gestisce meglio tale operazione; i font diventano nitidi quasi istantaneamente. Tuttavia, fino a quando si mantengono le dita sullo schermo l'effetto blur persiste. Nvidia afferma che accelerare il path rendering pone fine al problema, conferendo allo stesso tempo un beneficio energetico collegato al fatto che la CPU non interviene.

Effetto blur dovuto al pinch to zoom

Forse sensibile al fatto che lo Snapdragon 805 di Qualcomm ha un'interfaccia di memoria che supporta memoria LPDDR3-1600 (128-bit diviso otto, moltiplicati per 1600 MT/s equivalgono a 25,6 GB/s), Nvidia ci ha assicurato che 17 GB/s ottenuti con un bus a 64 bit popolato di memoria 2133 MT/s sono più che sufficienti. Il bandwidth è certamente un dato importante, ma Nvidia conta anche su alcune caratteristiche dell'architettura di Kepler.

Per esempio la cache L2 da 128 KB, che allevia naturalmente la domanda sulla DRAM in situazioni dove riferimenti a dati già usati si ripropongono ad alta velocità. E poiché la cache è stata unificata, qualunque unità on chip può usarla. Un numero di tecnologie di "rifiuto" e compressione, inoltre, minimizzano il traffico di memoria, incluse Z-cull, early Z e Z compression on chip, la compressione texture (anche DXT, ETC e ASTC) e la compressione colore.

Clicca per ingrandire

Alcune di queste capacità si estendono persino oltre i carichi di lavoro 3D all'interno di interfacce utente stratificate, dove risparmiare bandwidth permette di sostenere maggiori risoluzioni - e forse questo spiega come mai la maggior parte dei dispositivi Tegra 4 che abbiamo visto oggi usa risoluzioni ridotte. Una novità di Tegra K1 è la compressione delta-encoded, che usa confronti tra blocchi di pixel per ridurre l'impronta dei dati colore. Nvidia è inoltre in grado di risparmiare bandwidth sulle interfacce utente stratificate con molta trasparenza - la GPU riconosce le aree chiare e salta totalmente quel tipo di lavoro. Avremo una migliore comprensione di come il sottosistema di memoria di Tegra impatta sulle prestazioni quando potremo testare dell'hardware.

Tegra K1 eredita inoltre il supporto dell'architettura Kepler per l'heterogeneous computing. Finora gli ultimi progetti PowerVR, Mali e Adreno hanno tutti facilitato una combinazione di OpenCL e/o Renderscript, facendo emergere la vecchia architettura mobile di Nvidia come la meno flessibile. Con Kepler cambia tutto dato che Nvidia è in grado di abilitare CUDA, OpenCL, Renderscript, Rootbeer (per Java) e un numero di altri linguaggi orientati al calcolo generico.