jueves, 2 de febrero de 2017

nVidia Kepler 28 nm – LowLevelHardware

Por fin ha llegado la nueva serie 600 de nVidia, su primer integrante es la GTX680 fabricada en el nodo de 28 nm en TSMC. En este conciso artículo esbozaré los importantes cambios arquitecturales respecto a la anterior generación 500 Fermi de 40 nm y la motivación tras ellos.

Kepler_28nm_GTX680El die del procesador gráfico Kepler.

El nuevo proceso de fabricación de 28 nm ha proporcionado grandes avances para la industria de semiconductores después de los terribles problemas y largos retrasos de TSMC en el nodo de 40 nm.

Cambios de micro arquitectura en Kepler

nVidia deseaba para Kepler un masivo incremento en prestaciones gráficas, de hecho, en cada punto del diseño se aprecia un decidido énfasis en el aspecto gráfico dejando claramente descuidada la parte GPGPU.

Kepler01

Se ha conseguido un aumento notable de la densidad de transistores y con ello una apreciable reducción de la superficie del chip: nVidia ha integrado 3500 millones de transistores en tan solo 294 mm2. Recordad que Fermi (GTX 580) era un chip de más de 500 mm2, muy caro de producir.

La GTX680 es un avance significativo para nVidia en el aspecto gráfico, integra 1536 SPs (stream processors), un aumento espectacular (3X) desde los 512 SPs de la GTX580 Fermi.

Todo ha sido posible por el abandono del shader clock, que era el doble de la frecuencia principal y aumentaba mucho el consumo del chip y hacía necesario el uso de transistores especiales para los SPs ya que funcionaban sobre los 1.5 GHz.

Kepler02

Sin duda en unos meses nVidia sacará a la luz otra revisión de Kepler, probablemente sobre los 500 - 600 mm2, enfocada a proceso general para sus líneas de computación Tesla y Quadro y para la gama más alta de sobremesa.

Será el llamado Big Kepler y conllevará un aumento en el ancho del bus GDDR5 a 384 o incluso 512 bits y sobretodo un incremento notable en la tasa de cálculo FP64 (que en Kepler ha sido reducida al 33% de la de Fermi por SP).

Además Kepler integra un modo “Turbo” llamado Boost Clock. Si la disipación térmica y la temperatura lo permiten, Kepler aumenta su frecuencia desde la nominal hasta alrededor de los 1150 MHz, según las cargas de trabajo.

El SMX, sustituto del SM

En Kepler nVidia llama SMX a la unidad funcional principal del diseño, en el SMX reside todo el poder de cálculo del chip.

El SMX es el heredero del SM de las GTX 480 y GTX 580. nVidia ha duplicado los recursos de cada SM para producir un SMX.

Kepler04

En un SMX reside un gran número de unidades de todo tipo:

Desde la segunda revisión del PolyMorph engine (con un throughput doble respecto a la generación anterior),

Pasando por la caché de instrucciones,

Los 4 Warp Schedulers,

8 unidades Dispatch (Dispatch Units),

El Register File (RF) duplicado a 64K entradas de 32 bit,

192 CUDA Cores (SPs),

32 unidades Load Store (LSUs)

16 SFUs para interpolación,

16 SFUs para funciones especiales,

16 TUs (unidades de textura),

Por último 8 CUDA FP64 cores.

Kepler GTX 680

En esta implementación nVidia integra lo siguiente:

Kepler03

4 GPCs que integran cada uno 2 SMX junto con un Raster Engine encargado de la rasterización.

Kepler05

También integra la caché L2 y las cuatro controladoras GDDR5 de 64 bit a 6 GHz.

En Kepler nVidia ha decidido simplificar absolutamente sus schedulers respecto a los de Fermi. En Fermi se realizaba scheduling por hardware dinámicamente, en cambio en Kepler nVidia ha movido el scheduling al driver gráfico, es decir, se ejecuta por software en tiempo real en el procesador.

Este hecho ha permitido, por un lado reducir mucho la complejidad del diseño y por otro reducir el consumo, disipación térmica y el área del chip.

GPU Boost

Podemos decir que en esta primera implementación “limitada” de GPU Boost su efecto es limitado, nVidia lo cifra en un 5% de incremento de velocidad en juegos (FPS).

Mientras haya margen de consumo y temperatura disponible, Kepler puede aumentar su frecuencia hasta los 1150 MHz en pico (sobre un 15 %). Siempre dependiendo de la carga de trabajo.

La frecuencia media en modo Boost llega a los 1058 MHz y se incrementa desde los 1006 MHz en escalones de 13 MHz. En la práctica es crítico mantener bajas temperaturas para que GPU Boost sea efectivo, a temperaturas >70ºC la GPU se ve obligada a ir reduciendo paulatinamente la frecuencia y el voltaje para “evitar sustos”.

Conclusiones

Kepler (GTX 680) es más rápido en juegos (en general) que AMD GCN (HD7900). AMD ha diseñado una arquitectura de carácter general, excelente en computación FP (GPGPU, OpenCL) y muy buena en proceso gráfico (juegos).

Por su parte nVidia ha optado por poner énfasis en la parte gráfica y ha diseñado Kepler para el gamer que nunca o raramente usará OpenCL o programas de coproceso GPGPU.

Hoy por hoy Kepler es más eficiente que AMD GCN en juegos y es la elección óptima para este uso. En proceso general – computación GPU, en cambio, AMD GCN es infinitamente superior.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

Si tenéis dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima celeridad y claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.