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.

11 comentarios:

  1. excúsame la pregunta pero no es GCN mucho mejor tema de discusión que Kepler? Ademas Pitcairn es 30% mas eficiente que Kepler vs su consumo(o mas bien tiene un rendimiento relativo mas o menos igual pero con un rendimiento absoluto en GPGPU mayor)Creo que un mejor tema de discusión seria porque Tahiti con sus mayores características(tanto ancho de banda como unidades de procesamiento) no es capaz de distanciarse de las demás GPUs. Pero bueno...

    ResponderEliminar
  2. Es sencillo. AMD ha elegido un diseño enfocado a computación genera
    l para GCN (HD7000) y con un buen nivel de prestación gráfica.
    nVidia por el contrario, ha diseñado kepler para gráficoa descuidando la faceta GPGPU. Es simplemente una elección de diseño.
    AMD ha destinado quizás 1000 M transistores a mejorar el rendimiento de cálculo FP64 y a implementar scheduling dinámico por hardware, además de diseñar cachés L1 separadas.
    Saludos,
    Carlos Yus Valero.

    ResponderEliminar
    Respuestas
    1. Justo por eso =p. Me pareció raro que en un Blog mas orientado a CPUs se hable de un GPU que solo sirve para juegos. Y por cierto en cuanto a GCN me refería a que:

      Tahiti es 60% mas grande que pitcairn,Tiene 60% mas unidades de ejecución, y cuanto? 60% mas ancho de banda? y aun asi apenas y logra llegar al 30% de rendimiento sobre este(un poco mas ya que en los reviews se re-usan los números de los primeros. Aun asi Tahiti debería de rendir mas.

      Fuera de eso un articulo sobre la futura fusión entre GPU y CPU seria bien recibido :)

      Eliminar
    2. A thaiti le faltan ROPs.
      En juegos como metro o los crysis (acá se utiliza mucho postprocesado y los shaders salen a relucir), tahiti gana a la GTX680 (probablemente los ROPs aca importen poco). Se puede notar tambien que la 7870 y 7950 se distancian bastante, quizás cerca del rendimiento esperado segun la cantidad de shaders.
      En juegos como farcry 2, o el mismo 3dmark11 sin embargo, la GTX680 gana a la 7970, pero en este caso los shaders no se están utilizando a lo que podrían, para mi una clara limitación de ROPs, es fácil ver como también la 7870 y 7970 rinden prácticamente lo mismo, incluso la 7870 aveces gana en ciertos juegos, debido a tener una velocidad de reloj mayor en el nucleo.
      No sé pero para mi AMD hizo un mal balance entre ROPs y shaders en la serie 79xx, y cómo dice el amigo la 7870 tiene como un 25%-30% (se ve claro en el review de Techpowerup) más de eficiencia que la GTX680, quizá GCN sea una arquitectura más eficiente que Kepler, pero aún no podemos decirlo ya que falta todo el resto de vgas de la famila 6xx.

      Eliminar
    3. Me corrijo quice decir 7950 y no 7970
      ..ROPs, es fácil ver como también la 7870 y 7950 rinden prácticamente lo mismo..

      Eliminar
  3. Ex.,

    Los cores GCN de AMD están muy enfocados para computación y tienen un altísimo rendimiento en FPU 64 bit. En gráficos tienen un buen rendimiento pero nada más.

    nVidia ha diseñado la versión de Kepler integrada en la GTX 680 para proceso gráfico, nada más. Sin duda habrá un Big Kepler sobre los 500 y mucho mm2 con gran potencia FPU 64 bit en pocos meses.

    En cuanto a AMD, el diseño de los nuevos SPs de GCN admite cargas de proceso diversas con buena eficiencia, por ello en gráficos (un proceso trivial para una GPU de ese nivel) no da su pico de potencia.

    Saludos,

    Carlos Yus Valero.

    ResponderEliminar
  4. Anónimo,

    Me remito a lo anterior.

    Tienes razón en parte en cuanto a las ROPs. Son unidades de dedicación específica a gráficos (rasterización) y AMD ha descuidado este aspecto para integrar mayor número de SIMD SPs.

    El resultado prestacional resulta pues natural.

    Saludos,

    Carlos Yus Valero.

    ResponderEliminar
    Respuestas
    1. A lo mejor sea cierto que a Tahiti le falten ROPs, pero viendo lo caro que esta siendo el proceso de 28nm de TSMC parece que le saldría mas barato a AMD aumentar el performance via frecuencia que agregándole mas ROPs. Ademas lo que dije es porque se le hace un articulo a Kepler cuando desde mi punto de vista Tahiti es mas balanceada e interesante. Ya veremos que pasa con el GK110 y cuando saldrá, como pintan las cosas ira a competir contra la serie 8000...

      Eliminar
  5. Ex.,

    Tahiti no es más balanceada, simplemente pone el énfasis en computación mientras que Kepler en la GTX680 lo pone el el proceso gráfico DX 11.1.

    Son dos enfoques igualmente válidos.

    Saludos,

    Carlos Yus Valero.

    ResponderEliminar
    Respuestas
    1. Oiga don Carlos, yo pienso que si sería una magnífica idea hacer una revisión profunda de GCN y una comparativa con keppler.

      Eliminar
  6. Davidcianorris,

    Sin duda sería interesante, pero son arquitecturas divergentes en diseño.

    Big Kepler va a ser un paralelismo a GCN a la manera de nVidia, es decir, a lo grande. Un chip enorme y de también enormes prestaciones en computación y no orientado en absoluto a juegos.

    Saludos,

    Carlos Yus Valero.

    ResponderEliminar