Articulo de referencia

Kepler (microarquitectura)

[[GeForce 700 series]]"},"products-hedt1":{"wt":"[[Quadro|Quadro K]]"},"products-server1":{"wt":"[[Nvidia Tesla|Tesla K]]\n\n"},"directx-version":{"wt":"[[DirectX#DirectX 12 Ult...

Retrato de Johannes Kepler, epónimo de la arquitectura.

Kepler es el nombre en clave de una microarquitectura de GPU desarrollada por Nvidia , presentada por primera vez en el mercado en abril de 2012, [ 1 ] como sucesora de la microarquitectura Fermi . Kepler fue la primera microarquitectura de Nvidia en centrarse en la eficiencia energética . La mayoría de las GPU de las series GeForce 600 , GeForce 700 y algunas de las series GeForce 800M se basaron en Kepler, todas fabricadas en 28 nm. Kepler se utilizó en el GK20A, el componente de GPU del SoC Tegra K1 , y en las series Quadro Kxxx, Quadro NVS 510 y los módulos de computación Tesla . 

A Kepler le siguió la microarquitectura Maxwell , que se utilizó junto con Maxwell en las series GeForce 700 y GeForce 800M .

La arquitectura recibe su nombre de Johannes Kepler , matemático alemán y figura clave de la Revolución Científica del siglo XVII .

Descripción general

Imagen del chip de una GPU GK110 A1, que se encuentra dentro de las tarjetas GeForce GTX Titan.

El objetivo de la arquitectura anterior de Nvidia era un diseño centrado en aumentar el rendimiento en computación y teselación. Con la arquitectura Kepler, Nvidia centró su atención en la eficiencia, la programabilidad y el rendimiento. [ 2 ] [ 3 ] El objetivo de eficiencia se logró mediante el uso de un reloj de GPU unificado, una programación estática simplificada de instrucciones y un mayor énfasis en el rendimiento por vatio. [ 4 ] Al abandonar el reloj de sombreado que se encontraba en sus diseños de GPU anteriores, se aumenta la eficiencia, aunque requiere núcleos adicionales para lograr niveles de rendimiento más altos. Esto no solo se debe a que los núcleos son más eficientes energéticamente (dos núcleos Kepler usan el 90 % de la energía de un núcleo Fermi, según las cifras de Nvidia), sino también a que el cambio a un esquema de reloj de GPU unificado proporciona una reducción del 50 % en el consumo de energía en esa área. [ 5 ]

El objetivo de programabilidad se logró con Hyper-Q de Kepler, el paralelismo dinámico y múltiples nuevas funcionalidades de Compute Capabilities 3.x. Con ello, se pudo lograr una mayor utilización de la GPU y una gestión de código simplificada con las GPU GK, lo que permitió una mayor flexibilidad en la programación para las GPU Kepler. [ 6 ]

Finalmente, con el objetivo de mejorar el rendimiento, los recursos de ejecución adicionales (más núcleos CUDA, registros y caché) y la capacidad de Kepler para alcanzar una velocidad de reloj de memoria de 7 GHz aumentan el rendimiento de Kepler en comparación con las GPU Nvidia anteriores. [ 5 ] [ 7 ]

Características

La GPU de la serie GK incorpora características tanto de la generación Fermi (anterior) como de la más reciente Kepler. Los modelos basados ​​en Kepler añaden las siguientes características estándar:

Multiprocesador de transmisión de próxima generación (SMX)

Placa base y chip de la GTX 780: una revisión posterior de Kepler con más similitudes con la GK110 que con la 680 inicial.

Kepler emplea una nueva arquitectura de multiprocesador de flujo llamada SMX. El número de núcleos de ejecución CUDA se incrementó de 32 por cada uno de los 16 SM a 192 por cada uno de los 8 SMX; el archivo de registros solo se duplicó por SMX a 65.536 x 32 bits para una relación general menor; entre esto y otras concesiones, a pesar del aumento general de 3x en los núcleos CUDA y el aumento del reloj (en el 680 frente al Fermi 580), las ganancias de rendimiento reales en la mayoría de las operaciones fueron muy inferiores a 3x. Se utilizan núcleos CUDA FP64 dedicados en lugar de tratar dos núcleos FP32 como una sola unidad como se hacía anteriormente, y se incluyeron muy pocos en los modelos de consumo, lo que resultó en una velocidad de cálculo FP64 de 1/24 en comparación con FP32. [ 9 ]

En los modelos HPC, el GK110/210, el número de SMX se incrementó a 13-15 según el producto, y se incluyeron más núcleos FP64 para elevar la relación de cómputo a 1/3 de FP32. En el GK110, el límite de registros por hilo se cuadruplicó con respecto a Fermi a 255, pero esto aún permite que solo un hilo que utilice la mitad de los registros se paralelice a 1/4 de cada SMX. El GK210 (lanzado al mismo tiempo) aumentó el límite de registros a 512 para mejorar el rendimiento en situaciones de alta presión de registros como esta. La caché de texturas, que los programadores ya habían estado utilizando para el cómputo como un búfer de solo lectura en generaciones anteriores, se incrementó en tamaño y la ruta de datos se optimizó para un rendimiento más rápido al utilizar este método. Todos los niveles de memoria, incluido el archivo de registros, también son ECC de un bit.

Otra característica destacable es que, mientras que las GPU Fermi solo podían ser accedidas por un hilo de CPU a la vez, las GPU Kepler de HPC añadieron soporte para multihilo, de modo que los procesadores con un alto número de núcleos podían abrir 32 conexiones y saturar más fácilmente la capacidad de cómputo. [ 10 ]

Planificador de instrucciones simplificado

Se logró una reducción adicional del espacio del chip y un ahorro de energía al eliminar un bloque de hardware complejo que se encargaba de la prevención de riesgos de datos. [ 3 ] [ 5 ] [ 11 ] [ 12 ]

GPU Boost

GPU Boost es una nueva función que es aproximadamente análoga al turbo boosting de una CPU. La GPU siempre tiene garantizada una velocidad de reloj mínima, denominada "velocidad de reloj base". Esta velocidad de reloj se establece al nivel que asegurará que la GPU se mantenga dentro de las especificaciones TDP , incluso con cargas máximas. [ 3 ] Sin embargo, cuando las cargas son menores, hay margen para aumentar la velocidad de reloj sin exceder el TDP. En estos escenarios, GPU Boost aumentará gradualmente la velocidad de reloj en pasos, hasta que la GPU alcance un objetivo de potencia predefinido de 170 W por defecto (en la tarjeta 680). [ 5 ] Al adoptar este enfoque, la GPU aumentará o disminuirá su reloj dinámicamente, de modo que proporcione la cantidad máxima de velocidad posible sin exceder las especificaciones TDP.

El objetivo de potencia, así como el tamaño de los pasos de aumento de reloj que tomará la GPU, son ajustables a través de utilidades de terceros y proporcionan un medio para hacer overclocking a las tarjetas basadas en Kepler. [ 3 ]

Soporte para Microsoft Direct3D

Las GPU Nvidia Fermi y Kepler de la serie GeForce 600 son compatibles con la especificación Direct3D 11.0. Nvidia declaró originalmente que la arquitectura Kepler tiene compatibilidad total con DirectX 11.1, lo que incluye la ruta Direct3D 11.1. [ 13 ] Sin embargo, las siguientes características de Direct3D 11.1 de la "Interfaz de usuario moderna" no son compatibles: [ 14 ] [ 15 ]

  • Rasterización independiente del objetivo (solo renderizado 2D).
  • Rasterización 16xMSAA (solo renderizado 2D).
  • Modo de renderizado de línea ortogonal.
  • UAV (Vista de Acceso No Ordenado) en etapas sin sombreado de píxeles.

Según la definición de Microsoft, el nivel de características Direct3D 11_1 debe estar completo; de lo contrario, no se puede ejecutar la ruta Direct3D 11.1. [ 16 ] Las características Direct3D integradas de la arquitectura Kepler son las mismas que las de la arquitectura Fermi de la serie GeForce 400. [ 15 ]

Próximo soporte para Microsoft Direct3D

Las GPU Nvidia Kepler de la serie GeForce 600/700 son compatibles con el nivel de características 11_0 de Direct3D 12. [ 17 ]

Soporte de TXAA

Exclusivo de las GPU Kepler, TXAA es un nuevo método de suavizado de bordes de Nvidia diseñado para su implementación directa en motores de juegos. TXAA se basa en la técnica MSAA y filtros de resolución personalizados. Está diseñado para abordar un problema clave en los juegos conocido como parpadeo o aliasing temporal . TXAA lo resuelve suavizando la escena en movimiento, asegurando que cualquier escena del juego esté libre de aliasing y parpadeo. [ 3 ]

Instrucciones para barajar

El GK110 incorporó algunas instrucciones para mejorar aún más su rendimiento. Las nuevas instrucciones de mezcla permiten que los hilos dentro de un warp compartan datos entre sí mediante una instrucción que completa las operaciones normales de almacenamiento y carga que anteriormente requerían dos accesos a la memoria local en una sola instrucción, lo que hace que el proceso sea aproximadamente un 6 % más rápido que el uso del almacenamiento de datos local. También se mejoraron las operaciones atómicas, con un aumento de velocidad de 9 veces para algunas instrucciones y la adición de más operaciones atómicas de 64 bits, a saber, min, max, and, or y xor. [ 11 ]

Hiper-Q

Hyper-Q amplía las colas de trabajo del hardware GK110 de 1 a 32. Esto es importante porque tener una sola cola de trabajo implicaba que Fermi podía estar infrautilizado en ocasiones, ya que no había suficiente trabajo en esa cola para llenar todos los SM. Con 32 colas de trabajo, GK110 puede, en muchos escenarios, lograr una mayor utilización al poder colocar diferentes flujos de tareas en lo que de otro modo sería un SMX inactivo. La simplicidad de Hyper-Q se ve reforzada por el hecho de que se mapea fácilmente a MPI, una interfaz de paso de mensajes común utilizada frecuentemente en HPC. Los algoritmos heredados basados ​​en MPI, diseñados originalmente para sistemas multi-CPU que se veían limitados por dependencias falsas, ahora tienen una solución. Al aumentar el número de trabajos MPI, es posible utilizar Hyper-Q en estos algoritmos para mejorar la eficiencia sin modificar el código. [ 11 ]

Paralelismo dinámico

La capacidad de paralelismo dinámico permite que los núcleos puedan despachar otros núcleos. Con Fermi, solo la CPU podía despachar un núcleo, lo que generaba cierta sobrecarga al tener que comunicarse con la CPU. Al otorgar a los núcleos la capacidad de despachar sus propios núcleos hijos, GK110 ahorra tiempo al no tener que comunicarse con la CPU y, al mismo tiempo, libera a la CPU para que trabaje en otras tareas. [ 11 ]

Unidad de gestión de red

La habilitación del paralelismo dinámico requiere un nuevo sistema de gestión y control de despacho de cuadrículas. La nueva Unidad de Gestión de Cuadrículas (GMU) gestiona y prioriza las cuadrículas que se ejecutarán. La GMU puede pausar el despacho de nuevas cuadrículas y poner en cola las cuadrículas pendientes y suspendidas hasta que estén listas para ejecutarse, lo que proporciona la flexibilidad necesaria para habilitar entornos de ejecución potentes, como el paralelismo dinámico. El Distribuidor de Trabajo CUDA en Kepler mantiene las cuadrículas listas para el despacho y puede despachar 32 cuadrículas activas, el doble de la capacidad del CWD de Fermi. El CWD de Kepler se comunica con la GMU mediante un enlace bidireccional que permite a la GMU pausar el despacho de nuevas cuadrículas y mantener las cuadrículas pendientes y suspendidas hasta que sean necesarias. La GMU también tiene una conexión directa con las unidades SMX de Kepler para permitir que las cuadrículas que inician trabajo adicional en la GPU mediante el paralelismo dinámico envíen el nuevo trabajo de vuelta a la GMU para su priorización y despacho. Si el kernel que despachó la carga de trabajo adicional se pausa, la GMU lo mantendrá inactivo hasta que el trabajo dependiente haya finalizado. [ 12 ]

Nvidia GPUDirect

Nvidia GPUDirect es una capacidad que permite que las GPU dentro de una misma computadora, o las GPU en diferentes servidores ubicados en una red, intercambien datos directamente sin necesidad de acceder a la CPU/memoria del sistema. La función RDMA en GPUDirect permite que dispositivos de terceros, como SSD, NIC y adaptadores IB, accedan directamente a la memoria de múltiples GPU dentro del mismo sistema, lo que reduce significativamente la latencia de los mensajes MPI de envío y recepción hacia/desde la memoria de la GPU. [ 18 ] También reduce las demandas de ancho de banda de la memoria del sistema y libera los motores DMA de la GPU para que los utilicen otras tareas CUDA. El chip Kepler GK110 también admite otras funciones de GPUDirect, incluyendo Peer-to-Peer y GPUDirect para vídeo.

Descompresión/compresión de vídeo

NVDEC

NVENC

NVENC es el codificador de función fija de bajo consumo de energía de Nvidia, capaz de tomar códecs, decodificar, preprocesar y codificar contenido basado en H.264. Los formatos de entrada de la especificación NVENC se limitan a la salida H.264. Sin embargo, a pesar de su formato limitado, NVENC puede admitir una codificación de hasta 4096x4096. [ 19 ]

Al igual que QuickSync de Intel, NVENC actualmente se expone a través de una API propietaria, aunque Nvidia tiene planes de proporcionar el uso de NVENC a través de CUDA. [ 19 ]

Actuación

La potencia de procesamiento teórica de precisión simple de una GPU Kepler en GFLOPS se calcula como 2 (operaciones por instrucción FMA por núcleo CUDA por ciclo) × número de núcleos CUDA × velocidad de reloj del núcleo (en GHz). Cabe destacar que, al igual que la generación anterior Fermi , Kepler no puede beneficiarse de una mayor potencia de procesamiento mediante la emisión dual de MAD+MUL, como sí lo hacía Tesla .

La potencia de procesamiento teórica de doble precisión de una GPU Kepler GK110/210 es 1/3 de su rendimiento de precisión simple. Sin embargo, esta potencia de procesamiento de doble precisión solo está disponible en las tarjetas GeForce profesionales Quadro , Tesla y Titan de gama alta , mientras que los controladores para las tarjetas GeForce de consumo limitan el rendimiento a 1/24 del rendimiento de precisión simple. [ 20 ] Los chips GK10x de menor rendimiento también están limitados a 1/24 del rendimiento de precisión simple. [ 21 ]

Muere Kepler

Kepler

Kepler 2.0

Véase también

Referencias

  1. Mujtaba, Hassan (18 de febrero de 2012). "Nvidia espera lanzar ocho nuevas GPU Kepler de 28 nm en abril de 2012" .
  2. "Dentro de Kepler" (PDF) . Consultado el 19 de septiembre de 2015 .
  3. 1 2 3 4 5 "Presentación de la GPU GeForce GTX 680" . Nvidia . 22 de marzo de 2012. Consultado el 19 de septiembre de 2015 .
  4. "Arquitectura de computación CUDA de próxima generación de Nvidia: Kepler TM GK110" (PDF) . Nvidia .
  5. 1 2 3 4 Smith, Ryan (22 de marzo de 2012). "Análisis de la Nvidia GeForce GTX 680: Recuperando la corona del rendimiento" . AnandTech . Archivado del original el 24 de marzo de 2012. Consultado el 25 de noviembre de 2012 .
  6. "Eficiencia mediante Hyper-Q, paralelismo dinámico y más" . Nvidia . 12 de noviembre de 2012. Archivado del original el 14 de noviembre de 2012. Consultado el 19 de septiembre de 2015 .
  7. "GeForce GTX 770 | Especificaciones | GeForce" . Nvidia . Consultado el 7 de junio de 2022 .
  8. "Información del dispositivo decodificador de GPU de NVIDIA" .
  9. "Documento técnico de GeForce 680 (Kepler)" (PDF) . Nvidia . Consultado el 22 de marzo de 2024 .
  10. "Documento técnico sobre la arquitectura Nvidia Kepler GK210/110" (PDF) . Nvidia . Consultado el 22 de marzo de 2024 .
  11. 1 2 3 4 Smith, Ryan (12 de noviembre de 2012). "Nvidia lanza Tesla K20 y K20X: GK110 llega por fin" . AnandTech . Archivado del original el 14 de noviembre de 2012. Recuperado el 19 de septiembre de 2015 .
  12. 1 2 "Documento técnico sobre la arquitectura Nvidia Kepler GK110" (PDF) . Nvidia . Consultado el 19 de septiembre de 2015 .
  13. "Nvidia lanza las primeras GPU GeForce basadas en la arquitectura Kepler de próxima generación" . Nvidia . 22 de marzo de 2012. Archivado del original el 14 de junio de 2013.
  14. Edward, James (22 de noviembre de 2012). "Nvidia afirma ofrecer soporte parcial para DirectX 11.1" . TechNews . Archivado del original el 28 de junio de 2015. Consultado el 19 de septiembre de 2015 .
  15. 1 2 "Nvidia no ofrece soporte completo para DirectX 11.1 con las GPU Kepler, pero… (Enlace al archivo web)" . BSN. Archivado del original el 29 de diciembre de 2012.
  16. "Enumeración D3D_FEATURE_LEVEL (Windows)" . MSDN . Consultado el 19 de septiembre de 2015 .
  17. Moreton, Henry (20 de marzo de 2014). "DirectX 12: Un gran avance para los videojuegos" . Nvidia . Consultado el 19 de septiembre de 2015 .
  18. "Nvidia GPUDirect" . Desarrollador de Nvidia . 6 de octubre de 2015. Consultado el 5 de febrero de 2019 .
  19. 1 2 Angelini, Chris (22 de marzo de 2012). "Resultados de referencia: NVEnc y MediaEspresso 6.5" . Tom's Hardware . Recuperado el 19 de septiembre de 2015 .
  20. Angelini, Chris (7 de noviembre de 2013). "Análisis de la Nvidia GeForce GTX 780 Ti: GK110, totalmente desbloqueada" . Tom's Hardware . pág. 1. Consultado el 6 de diciembre de 2015. El controlador de la tarjeta opera deliberadamente las unidades FP64 de GK110 a 1/8 de la frecuencia de reloj de la GPU. Si se multiplica eso por la relación 3:1 de núcleos CUDA de precisión simple a doble, se obtiene una tasa de 1/24. 
  21. Smith, Ryan (13 de septiembre de 2012). "Análisis de la Nvidia GeForce GTX 660: GK106 completa la familia Kepler" . AnandTech . pág. 1. Archivado del original el 15 de septiembre de 2012. Consultado el 6 de diciembre de 2015 .