Breve análisis de la arquitectura de las GPUs Nvidia

De forma muy simplificada, el procesamiento vectorial de las GPU NVidia se basa en una multitud de núcleos simples, agrupados en procesadores múltiples. La terminología oficial es:

Streaming Processor (SP):
ALU. Puede ser de precisión simple (SP) o doble (DP). Vemos que las iniciales “SP” pueden referirse a dos conceptos diferentes.
Streaming Multiprocessor (SM):
integra varios SPs.

Conceptualmente, cada núcleo CUDA tendría una ALU para enteros y otra para coma flotante (tanto en precisión simple como doble). En la práctica, el número total de núcleos que soportan precisión doble suele ser menor, en un factor entre 1/32

El número total de cores simplemente sería el producto de los SP/SM por el número de SMs. En el caso de SP de doble precisión, se suelen indicar como fracción de los SP de simple precisión. Por ejemplo, la GTX 980 Ti tiene un factor FP64/FP32 de 1/32, lo cual significa que de los 2772 cores, hay 2772/32=84 cores de doble precisión (el resto obviamente son de simple)

Las operaciones por segundo (teóricas) se pueden calcular multiplicando las “operaciones por instrucción-núcleo-ciclo” por el número de núcleos y por la velocidad de reloj. Dado que hay núcleos de precisión simple (FP32) y doble (FP64), los GFLOP/s también suelen etiquetarse como de simple o doble precisión. Por ahora, las “operaciones por instrucción-núcleo-ciclo” son 2, ya que la instrucción de suma y multiplicación (“FMA”) comporta 2 operaciones.

Ejemplos:

GTX 980 Ti -> 2 * 2800 * 10^9 = 5.6 TFLOP/s precisión simple, 2*84*10^9 = 0.168 TFLOP/s precisión doble.

La nomenclatura de los procesadores incluye una letra que referencia la arquitectura a la que pertenecen. Así, los GF corresponderían a Fermi (2009), los GK a Kepler (2012) y los GM a Maxwell (2014).

En esta tabla se comparan las características de algunas de las tarjetas más interesantes (en las diversas generaciones):

Para saber más…

“CUDA programming”, Shane Cook (2012)

“Computer Architecture, a Quantitative approach” (5th ed), Patterson & Hennessy (2011)

“New hardware features in Kepler, SMX and Tesla K40”, Manuel Ujaldón (2014).

Wikipedia: arquitecturas Maxwell, Kepler y Fermi.