Guía Hardware
Black Friday Corsair

Compute Unit vs CUDA cores: qué son y diferencias

Actualizado a: 16 de abril de 2024

Cuando comparas las GPUs de NVIDIA y AMD, o incluso las de Intel, ves que existen algunas semejanzas, pero sobre todo lo que hay son diferencias importantes en la arquitectura de estos chips de procesamiento gráfico o para GPGPU. Mientras que NVIDIA enfatiza el número de núcleos CUDA en las especificaciones de sus productos, AMD lo hace con sus Compute Units. Pero… ¿qué significan realmente? ¿son sinónimos? ¿cuáles son las diferencias? Pues vamos a ver todo esto con detalle…

Arquitectura de una GPU

GPGPU

Todas las GPUs, ya sean de AMD, NIVDIA o Intel, funcionan de la misma manera a nivel general. De hecho, todas son compatibles con las APIs gráficas más populares y se comportan de manera similar. Sin embargo, el diseño de estos chips varía de forma bastante notable entre fabricantes. Cada uno tiene su propia perspectiva,

Poco a poco se van pareciendo más y más, por ejemplo cuando NVIDIA implementó sus núcleos Tensor para acelerar la IA, sus competidores hicieron lo mismo. Con los codecs AV1 ha pasado algo parecido, etc. Sin embargo existen otras tecnologías que no coinciden, como Infinity Cache de AMD, que no está presente en NVIDIA o Intel, o los núcleos CUDA de NVIDIA, que tampoco los tienen sus competidores.

Y son precisamente estos núcleos de procesamiento, los que se encargan de los gráficos, los que difieren enormemente de una Radeon a una GeForce. Mientras las Radeon se integran por CUs o Computer Units, las GeForce se componen de núcleos CUDA (Compute Unified Device Architecture).

¿Cómo funciona una GPU?

Need For Speed

Lo primero que debes comprender es que una GPU procesa miles o millones de instrucciones simultáneamente. Son diseños SIMD, frente a la CPU, que está diseñada para procesar solo un número más limitado de tareas de forma simultánea. Por este motivo, la GPU necesita muchos núcleos pequeños, cientos o miles de ellos para alcanzar el nivel de paralelismo necesario.

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 poner un ejemplo, tenemos que una CPU actual, como la Intel Core o la AMD Ryzen, pueden tener 8 o más núcleos, mientras que las tarjetas gráficas actuales como la GeForce RTX o la Radeon RX podrían tener hasta decenas de miles de núcleos.

Por ejemplo, una Nvidia GeForce RTX 3090 tiene 10.496 núcleos CUDA. Mientras que un Intel Core i9-13900K puede tener 24 núcleos. Por lo tanto, no podemos comparar los núcleos de GPU con los núcleos de CPU. Hay bastantes diferencias ambos, ya que no están pensados para lo mismo.

Además, mientras que en una CPU los núcleos no se suelen organizar en grupos o clusters, en la GPU sí que suelen estar organizados en grupos o clusters. Cada cluster tiene otras unidades como los núcleos de procesamiento de texturas, las unidades de coma flotante, caché, etc.

En cuanto a la forma de trabajar de una GPU básica, tenemos los siguientes pasos:

  1. La GPU recibe una instrucción para procesar desde una cola de instrucciones. Estas instrucciones casi siempre están abrumadoramente relacionadas con vectores.
  2. Para resolver estas instrucciones, un programador de subprocesos las pasa a clústeres centrales individuales para su procesamiento.
  3. Un programador de cluster central incorporado asigna las instrucciones a los núcleos o elementos de procesamiento para su procesamiento.
  4. 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» dispuestos en clústeres. Los programadores, a través de la CPU, asignan trabajo a estos grupos para lograr el paralelismo.

¿Qué son las Compute Unit de AMD Radeon?

RDNA 2 AMD Compute Units

Como he comentado anteriormente, un núcleo Compute Unit en las GPUs AMD Radeon es el elemento básico de procesamiento de estas unidades. Cada cluster se compone de centenares de estas CUs.

Las unidades de cómputo son una colección de recursos de procesamiento como unidades aritméticas y lógicas (ALU) paralelas, memorias caché, FPU o procesadores vectoriales, registros y algo de memoria para almacenar información de subprocesos. No obstante, AMD no detalla los componentes subyacentes, solo menciona las unidades de cómputo presentes en sus GPUs.

¿Qué son los núcleos CUDA?

CUDA cores

Mientras que AMD tiene Compute Units más complejas, NVIDIA ha creado unos núcleos algo más simples, los denominados CUDA. De hecho, estos no son exactamente núcleos, sino que son básicamente unidades de coma flotante o FPUs como se puede apreciar en la imagen superior.

NVIDIA los llama cores o núcleos por cuestiones de marketing, pero realmente no lo son, no son completos como las unidades CU, sino que simplemente son unidades funcionales simples que realizan cálculos de coma flotante o vectoriales.

Como ocurría con las CUs de AMD, NVIDIA también agrupa sus unidades CUDA en grupos o clusters. Cada grupo puede tener muchos de estos CUDA. Además, para agregar algo más de confusión, NVIDIA llama a los clusters centrales SM (Streaming Multiprocessor). Estas unidades SM sí que serían equivalentes a la CU de AMD. Pero el problema a nivel de marketing es que AMD tendría más de estas unidades en comparación con NVIDIA, por eso NVIDIA prefiere usar el recuento de CUDAs…

Compute Unit vs CUDA: diferencias

GPU NVIDIA y AMD

La principal diferencia entre una Compute Unit y una unidad CUDA es que el primero se refiere a un clúster central y el segundo se refiere a un elemento de procesamiento elemental. Para entender mejor la diferencia, toma como ejemplo una CPU. Mientras que un CU sería como un núcleo de la CPU, una unidad CUDA sería como la ALU o FPU de uno de esos núcleos de CPU.

En otras palabras, donde las Compute Units son una colección de componentes, y los núcleos CUDA representan un componente específico dentro de la colección. Por tanto, ambas no son comparables, pese a que muchos usuarios siguen empeñándose en compararlos a la hora de elegir tarjeta gráfica… Al igual que tampoco se puede comparar solo los FLOPS generados por una GPU como unida de rendimiento, ya que influyen otros muchos parámetros.

Ahora comprenderás por qué la cantidad de Compute Units de AMD de los recuentos de las GPUs lanzadas por esta marca es siempre más baja que el número o recuento de las unidades CUDA. Por tanto, una comparación más certera y justa sería comparar las Compute Units de AMD vs los Streaming Multiprocessors de NVIDIA.

Conclusión

Las empresas tienen la costumbre de utilizar una terminología confusa para presentar sus productos de la mejor manera, para tratar de captar la atención de los clientes potenciales. Esto no solo confunde al cliente, sino que también dificulta la comparación entre productos. Por esto, hay que tener muy clara la diferencia a la hora de elegir hardware.

Si te acuerdas de lo que ocurrió con AMD Fusion, cuando decían que tenían dos núcleos y realmente no eran núcleos completos, sino que la FPU era compartida por ambos, pues ahora está pasando algo igual en NVIDIA…

Jaime Herrera

Jaime Herrera

Ingeniero Informático apasionado por el hardware y la tecnología. Llevo más de diez años dedicándome al análisis de componentes como procesadores, tarjetas gráficas y sistemas de almacenamiento. Mi objetivo es ofrecer información clara y precisa, combinando mi experiencia técnica con un enfoque práctico para ayudar a los lectores a entender mejor el mundo del hardware.

>
Guía Hardware
Logo