La semana pasada, había escrito un artículo sobre especificaciones oscuras de GPU. Si bien expuso algunas de las partes más confusas de las especificaciones de las tarjetas de video, varios lectores se interesaron por el artículo y dijeron que podría haber sido más detallado. Solo sería apropiado responder más preguntas sobre los componentes de la tarjeta gráfica que no necesariamente fueron respondidas por ese artículo en esta pieza. Sin más preámbulos, aquí hay algunas respuestas a las preguntas más urgentes sobre las especificaciones de la tarjeta de video que no parecen estar completamente explicadas en términos que todos puedan entender en la Web.
¿Qué es CUDA y qué es un núcleo CUDA?
Arquitectura de dispositivo unificado de cómputo (CUDA) es una función en la mayoría de las tarjetas gráficas Nvidia más nuevas que permite que la computadora use una parte de la GPU (o incluso la GPU completa) como un «asistente» del procesador. Las GPU tienen mucho más poder que las computadoras, pero históricamente su arquitectura ha sido más optimizada para calcular distancias de dibujo y polígonos (que es la razón por la que se colocan en las tarjetas gráficas en primer lugar). CUDA transforma la GPU en un geek de las matemáticas que puede procesar números muy rápidamente, utilizando la increíble potencia de una GPU para otras cosas además de simplemente renderizar y mostrar gráficos en la pantalla.
En el artículo vinculado al principio, expliqué que SETI@Home aprovecha CUDA al usar tarjetas gráficas para realizar cálculos. Este es solo un ejemplo de cómo se puede usar CUDA para hacer cosas asombrosas. CUDA también se puede usar para transcodificar video (convertirlo de un formato a otro) usando un códec especial que se comunica con el hardware. El codificador de Nvidia se conoce como NVENC y es una forma poderosa de codificar video mucho más rápido utilizando el motor de video de la tarjeta gráfica en lugar de agotar su CPU. Si es desarrollador y está interesado en incluir NVENC en su programa, puede ver los recursos de Nvidia aquí.
Bien, ahora sabemos qué es CUDA. ¿Qué pasa con los núcleos CUDA?
A Núcleo CUDA es un segmento de la GPU que se puede utilizar para fines de CUDA. Es la pieza de la GPU que algunos programas de monitoreo llaman «Video Engine». Cada núcleo es una pequeña parte de la arquitectura completa de la GPU que se puede usar tanto para el renderizado 3D tradicional como para funciones específicas de CUDA. En la mayoría de las tarjetas gráficas, la GPU completa está disponible para el trabajo CUDA. Esto significa que la cantidad de núcleos CUDA en la GPU en realidad define cuántos núcleos tiene toda la GPU.
¿Por qué las GPU tienen tantos núcleos?
Si bien las CPU actuales suelen tener de cuatro a ocho núcleos, existen tarjetas gráficas con más de 5000 núcleos! ¿Por qué es eso y por qué las CPU no pueden tener una cantidad tan increíble de núcleos?
Tanto la GPU como la CPU se fabricaron para diferentes propósitos. Mientras que una CPU reacciona al código de la máquina para comunicarse con varias piezas de hardware en su computadora, la GPU está hecha para un solo propósito específico: se supone que debe convertir los polígonos en las bellas escenas que vemos en entornos acelerados en 3D y luego traducir todo esto en una imagen 60 veces o más por segundo. Es una tarea difícil para una CPU, pero dado que la GPU tiene procesadores poligonales compartimentados, puede dividir la carga de trabajo entre todos sus núcleos para generar un entorno gráfico en unos pocos milisegundos.
Ahí es donde entran los núcleos. Una GPU necesita todos esos núcleos para dividir las tareas masivas en pequeñas partes, cada núcleo procesa su propia parte de la escena individualmente. Las aplicaciones que usan CPU (como su navegador) no se benefician de tener una cantidad tan enorme de núcleos a menos que cada núcleo tenga la potencia de una unidad de procesamiento completa. Su navegador se basa en el acceso rápido a la información en lugar de la compartimentación de tareas. Cuando carga una página web o lee un archivo PDF, solo necesita un flujo de procesamiento para cargar todo eso.
¿Más RAM hace que una tarjeta de video sea mejor?
La memoria RAM es un área gris un poco extraña con las tarjetas de video. Si bien es bueno tener la mayor cantidad de RAM posible, también debe poder usar toda esa RAM. Una tarjeta de video con 1024 MB de RAM y un bus de 192 bits de ancho funcionará mucho mejor que una tarjeta de video con 2048 MB de RAM y el mismo bus.
Como expliqué en el artículo anterior, la tarjeta de video de 2048 MB experimentará algo llamado «cuello de botella de ancho de banda» porque el bus (el camino por el que viajan los datos) no es lo suficientemente ancho para transportar una cantidad suficiente de datos en una corta cantidad de tiempo.
En resumen, no, más RAM no es necesariamente mejor si la tarjeta de video no tiene un bus ancho. Aquí está mi guía para el ancho de bus adecuado: su tarjeta de video debe tener un máximo de ocho veces la cantidad de RAM en megabytes que la cantidad de bits en el bus. Por ejemplo, una tarjeta de 1024 MB debería tener al menos un bus de 128 bits (1024/8 = 128). Entonces, para una tarjeta de 2048 MB, recomiendo un mínimo de 256 bits.
Si aún tiene más preguntas, ¡asegúrese de hacerlas en los comentarios a continuación!