stringtranslate.com

Kepler (microarquitectura)

Kepler es el nombre en clave de una microarquitectura GPU desarrollada por Nvidia , introducida por primera vez al por menor en abril de 2012, [1] como sucesora de la microarquitectura Fermi . Kepler fue la primera microarquitectura de Nvidia que se centró en la eficiencia energética . La mayoría de las GPU de la serie GeForce 600 , la mayoría de la serie GeForce 700 y algunas de la serie GeForce 800M se basaron en Kepler, todas fabricadas en 28 nm. Kepler encontró uso en el GK20A, el componente GPU del SoC Tegra K1 , y en la serie Quadro Kxxx, los módulos informáticos Quadro NVS 510 y Nvidia Tesla .

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

La arquitectura lleva el nombre de Johannes Kepler , un matemático alemán y figura clave en la revolución científica del siglo XVII .

Descripción general

Imagen de una GPU GK110 A1, encontrada 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 se centró en la eficiencia, la programabilidad y el rendimiento. [2] [3] El objetivo de eficiencia se logró mediante el uso de un reloj GPU unificado, programación estática simplificada de instrucción y un mayor énfasis en el rendimiento por vatio. [4] Al abandonar el reloj de sombreado que se encuentra en sus diseños de GPU anteriores, se aumenta la eficiencia, aunque requiere núcleos adicionales para lograr niveles más altos de rendimiento. Esto no solo se debe a que los núcleos consumen menos energía (dos núcleos Kepler utilizan el 90% de la energía de un núcleo Fermi, según los números de Nvidia), sino que también el cambio a un esquema de reloj de GPU unificado ofrece una reducción del 50% en el consumo de energía en esa area. [5]

El objetivo de programabilidad se logró con Hyper-Q, paralelismo dinámico y múltiples funciones nuevas de Compute Capabilities 3.x de Kepler. Con esto, se pudo lograr una mayor utilización de la GPU y una administració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 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 contiene características de las generaciones anteriores de Fermi y Kepler más nuevas. Los miembros basados ​​en Kepler agregan las siguientes características estándar:

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

PCB GTX 780 y matriz.

La arquitectura Kepler emplea una nueva arquitectura de multiprocesador de transmisión llamada "SMX". Los SMX son la razón de la eficiencia energética de Kepler, ya que toda la GPU utiliza una única velocidad de reloj unificada. [5] Aunque el uso de SMX de un único reloj unificado aumenta la eficiencia energética debido al hecho de que varios Kepler CUDA Cores de reloj más bajo consumen un 90% menos de energía que varios Fermi CUDA Core de reloj más alto, se necesitan unidades de procesamiento adicionales para ejecutar una deformación completa por ciclo. . Duplicar de 16 a 32 por matriz CUDA resuelve el problema de ejecución warp, el front-end SMX también se duplica con programadores warp, unidad de despacho y el archivo de registro duplicado a 64K entradas para alimentar las unidades de ejecución adicionales. Con el riesgo de inflar el área del troquel, los motores SMX PolyMorph se han mejorado a 2.0 en lugar de duplicarse junto con las unidades de ejecución, lo que les permite estimular el polígono [ se necesita aclaración ] en ciclos más cortos. Hay 192 sombreadores por SMX. [9] También se utilizan núcleos CUDA FP64 dedicados , ya que todos los núcleos Kepler CUDA no son capaces de FP64 para ahorrar espacio. Con la mejora realizada por Nvidia en el SMX, los resultados incluyen un aumento en el rendimiento y la eficiencia de la GPU. Con GK110, la caché de texturas de 48 KB está desbloqueada para cargas de trabajo informáticas. En la carga de trabajo informática, la caché de texturas se convierte en una caché de datos de solo lectura, que se especializa en cargas de trabajo de acceso a memoria no alineadas. Además, se han agregado capacidades de detección de errores para que las cargas de trabajo que dependen de ECC sean más seguras. El número de registros por subproceso también se duplica en GK110 con 255 registros por subproceso.

Programador de instrucciones simplificado

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

Impulso de GPU

GPU Boost es una nueva característica que es más o menos análoga al turbo boost de una CPU. Siempre se garantiza que la GPU funcionará a una velocidad de reloj mínima, denominada "reloj base". Esta velocidad de reloj está configurada en el nivel que garantizará que la GPU se mantenga dentro de las especificaciones TDP , incluso con cargas máximas. [3] Sin embargo, cuando las cargas son más bajas, hay espacio para aumentar la velocidad del reloj sin exceder el TDP. En estos escenarios, GPU Boost aumentará gradualmente la velocidad del reloj en pasos, hasta que la GPU alcance un objetivo de energía predefinido (que es 170 W de forma predeterminada). [5] Al adoptar este enfoque, la GPU aumentará o disminuirá su reloj dinámicamente, de modo que proporcione la máxima velocidad posible mientras se mantiene dentro de las especificaciones TDP.

El objetivo de potencia, así como el tamaño de los pasos de aumento del reloj que tomará la GPU, se pueden ajustar mediante utilidades de terceros y proporcionan un medio para hacer overclocking en tarjetas basadas en Kepler. [3]

Soporte 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 soporte total para DirectX 11.1, que incluye la ruta Direct3D 11.1. [12] Sin embargo, las siguientes funciones de Direct3D 11.1 de "IU moderna" no son compatibles: [13] [14]

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

Siguiente compatibilidad con Microsoft Direct3D

Las GPU NVIDIA Kepler de la serie GeForce 600/700 admiten el nivel de función Direct3D 12 11_0. [dieciséis]

Soporte TXAA

Exclusivo de las GPU Kepler, TXAA es un nuevo método anti-aliasing de Nvidia que está 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 shimmering o aliasing temporal . TXAA resuelve esto suavizando la escena en movimiento, asegurándose de que cualquier escena del juego esté libre de alias y brillos. [3]

Instrucciones de reproducción aleatoria

En un nivel bajo, GK110 ve instrucciones y operaciones adicionales para mejorar aún más el rendimiento. Las nuevas instrucciones de reproducción aleatoria permiten que los subprocesos dentro de un warp compartan datos sin tener que volver a la memoria, lo que hace que el proceso sea mucho más rápido que el método anterior de cargar/compartir/almacenar. Las operaciones atómicas también se revisan, lo que acelera la velocidad de ejecución de las operaciones atómicas y agrega algunas operaciones FP64 que anteriormente solo estaban disponibles para datos FP32. [10]

Hiper-Q

Hyper-Q amplía las colas de trabajo del hardware GK110 de 1 a 32. La importancia de esto es que tener una única cola de trabajo significaba que Fermi podía estar subocupado en ocasiones ya que no había suficiente trabajo en esa cola para llenar cada SM. Al tener 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 naturaleza simple de Hyper-Q se ve reforzada por el hecho de que se asigna fácilmente a MPI, una interfaz común de paso de mensajes que se usa con frecuencia en HPC. Como los algoritmos heredados basados ​​en MPI que fueron diseñados originalmente para sistemas de múltiples CPU que se vieron obstaculizados por dependencias falsas, ahora tienen una solución. Al aumentar la cantidad de trabajos MPI, es posible utilizar Hyper-Q en estos algoritmos para mejorar la eficiencia, todo sin cambiar el código en sí. [10]

Paralelismo dinámico

La capacidad de paralelismo dinámico permite que los núcleos puedan enviar otros núcleos. Con Fermi, sólo la CPU podía enviar un kernel, lo que genera una cierta sobrecarga al tener que comunicarse con la CPU. Al darle a los núcleos la capacidad de enviar sus propios núcleos secundarios, GK110 puede ahorrar tiempo al no tener que volver a la CPU y, en el proceso, liberar la CPU para trabajar en otras tareas. [10]

Unidad de Gestión de Red

Habilitar el paralelismo dinámico requiere un nuevo sistema de control de despacho y gestión de la red. La nueva Unidad de Gestión de Red (GMU) gestiona y prioriza las redes a ejecutar. La GMU puede pausar el envío de nuevas grids y poner en cola grids pendientes y suspendidas hasta que estén listas para ejecutarse, proporcionando la flexibilidad para habilitar potentes tiempos de ejecución, como el paralelismo dinámico. El CUDA Work Distributor en Kepler tiene redes listas para enviar y puede enviar 32 redes activas, lo que representa el doble de la capacidad del Fermi CWD. El Kepler CWD se comunica con la GMU a través de un enlace bidireccional que le permite a la GMU pausar el envío de nuevas redes y mantener redes pendientes y suspendidas hasta que sea necesario. La GMU también tiene una conexión directa a las unidades Kepler SMX para permitir que las redes que lanzan trabajo adicional en la GPU a través del paralelismo dinámico envíen el nuevo trabajo a la GMU para priorizarlo y enviarlo. Si el kernel que envió la carga de trabajo adicional se detiene, la GMU lo mantendrá inactivo hasta que se haya completado el trabajo dependiente. [11]

NVIDIA GPUDirect

NVIDIA GPUDirect es una capacidad que permite que las GPU dentro de una sola computadora, o las GPU en diferentes servidores ubicados en una red, intercambien datos directamente sin necesidad de ir a la CPU o la 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 en varias GPU dentro del mismo sistema, lo que reduce significativamente la latencia del envío y recepción de mensajes MPI hacia y desde la memoria de la GPU. [17] También reduce las demandas de ancho de banda de la memoria del sistema y libera los motores DMA de GPU para su uso en otras tareas CUDA. Kepler GK110 también admite otras funciones de GPUDirect, incluidas Peer-to-Peer y GPUDirect para vídeo.

Descompresión/compresión de vídeo

NVDEC

NVENC

NVENC es la codificación de función fija de bajo consumo de Nvidia que es capaz de aceptar códecs, decodificar, preprocesar y codificar contenido basado en H.264. Los formatos de entrada de la especificación NVENC están limitados a la salida H.264. Pero aún así, NVENC, a través de su formato limitado, puede admitir codificación de hasta 4096x4096. [18]

Al igual que Quick Sync de Intel, NVENC está actualmente expuesto a través de una API patentada, aunque Nvidia tiene planes de proporcionar el uso de NVENC a través de CUDA. [18]

Actuación

La potencia teórica de procesamiento 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). Tenga en cuenta que, al igual que la generación anterior de Fermi , Kepler no puede beneficiarse de una mayor potencia de procesamiento mediante la emisión dual de MAD+MUL como lo hacía Tesla .

La potencia teórica de procesamiento 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 tarjetas GeForce profesionales Quadro , Tesla y TITAN de gama alta , mientras que los controladores para tarjetas GeForce de consumo limitan el rendimiento a 1/24 del rendimiento de precisión simple. [19] Los chips GK10x de menor rendimiento también tienen un límite de 1/24 del rendimiento de precisión simple. [20]

chips kepler

Ver también

Referencias

  1. ^ Mujtaba, Hassan (18 de febrero de 2012). "Se espera que NVIDIA lance ocho nuevas GPU Kepler de 28 nm en abril de 2012".
  2. ^ "Dentro de Kepler" (PDF) . Consultado el 19 de septiembre de 2015 .
  3. ^ abcde "Presentación de la GPU GeForce GTX 680". NVIDIA. 22 de marzo de 2012 . Consultado el 19 de septiembre de 2015 .
  4. ^ Nividia. "Arquitectura informática CUDATM de próxima generación de NVIDIA: Kepler TM GK110" (PDF) . www.nvidia.com .
  5. ^ abcde Smith, Ryan (22 de marzo de 2012). "Revisión de NVIDIA GeForce GTX 680: retomando la corona del rendimiento". AnandTech . Consultado el 25 de noviembre de 2012 .
  6. ^ "Eficiencia a través de Hyper-Q, paralelismo dinámico y más". NVIDIA. 12 de noviembre de 2012 . Consultado el 19 de septiembre de 2015 .
  7. ^ "GeForce GTX 770 | Especificaciones | GeForce". www.nvidia.com . Consultado el 7 de junio de 2022 .
  8. ^ https://bluesky-soft.com/en/dxvac/deviceInfo/decoder/nvidia.html
  9. ^ "Revisión de GeForce GTX 680 2 GB: Kepler envía a Tahití de vacaciones". Hardware de Tom. 22 de marzo de 2012 . Consultado el 19 de septiembre de 2015 .
  10. ^ abcd "NVIDIA lanza Tesla K20 y K20X: GK110 llega por fin". AnandTech. 2012-11-12 . Consultado el 19 de septiembre de 2015 .
  11. ^ ab "Documento técnico sobre arquitectura NVIDIA Kepler GK110" (PDF) . Consultado el 19 de septiembre de 2015 .
  12. ^ "NVIDIA lanza las primeras GPU GeForce basadas en la arquitectura Kepler de próxima generación". NVIDIA. 22 de marzo de 2012. Archivado desde el original el 14 de junio de 2013.
  13. ^ Edward, James (22 de noviembre de 2012). "NVIDIA afirma que es parcialmente compatible con DirectX 11.1". Noticias tecnológicas. Archivado desde el original el 28 de junio de 2015 . Consultado el 19 de septiembre de 2015 .
  14. ^ ab "Nvidia no es totalmente compatible con DirectX 11.1 con las GPU Kepler, pero… (enlace al archivo web)". BSN. Archivado desde el original el 29 de diciembre de 2012.
  15. ^ "Enumeración D3D_FEATURE_LEVEL (Windows)". MSDN . Consultado el 19 de septiembre de 2015 .
  16. ^ Henry Moreton (20 de marzo de 2014). "DirectX 12: un gran paso para los juegos" . Consultado el 19 de septiembre de 2015 .
  17. ^ "NVIDIA GPUDirect". Desarrollador NVIDIA . 2015-10-06 . Consultado el 5 de febrero de 2019 .
  18. ^ ab Chris Angelini (22 de marzo de 2012). "Resultados comparativos: NVEnc y MediaEspresso 6.5". Hardware de Tom . Consultado el 19 de septiembre de 2015 .
  19. ^ Angelini, Chris (7 de noviembre de 2013). "Revisión de Nvidia GeForce GTX 780 Ti: GK110, completamente desbloqueada". Hardware de Tom . pag. 1 . Consultado el 6 de diciembre de 2015 . El controlador de la tarjeta opera deliberadamente las unidades FP64 del GK110 a 1/8 de la frecuencia de reloj de la GPU. Cuando multiplicas eso por la proporción 3:1 de núcleos CUDA de precisión simple y doble, obtienes una proporción de 1/24
  20. ^ Smith, Ryan (13 de septiembre de 2012). "Revisión de NVIDIA GeForce GTX 660: GK106 completa la familia Kepler". AnandTech . pag. 1 . Consultado el 6 de diciembre de 2015 .