# Maxwell (microarquitectura)

Maxwell es el nombre en clave de una microarquitectura GPU desarrollada por Nvidia como sucesora de la microarquitectura Kepler. La arquitectura Maxwell se introdujo en modelos posteriores de la serie GeForce 700 y también se utiliza en la serie GeForce 800M, la serie GeForce 900 y la serie Quadro Mxxx, así como en algunos productos Jetson, todos fabricados con el proceso de 28 nm de TSMC.
Los primeros productos basados en Maxwell fueron GeForce GTX 745 (OEM), GeForce GTX 750 y GeForce GTX 750 Ti. Ambos fueron lanzados el 18 de febrero de 2014, ambos con el número de código de chip GM107. Las GPU de la serie GeForce 700 anteriores habían utilizado chips Kepler con los números de código GK1xx. Las GPU Maxwell de primera generación (números de código GM10x) también se utilizan en las series GeForce 800M y Quadro Kxxx. El 18 de septiembre de 2014 se presentó una segunda generación de productos basados en Maxwell con la GeForce GTX 970 y la GeForce GTX 980, seguida de la GeForce GTX 960 el 22 de enero de 2015, la GeForce GTX Titan X el 17 de marzo de 2015 y la GeForce GTX 980 Ti el 1 de junio de 2015. La tarjeta Maxwell 2.0 final y con la especificación más baja fue la GTX950 lanzada el 20 de agosto de 2015. Estas GPU tienen números de código de chip GM20x.
Maxwell presentó un diseño mejorado de Streaming Multiprocessor (SM) que aumentó la eficiencia energética, PureVideo HD de sexta y séptima generación y CUDA Compute Capability 5.2.
La arquitectura lleva el nombre de James Clerk Maxwell, el fundador de la teoría de la radiación electromagnética.
La arquitectura Maxwell se utiliza en el sistema en un chip (SOC), procesador de aplicaciones móviles, Tegra X1.

## Maxwell de primera generación (GM10x)

Las GPU Maxwell de primera generación (GM107/GM108) se lanzaron como GeForce GTX 745, GTX 750/750 Ti, GTX 850M/860M (GM107) y GeForce 830M/840M (GM108). Estos nuevos chips introdujeron pocas funciones adicionales orientadas al consumidor, ya que Nvidia se centró más en aumentar la eficiencia energética de la GPU. El caché L2 se incrementó de 256 KiB en Kepler a 2 MiB en Maxwell, lo que reduce la necesidad de más ancho de banda de memoria. En consecuencia, el bus de memoria se redujo de 192 bits en Kepler (GK106) a 128 bits, lo que redujo el área de matriz, el costo y el consumo de energía.
El diseño del multiprocesador de transmisión "SMX" de Kepler también se modificó y dividió, y se le cambió el nombre a "SMM" por Maxwell. La estructura del programador warp se heredó de Kepler, con las unidades de textura y los núcleos CUDA FP64 aún compartidos, pero el diseño de la mayoría de las unidades de ejecución se dividió para que cada programador warp en un SMM controle un conjunto de 32 núcleos CUDA FP32, un conjunto de 8 unidades de carga/almacenamiento y un juego de 8 unidades de funciones especiales. Esto contrasta con Kepler, donde cada SMX tenía 4 planificadores que programaban un grupo compartido de unidades de ejecución. Este último requería una barra transversal de todo SMX que usaba energía innecesaria para permitir que se compartieran todas las unidades de ejecución. Por el contrario, el diseño más modular de Maxwell permite una asignación de recursos más detallada y eficiente, lo que ahorra energía cuando la carga de trabajo no es óptima para los recursos compartidos. Nvidia afirma que un SMM de 128 núcleos CUDA tiene el 90% del rendimiento de un SMX de 192 núcleos CUDA, mientras que la eficiencia aumenta en un factor de 2. Además, cada clúster de procesamiento de gráficos, o GPC, contiene hasta 4 unidades SMX en Kepler y hasta 5 unidades SMM en Maxwell de primera generación.
GM107 también es compatible con CUDA Compute Capability 5.0 en comparación con 3.5 en las GPU GK110/GK208 y 3.0 en las GPU GK10x. El paralelismo dinámico y HyperQ, dos características de las GPU GK110/GK208, también son compatibles con toda la línea de productos de Maxwell. Maxwell también proporciona operaciones atómicas de memoria compartida nativa para enteros de 32 bits y comparación e intercambio (CAS) de memoria compartida nativa de 32 y 64 bits, que se pueden usar para implementar otras funciones atómicas.
El codificador de video de Nvidia, NVENC, se actualizó para que sea de 1,5 a 2 veces más rápido que en las GPU basadas en Kepler, lo que significa que puede codificar video a una velocidad de reproducción de seis a ocho veces mayor. Nvidia también reclama un aumento de rendimiento de ocho a diez veces en la decodificación de video PureVideo Feature Set E debido al caché del decodificador de video, junto con aumentos en la eficiencia de la memoria. Sin embargo, H.265 no es compatible con la decodificación de hardware completa en las GPU Maxwell de primera generación, ya que depende de una combinación de decodificación de hardware y software. Al decodificar video, se usa un nuevo estado de bajo consumo "GC5" en las GPU Maxwell para ahorrar energía.
Se pensó que las GPU de Maxwell usaban la representación basada en mosaicos, pero en realidad usan el almacenamiento en caché en mosaico.

### Chips

* GM107
* GM108

## Maxwell de segunda generación (GM20x)

Las GPU Maxwell de segunda generación introdujeron varias tecnologías nuevas: Súper resolución dinámica, Compresión de color Delta de tercera generación, Muestreo de programación multipíxel, Nvidia VXGI (Real-Time-Voxel- Global Illumination), VR Direct, Multi-Projection Acceleration, Multi-Frame Sampled Anti-Aliasing (MFAA) (sin embargo, se eliminó la compatibilidad con Coverage-Sampling Anti-Aliasing (CSAA)), y Direct3D12 API en el nivel de función 12_1. También se agregó compatibilidad con HDMI 2.0.
La relación entre ROP y controlador de memoria se cambió de 8:1 a 16:1. Sin embargo, algunos de los ROP generalmente están inactivos en la GTX 970 porque no hay suficientes SMM habilitados para darles trabajo, lo que reduce su tasa máxima de llenado.
El motor Polymorph responsable del teselado se actualizó a la versión 3.0 en las GPU Maxwell de segunda generación, lo que resultó en un mejor rendimiento del teselado por unidad/reloj.
Maxwell de segunda generación también tiene hasta 4 unidades SMM por GPC, en comparación con 5 unidades SMM por GPC.
GM204 es compatible con CUDA Compute Capability 5.2 (en comparación con 5.0 en las GPU GM107/GM108, 3.5 en las GPU GK110/GK208 y 3.0 en las GPU GK10x).
Las GPU GM20x tienen una NVENC mejorada que admite la codificación HEVC y agrega compatibilidad con las resoluciones de codificación H.264 a 1440p/60FPS y 4K/60FPS (en comparación con NVENC en las GPU GM10x de primera generación de Maxwell que solo admitían la codificación H.264 1080p/60FPS).
Después de las quejas de los consumidores, Nvidia reveló que puede deshabilitar unidades individuales, cada una con 256 KB de caché L2 y 8 ROP, sin deshabilitar controladores de memoria completos. Esto tiene el costo de dividir el bus de memoria en segmentos de alta y baja velocidad a los que no se puede acceder al mismo tiempo para lecturas, porque la unidad L2/ROP que administra ambos controladores GDDR5 comparte el canal de retorno de lectura y el bus de datos de escritura. entre los controladores GDDR5. Esto hace imposible la lectura simultánea de ambos controladores GDDR5 o la escritura simultánea en ambos controladores GDDR5. Esto se usa en la GeForce GTX 970, que por lo tanto puede describirse como que tiene 3,5 GB en un segmento de alta velocidad en un bus de 224 bits y 512 MB en un segmento de baja velocidad en un bus de 32 bits. Todavía se puede alcanzar la velocidad máxima de una GPU de este tipo, pero solo se puede alcanzar la cifra de velocidad máxima si un segmento ejecuta una operación de lectura mientras que el otro segmento ejecuta una operación de escritura.

### Chips

* GM200
* GM204
* GM206

## Rendimiento

La potencia teórica de procesamiento de precisión simple de una GPU Maxwell en FLOPS 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 Hz).
La potencia teórica de procesamiento de doble precisión de una GPU Maxwell es 1/32 del rendimiento de precisión simple (que se ha señalado como muy bajo en comparación con la generación anterior de Kepler).

## Sucesor

El sucesor de Maxwell tiene el nombre en clave de Pascal. La arquitectura Pascal cuenta con memoria unificada de mayor ancho de banda y NVLink.