Tarjetas gráficasTutoriales

¿Qué son los Tensor Cores de una GPU NVIDIA? Descúbrelo

Ya es hora de que conozcamos la característica de éxito que trajo la familia Turing bajo el brazo. NVIDIA utiliza los Tensor Cores para potenciar sus tarjetas gráficas, pero, ¿qué son?

Tras la salida de la gama Turing en 2018, NVIDIA decidió presentar la novedad de los Tensor Cores, cuando estábamos familiarizados con los núcleos CUDA. Al final, este baile de nombres solo crea confusión, pero nos ponemos la bata para explicar qué son estos núcleos y qué importancia tienen.

CUDA y Tensor Cores no son lo mismo

Primero, vemos los núcleos CUDA y la tecnología CUDA como características nombradas en las tarjetas gráficas de NVIDIA. CUDA se trata de una plataforma de computación paralela que ayuda a la GPU a la hora de acelerar el rendimiento de una unidad centra de procesamiento.

La consecuencia es que la GPU crea un cálculo acelerado que se ejecuta más rápido junto con la CPU. Esta tecnología ha superado y desfasado a OpenCL, pero vemos que se confunden los núcleos CUDA con los Tensor Cores.

Los núcleos CUDA operan sobre una base de cálculo, es decir, cada núcleo realiza un cálculo. Por ello, la frecuencia y el número de núcleos CUDA son claves para que el rendimiento de esta tecnología se dispare.

Volta Pascal tensor cores

Por otro lado, los Tensor Cores (o núcleos Tensor) calculan la operación de una matriz 4×4 completa, la cual se calcula por reloj. Estos núcleos pueden multiplicar dos matrices FP16 4×4 y sumar la matriz FP32 al acumulador.

Además, se añaden los modos de precisión INT8 e INT4 para cargas de trabajo pesadas. Como habréis supuesto, los núcleos CUDA son bastante más lentos que los Tensor, aunque no todo es bueno: los CUDA son más precisos.

Tensor Cores, ¿qué son?

Se tratan de microprocesadores que están preparados para realizar operaciones matemáticas: sumar, multiplicar, etc. En este caso, muchos números necesitan ser agrupados porque obtienen un significado cuando los juntamos.

Las tarjetas gráficas están ideadas para procesar datos y renderizar gráficos. Por ejemplo, un chip puede estar tratando números como valores únicos para una escala (+5, +10, etc.), o para coordinaciones de un punto en el espacio: los famosos ejes X, Y y Z de Minecraft.

¿Qué es un tensor? Viene a ser un objeto matemático que describe la relación que existe entre otros objetos matemáticos vinculados entre sí. De este modo, se muestra como una matriz, que es lo que veis abajo.

Tensor Cores

Cada matriz tiene una serie de valores (números), podemos encontrarnos con un tipo de Tensor simple con una dimensión 0D, que solo vendría con un valor. Conforme aumentamos las dimensiones, aumentamos las matrices y empezamos a escalar.

  • Una dimensión =  un vector.
  • Dos dimensiones = una matriz.

Tensor Cores

Las operaciones matemáticas que más vemos son las multiplicaciones, concretamente la multiplicación de 2 matrices. En el mundo de las GPUs, hay que mover y procesar muchos vectores, por lo que el procesamiento paralelo de CUDA es una buena opción para ello.

Todo cambia cuando NVIDIA lanza una GPU con arquitectura Volta, que estaba dirigida a profesionales: era la primera GPU con núcleos para, exclusivamente, hacer cálculos de tensores. De ahí surgen los Tensor Cores, que fueron diseñados para conseguir 64 GEMMs por ciclo de reloj en matrices 4X4.

Como siempre, estas tecnologías llegan antes al mercado profesional, que al mercado doméstico. NVIDIA lanzaría la arquitectura Turing en 2018 y era la primera vez que veíamos los Tensor Cores en modelos GeForce. No obstante, volvió a mover ficha en 2020 con sus GPUs basadas en Ampere para los centros de datos: las A100.

En este sentido, pasábamos de los 64 GEMM a los 256 GEMM por ciclo, por lo que el rendimiento era abismal. Además, los programadores no tienen problemas para acceder a estos núcleos, ya que la tarea está simplificada, dejando que el hardware haga el resto del trabajo.

Para que os hagáis una idea sobre la diferencia de rendimiento entre CUDA y Tensor Cores, NVIDIA asegura que los últimos en las GPUs VOLTA (Turing) son 12 veces más rápidos que en las GPUs Pascal.

¿Qué impacto tienen en los videojuegos?

Los Tensor Cores han posibilitado el Machine Learning a tiempo real en los videojuegos (puede que te suene NVIDIA DLSS). De este modo, acelera todas las funciones que se basan en IA, mejorando la calidad de imagen y desahogando a la GPU de cargas pesadas de renderizado.

No es necesario tener muchos núcleos CUDA y más relojes para hacer lo mismo: con un solo ciclo de reloj es posible, gracias al Machine Learning e IA. De este modo, el proceso es el siguiente:

  • Se renderiza un FPS a 1080p.
  • Se aumenta la resolución del resultado para que coincida con la resolución del monitor.
  • Obtenemos una imagen a 2K o 4K haciendo que la GPU trabaje menos.

NVIDIA DLSS

En principio, el NVIDIA DLSS solo servía para resoluciones de 2K o mayores, pero su versión 2.0 permitió usarla en 1080p también. Con esta nueva versión, los datos del cuadro renderizado se usan para procesar los píxeles usando el modelo neuronal. Dicho esto, pocos juegos admiten esta tecnología, pero con Ampere seguirá expandiéndose y asentándose en la industria.

NVIDIA DLSS 2.1

Al fin y al cabo, los núcleos Tensor sirven para el DLSS, que se transforma en un aumento de rendimiento gaming brutal, especialmente en resoluciones altas (más de 20 FPS de diferencia).

No hay que confundir la funcionalidad de los Tensor Cores, con los núcleos RT. Los últimos se encargan de acelerar los cálculos relacionados con el Ray-Tracing, una tarea nada sencilla. Por el contrario, los Tensor Cores se usan en DLSS 2.0 para aumentar los FPS tras la aplicación de Ray-Tracing en una escena.

¿AMD tiene núcleos similares en sus GPUs?

Aquí es donde tiene más importancia, si cabe, los Tensor Cores: la competencia directa no dispone de una alternativa. Es cierto que con la llegada de las RX 6000, AMD ha presentado novedades como el Infinity Caché, pero no ha logrado lanzar una alternativa a los Tensor Cores.

Entre otros motivos, este hecho podría fundamentar el hecho de que las RX 6000 no ofrezcan el mismo rendimiento en Ray-Tracing que Ampere. Es cierto que estos núcleos son más importantes en labores de escalado o de computación avanzada, como se ve en la gama TITAN, Tesla, etc.

Podemos decir que AMD se centra en el público que busca el rendimiento por euro invertido, o en FPS/euro. Las RX 6000 han demostrado un rendimiento abismal en 2K y 4K, superando a la RTX 3070 con facilidad y creando una «guerra» en una gama que no existía para AMD: RTX 3080 y RTX 3090.

Sin embargo, quien busque una GPU para Machine Learning u operaciones de matrices, NVIDIA es la opción a seguir, al menos hasta que AMD saque alguna novedad al respecto. Solo con las diferencias de cálculo que ofrece CUDA contra OpenCL, deja claro que la gama RTX sigue siendo la preferida para estas tareas.

Con todo esto, AMD está desarrollando DirectML Super Resolution, que es la respuesta del DLSS de NVIDIA. Decir que DirectML es un Machine Learning de Microsoft diseñado para funcionar con Ray-Tracing DX12.

Esperamos que os haya sido de ayuda esta información. Si tenéis alguna duda, podéis comentar abajo y os contestamos en breve.

Te recomendamos las mejores tarjetas gráficas del mercado

¿Creéis que AMD sacará unos núcleos parecidos?

Ángel Aller

Graduado en Derecho y exabogado con Máster de Comercio internacional. Amante de la tecnología y geek inconformista. Leal a Alt+F4 como estilo de vida.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba