Unidades informáticas AMD frente a núcleos Nvidia CUDA: ¿Cuál es la diferencia?

Si ha estado siguiendo Nvidia y AMD, probablemente conozca las especificaciones de sus GPU que a ambas compañías les gusta usar. Por ejemplo, a Nvidia le gusta enfatizar los recuentos de núcleos CUDA para diferenciar su oferta de las tarjetas de AMD, mientras que AMD hace lo mismo con sus unidades de cómputo.

Pero, ¿qué significan realmente estos términos? ¿Es un núcleo CUDA lo mismo que una unidad de cómputo? Si no es así, ¿cuál es la diferencia?

Respondamos estas preguntas y veamos qué hace que una GPU AMD sea diferente de una Nvidia.

Arquitectura general de una GPU

Todas las GPU, ya sean de AMD, Nvidia o Intel, funcionan de la misma manera en general. Tienen los mismos componentes clave y el diseño general de esos componentes es similar en un nivel superior.

Entonces, desde una perspectiva de arriba hacia abajo, todas las GPU son iguales.

Cuando miramos los componentes específicos y patentados que cada fabricante incluye en su GPU, las diferencias comienzan a surgir. Por ejemplo, Nvidia construye núcleos Tensor en sus GPU, mientras que las GPU AMD no tienen núcleos Tensor.

De manera similar, AMD usa componentes como Infinity Cache, que las GPU de Nvidia no tienen.

Entonces, para comprender la diferencia entre las unidades de cómputo (CU) y los núcleos CUDA, primero debemos observar la arquitectura general de una GPU. Una vez que podemos entender la arquitectura y ver cómo funciona una GPU, podemos ver claramente la diferencia entre las unidades de cómputo y los núcleos CUDA.

¿Cómo funciona una GPU?

Lo primero que debe comprender es que una GPU procesa miles o incluso millones de instrucciones simultáneamente. Por lo tanto, una GPU necesita muchos núcleos pequeños y altamente paralelos para manejar esas instrucciones.

Estos pequeños núcleos de GPU son diferentes de los grandes núcleos de CPU que procesan una instrucción compleja por núcleo a la vez.

Por ejemplo, una Nvidia RTX 3090 tiene 10496 núcleos CUDA. Por otro lado, el AMD Threadripper 3970X de primera línea tiene solo 64 núcleos.

Entonces, no podemos comparar los núcleos de la GPU con los núcleos de la CPU. Existen bastantes diferencias entre una CPU y una GPU porque los ingenieros las han diseñado para realizar diferentes tareas.

Además, a diferencia de una CPU promedio, todos los núcleos de la GPU están organizados en clústeres o grupos.

Finalmente, un grupo de núcleos en una GPU tiene otros componentes de hardware como núcleos de procesamiento de texturas, unidades de puntos flotantes y cachés.

para ayudar a procesar millones de instrucciones al mismo tiempo. Este paralelismo define la arquitectura de una GPU. Desde cargar una instrucción hasta procesarla, una GPU hace todo de acuerdo con los principios del procesamiento paralelo.

  • Primero, la GPU recibe una instrucción para procesar desde una cola de instrucciones. Estas instrucciones casi siempre están relacionadas de manera abrumadora con los vectores.
  • A continuación, para resolver estas instrucciones, un programador de subprocesos las pasa a los grupos centrales individuales para su procesamiento.
  • Después de recibir las instrucciones, un programador de clúster de núcleos incorporado asigna las instrucciones a los núcleos o elementos de procesamiento para su procesamiento.
  • Finalmente, diferentes grupos centrales procesan diferentes instrucciones en paralelo y los resultados se muestran en la pantalla. Entonces, todos los gráficos que ves en la pantalla, un videojuego, por ejemplo, son solo una colección de millones de vectores procesados.

En resumen, una GPU tiene miles de elementos de procesamiento que llamamos "núcleos" organizados en grupos. Los programadores asignan trabajo a estos grupos para lograr el paralelismo.

¿Qué son las unidades de cálculo?

Como se vio en la sección anterior, cada GPU tiene grupos de núcleos que contienen elementos de procesamiento. AMD llama a estos clústeres centrales "Unidades informáticas".

www.youtube.com/watch?v=uu-3aEyesWQ&t=202s

Las unidades de cómputo son una colección de recursos de procesamiento como unidades aritméticas y lógicas (ALU) paralelas, cachés, unidades de punto flotante o procesadores vectoriales, registros y algo de memoria para almacenar información de subprocesos.

Para simplificar las cosas, AMD solo anuncia la cantidad de unidades de cómputo de sus GPU y no detalla los componentes subyacentes.

Por lo tanto, siempre que vea el número de unidades de cálculo, piense en ellas como un grupo de elementos de procesamiento y todos los componentes relacionados.

¿Qué son los núcleos CUDA?

Mientras que a AMD le gusta simplificar las cosas con la cantidad de unidades de cómputo, Nvidia complica las cosas usando términos como núcleos CUDA.

Los núcleos CUDA no son exactamente núcleos. Son solo unidades de punto flotante que a Nvidia le gusta llamar núcleos con fines de marketing. Y, si recuerda, los clústeres centrales tienen muchas unidades de punto flotante integradas. Estas unidades realizan cálculos vectoriales y nada más.

Por lo tanto, llamarlos "núcleo" es marketing puro.

Por lo tanto, un núcleo CUDA es un elemento de procesamiento que realiza operaciones de punto flotante. Puede haber muchos núcleos CUDA dentro de un clúster de un solo núcleo.

Finalmente, Nvidia llama a los clústeres centrales "Multiprocesadores de transmisión o SM". Los SM son equivalentes a las unidades informáticas AMD, ya que las unidades informáticas son agrupaciones centrales en sí mismas.

¿Cuál es la diferencia entre unidades informáticas y núcleos CUDA?

La principal diferencia entre una unidad de cómputo y un núcleo CUDA es que el primero se refiere a un clúster central y el segundo se refiere a un elemento de procesamiento.

Para comprender mejor esta diferencia, tomemos el ejemplo de una caja de cambios.

Una caja de cambios es una unidad que consta de varios engranajes. Puede pensar en la caja de cambios como una unidad de cálculo y los engranajes individuales como unidades de punto flotante de núcleos CUDA.

En otras palabras, donde Compute Units son una colección de componentes, los núcleos CUDA representan un componente específico dentro de la colección. Por lo tanto, las unidades de cómputo y los núcleos CUDA no son comparables.

Esta es también la razón por la que cuando AMD menciona la cantidad de unidades de cómputo para sus GPU, siempre son bastante más bajas en comparación con las tarjetas Nvidia de la competencia y su recuento de núcleos CUDA. Una comparación más favorable sería entre el número de multiprocesadores de transmisión de la tarjeta Nvidia y el número de unidades de cómputo de la tarjeta AMD.

Relacionado: AMD 6700XT vs.Nvidia RTX 3070: ¿Cuál es la mejor GPU por menos de $ 500?

Los núcleos y las unidades informáticas CUDA son diferentes y no comparables

Las empresas tienen la costumbre de utilizar terminología confusa para presentar sus productos de la mejor manera. Esto no solo confunde al cliente, sino que también dificulta el seguimiento de las cosas que importan.

Por lo tanto, asegúrese de saber qué buscar cuando busque una GPU. Mantenerse alejado de la jerga de marketing hará que su decisión sea mucho mejor y más libre de estrés.