Tarjetas gráficasTutoriales

Stream Processors vs CUDA Cores: Todo lo que necesitas saber

Seguramente que más de una vez te has preguntado si existe alguna diferencia entre los NVIDIA CUDA Cores y los AMD Stream Processors. Pues bien, en este artículo intentaremos resolverte esta duda y también te hablaremos, por encima, de los nuevos tipos de núcleos presenten en las últimas generaciones de tarjetas gráficas.

Qué son los núcleos

tipos nucleos

Son el elemento que permite a un procesador para ordenadores la realización de múltiples tareas de manera eficiente. Cuanto mayor será la cantidad de núcleos de una CPU, mayor será la potencia que nos puede ofrecer.

El funcionamiento de los núcleos de una GPU tienen un funcionamiento bastante similar a la CPU, pero son menos potentes y menos «inteligentes». Una GPU requiere de una gran cantidad de potencia bruta para poder procesar todas las tareas. Así, en vez de concentrar la potencia en unos pocos núcleos, se basan en muchísimos núcleos que permiten trabajar en muchas tareas de manera paralela.

Imaginemos que queremos jugar a un juego en una resolución 1080p. Los núcleos de la GPU deben de procesar los píxeles que veremos en pantalla de manera individual. Un proceso que se debe realizar varias veces por segundo para ofrecer una experiencia fluida. Este es, en grandes pinceladas, porque se necesitan muchos núcleos «menos» potentes para obtener una experiencia fluida.

Qué son los NVIDIA CUDA Cores

Es una arquitectura de computación en paralelo y un modelo de programación que permite un importante aumento de rendimiento en la computación para aprovechar toda la potencia de una unidad de procesamiento gráfico (GPU). Los CUDA Cores son diseñados por parte de NVIDIA con la finalidad de permitir a los desarrolladores de software disponer de un mejor control sobre los recursos físicos.

Los CUDA Cores son un conjunto de procesadores en paralelo que se encargan del procesamiento de los datos que entran y salen de la GPU. Estos núcleos realizan cálculos complejos con una facilidad mucho mayor que una CPU. Se encuentran dentro de la GPU y principalmente se ocupan de renderizar objetos 3D, tareas de iluminación y sombreado de una escena, realización de cálculos grandes y complejos, etc.

Nos referimos a computación en paralelo al proceso que permite que todos los núcleos trabajen en conjunto para resolver una tarea. Esto les permite ser mucho más potentes y eficientes a la hora de manejar y computar datos grandes y complejos. Adicionalmente tienen la capacidad de realizar varias tareas al mismo tiempo.

Cualquier programador que trabaje con los lenguajes C o C++ puede tener un gran control sobre la asignación de recursos. Gracias a la plataforma CUDA se ha conseguido que API como OpenACC y OpenCL aumente en el uso.

Algo bueno de los CUDA Cores y de la API CUDA es la gran flexibilidad que ofrecen a los desarrolladores. Esto permite que estos elementos sean utilizados más allá del gaming.

gpu nvidia cuda cores

Qué son los AMD Stream Processors

Denominación que le da AMD a los núcleos de una GPU y al modo de diseño y construcción de los mismos. Tienen su origen en 2005, cuando AMD desarrolla los AMD FireStream para la gama de productos Radeon. Esta nueva línea estaba totalmente enfocada a los Stream Processors, que anteriormente se denominaban FirePro.

Tienen los Stream Processors la misión de procesar las instrucciones que se destinan a la GPU. Las instrucciones están directamente relacionadas con los gráficos y el renderizado de los mismos. Se encarga del dibujado de modelos 3D, generación de la iluminación ambiental, etc. Los Stream Procesors lo que hacen es trabajar en paralelo, para poder completar la tarea en el menor tiempo posible.

gpu amd stream processors

Stream Processors vs CUDA Cores

Los Stream Processors de AMD y los CUDA Cores de NVIDIA no ofrecen la misma potencia. No tiene porque una gráfica de AMD y otra de NVIDIA, a misma cantidad de núcleos, ofrecer el mismo rendimiento. Esto se debe a que cada uno hace uso de un diseño y una estructuración de los núcleos diferente. Debemos destacar que los CUDA Cores sobresalen en la mayoría de las tareas a las que son sometidos.

Comparación de gráficas

Realizar una comparativa entre los AMD Stream Processros y AMD CUDA Cores es algo realmente complicado. Ambos desarrolladores de GPU hacen uso de arquitecturas, diseños y procesos diferentes, por lo que compararlas es casi imposible. Incluso, tener una tarjeta gráfica AMD y otra NVDIA con el mismo número de núcleos, no tendrán el mismo rendimiento. Pero es que además, AMD y NVIDIA ofrecen diferentes tipos de tarjetas gráficas según las necesidades del mercado, así que el diseño puede cambiar entre modelos.

La única manera realista de comparar las gráficas de AMD y de NVIDIA, es probándolas. Simplemente podemos realizar un benchmark de gráficas del mismo rango y comparar el resultado final. Esto tampoco quiere decir que los núcleos de AMD y de NVIDIA sean más potentes que los de su competidor. Debemos tener en cuenta que hay juegos más optimizados para gráficas NVIDIA y otros más optimizados para gráficas AMD.

Cómo medir la diferencia

Existen una enorme cantidad de factores por los cuales el rendimiento de la GPU no siempre será el mismo. Al mismo tiempo, estos factores impiden que la comparativa entre los Stream Processors de AMD y los CUDA Cores de NVIDIA se puedan comparar sin más. La única manera de poder realizar una comparativa efectiva es ver el rendimiento de las GPU.

No solo afectan los núcleos y su construcción, son muchos los factores que implican diferencias de rendimiento. Uno de los factores más notables son los drivers, que pueden afectar mucho al rendimiento de una GPU. Además, elementos externos que no tienen mucho que ver directamente con la gráfica, como pueda ser el chasis usado y el flujo de aire que ofrezca. También nos veremos afectados por el polvo acumulado en los ventiladores de la gráfica o el procesador del sistema.

Otro de los factores que afecta al rendimiento de una tarjeta gráfica es el software, para nuestro caso, los videojuegos. Dependerá de si el juego está bien optimizado, si los drivers son lo suficientemente buenos e incluso como se ha utilizado el motor gráfico, entre otros.

Diferencias físicas

Aunque todo afecta a que exista una diferencia de rendimiento, donde más se denota la diferencia es en los aspectos físicos. El principal punto de diferencia entre ambos es la litografía en la que se basan sus GPU. La mayor diferencia está en el «tamaño» de los transistores que se utilizan para conformar los núcleos. Usar litografías diferentes supone que exista una diferencia de rendimiento, pero es que aún usando el mismo proceso, como cada uno tiene una manera diferente de construir los núcleos, existirá diferencia.

NVIDIA actualmente hace uso del nodo de 8nm de Samsung, que es una optimización del nodo de 10nm. AMD por su parte hace uso del proceso de 7nm de TSMC. Según la teoría, el nodo de TSMC es mejor en cuanto a rendimiento y eficiencia que el de Samsung. Aunque esto es muy difícil de comparar, ya que realmente el «tamaño» del nodo ya no mide el transistor, simplemente es una referencia enfocada en la eficiencia.

cuda cores stream processors

Más allá de los AMD Stream Processors y NVIDIA CUDA Cores

Hasta hace unos años solo teníamos que conocer los AMD Stream Processors y NVIDIA CUDA Cores en una GPU para elegir una solución de uno u otro fabricante. Pero todo esto ha cambiado, ya que actualmente hay otros tipos de núcleos incluidos en las gráficas. NVIDIA añadió en 2018 los Tensor Cores y RT Cores en sus tarjetas gráficas y AMD en 2020 introdujo los Ray Accelerators en sus tarjetas gráficas. Vamos a ver que son (por encima) estos nuevos núcleos.

Qué son los NVIDIA Tensor Cores

Son núcleos específicamente desarrollados por parte de NVIDIA para la Inteligencia Artificial y el Aprendizaje Profundo. Estos núcleos se introdujeron por primera vez en las GPU Voltas destinadas al sector profesional y en las GPU Turing para el sector del gaming. Actualmente se utilizan los Tensor Cores de NVIDIA para la tecnología NVIDIA DLSS (Deep Learning Super Smapling) que permite obtener mayor tasa de fotogramas por segundo gracias al escalado de imagen potenciada por la inteligencia artificial.

Los CUDA Cores de NVIDIA se desarrollaron para poder ejecutar software de manera paralelizada, siendo excelente durante años. Pero para la Inteligencia Artificial y el Aprendizaje Profundo basados en redes neuronales se requieren de nuevas soluciones específicas. De ahí el desarrollo de los Tensor Cores de NVIDIA.

NVIDIA Ampere introduce una gran cantidad de mejoras a los Tensor Cores, que los hacen mucho más sencillos de utilizar para el desarrollo de modelos de aprendizaje profundo y ofreciendo mucha más eficiencia. Los Tensor Cores introducidos en la arquitectura Ampere suponen un salto de hasta 20 veces más de rendimiento con respecto a la primera generación de estos núcleos introducida en Volta.

Unos núcleos que se han desarrollado para poder manejar operaciones convolucionales y la multiplicación de matrices. Estos dos elementos son base de los algoritmos del aprendizaje profundo. Algo que explota perfectamente la tecnología DLSS desarrollada para obtener un rendimiento adicional en los juegos y compensar la pérdida de rendimiento cuando se hace uso de la tecnología Ray Tracing.

nvidia tensor cores

Qué son los NVIDIA RT Cores

Son unos núcleos diseñados para el procesamiento de trazados de rayos en tiempo real. Los NVIDIA RT Cores están pensados para calcular el trazado de los rayos de luz en tiempo real y la interacción con los objetos del entorno. Destacar que la tecnología de trazado de rayos se utilizaba en el sector profesional, pero requería una gran potencia de cómputo y era imposible usarla en videojuegos.

Los RT Cores están pensados para realizar los complejos cálculos requeridos para el trazado de rayos en videojuegos en tiempo real. Actualmente, los RT Cores introducidos en la arquitectura Ampere son más potentes y eficientes que los implementados en las GPU Turing.

Pero, los RT Cores no actúan solos, se complementan con los Tensor Cores. Aún con los RT Cores, la tarea es tan pesada y compleja que el rendimiento en los videojuegos se ve muy afectado. Es normal una pérdida de FPS de hasta el 50% usando la tecnología de trazado de rayos. Los Tensor Cores de NVIDIA les ayudan, haciendo un escalado de imagen mediante Inteligencia Artificial. Esto permite compensar hasta el 90% de la cantidad de FPS perdidos por usar el trazado de rayos.

nvidia ray tracing cores

Qué son los AMD Ray Accelerators

Son núcleos específicos desarrollados por parte de AMD para la aceleración de trazado de rayos en tiempo real. Estos núcleos de AMD son la alternativa a los NVIDIA RT Cores. Destacar que la primera versión de los Ray Accelerators se lanzó en 2020 con las tarjetas gráficas RX 6000 Series basadas en la arquitectura RDNA2. Esto hace que estén al menos una generación por detrás con respecto a las soluciones de NVIDIA.

Aunque NVIDIA anunció a bombo y platillo los RT Cores, curiosamente AMD no ha dado mucha información de los Ray Accelerators. Como decíamos, AMD no ha dado detalles del funcionamiento de este tipo de núcleos. Es más, durante la presentación de las gráficas RDNA2 la compañía apenas los menciono de pasada. Incluso hay dudas de su rendimiento, ya que no hay juegos que estén optimizados para estos núcleos.

amd raytracing accelerators

Palabras finales sobre los AMD Stream Processors y los NVIDIA CUDA Cores

El diseño de los núcleos de AMD y NVIDIA es muy diferente, ya que, aunque la base es la misma, ambos los implementan de manera diferente. Otros elementos, como la litografía, las API que soportan o el tipo de interfaz. Además, ahora tenemos nuevos tipos de núcleos para tareas específicas, algo que hace muy difícil realizar una comparativa de los núcleos. Al final, para compararlos debemos ver el rendimiento que ofrecen en juegos y el consumo energético, entre otros parámetros.

Te ofrecemos una comparativa de las mejores tarjetas gráficas gaming

Se considera en la industría, que, por las tecnologías y su construcción, las GPU de NVIDIA están un paso por delante de las GPU de AMD. Esto quiere decir, si lo queremos ver así, que los CUDA Cores son mejores que los Stream Processors. Pero esto puede cambiar en breve, ya que AMD y NVIDIA están trabajando en nuevas GPU MCM. Quien no sepa que es una GPU MCM, básicamente es una GPU conformada por varias GPU «pegadas». Esto vendría a imitar el diseño de los procesadores AMD Ryzen, pero aún es pronto para ver que ofrecerán y cuál será su desempeño.

¿Qué tipo de núcleos consideras que son mejores, los NVIDIA CUDA Cores o los AMD Stream Processors?

Roberto Solé

Técnico Superior en Electrónica y en Energías Renovables, Técnico en Prevención de Riesgos Laborales y Técnico Electricista de Baja Tensión apasionado del hardware y las nuevas tecnologías, además de hodl de Bitcoin. Hace tiempo cruce el Stargate y desde entonces me dedico a la exploración.
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