¿En qué se diferencian los controladores de GPU de otros controladores de dispositivo que permiten optimizaciones de rendimiento?


12

Parece que los dos grandes fabricantes de GPU están constantemente lanzando controladores actualizados que tienen un pequeño aumento de rendimiento aquí y allá. Cuando son para el mismo juego, apuesto a que se acumula con el tiempo.

Con eso en mente, ¿por qué nunca escuchamos acerca de AMD o Intel que modifican los controladores de CPU para una determinada aplicación o versión de Windows o algo así?


1
Con respecto a los VTC: esto no es ambiguo. Hay un razonamiento específico sobre lo que se modifica y por qué, con los controladores de GPU (y CPU).
Ben Richards

1
Los vendedores de CPU lanzan actualizaciones. Véase, por ejemplo, downloadcenter.intel.com/… (haga clic en firmware en el extremo derecho)
derobert

@derobert - Interesante, obviamente Intel no tiene intención de repetir el fiasco de Pentium. Sin embargo, estas actualizaciones son para el microcódigo del procesador y no son "controladores de CPU". El microcódigo se ejecuta a un nivel inferior al código de máquina del kernel y los archivos .exe .
aserrín

@sawdust, el microcódigo de la CPU (al menos en parte) es responsable de traducir las instrucciones x86 que recibe la CPU en las operaciones reales que realiza. Entonces, en realidad es algo similar a los controladores de gráficos. Por supuesto, Intel se preocupa mucho más por la corrección que nVidia, por lo que sus actualizaciones probablemente sean en su mayoría correcciones de errores.
derobert

Respuestas:


13

En primer lugar, a veces hay casos en los que se lanza un parche de controlador que podría aumentar el rendimiento o aumentar la eficiencia para una determinada CPU. Pero obviamente estás haciendo esta pregunta porque simplemente no es tan común. Sin embargo, lo que hacen las optimizaciones del controlador de CPU es similar en concepto.

Una GPU es un circuito muy complicado. Existe para descargar ciertas tareas que toman mucho tiempo en una CPU. Reciben conjuntos de datos e instrucciones sobre qué hacer con estos datos. La GPU debe poder ordenar los datos de manera manejable e interpretar las instrucciones para indicarle qué hacer. Luego, debe realizar una serie de operaciones matemáticas en los datos. Después de eso, debe volver a ordenar los datos y enviar los resultados al sistema operativo cuando esté completo. Esta es una descripción muy simplista de la tubería de gráficos por computadora . Hay varios pasos que se deben tomar antes de que los datos estén listos para el programa.

Ahora, como la GPU debe aceptar conjuntos de instrucciones e implementar operaciones matemáticas muy complicadas en el hardware, habrá ciertas cosas que se sabe que se ejecutan más rápido o más lento a través de esta tubería. Parte de escribir un controlador para un dispositivo es interpretar los datos y las instrucciones enviadas al dispositivo, traduciéndolo para que el dispositivo pueda entenderlo. Cuando un controlador hace esto, puede tomar decisiones sobre cómo enviar los datos al dispositivo para que las tareas tomen el menor tiempo posible. Sin embargo, un controlador generalmente no tiene mucha información sobre lo que está haciendo el programa que está atendiendo. Todo lo que recibe del programa son las llamadas a la API ("dibujar una línea", "colorear un punto", "sombrear un triángulo", etc.). Entonces, las suposiciones que puede hacer no son muy buenas.

Cuando AMD o nVidia publican una actualización de controlador que contiene mejoras de rendimiento para juegos específicos, lo que esto significa es que el controlador detectará qué juego está llamando al hardware de gráficos y tendrá una serie de suposiciones codificadas que se conocen sobre cómo es el juego. implementado. Puede ser que el juego tenga muchas imágenes de textura que deben intercambiarse rápidamente dentro o fuera de la memoria, o que haga una gran combinación de colores sobre la marcha para producir ciertos efectos de iluminación. Por lo general, lo que hará un juego es implementar pequeños programas (llamados "sombreadores") que describen cómo realizar estos cálculos, y se enviarán a la GPU para ejecutarlos. Si el conductor sabe cómo el juego usa el hardware, puede organizar los datos y elegir conjuntos de instrucciones que realicen la tarea deseada de una manera que aumente el rendimiento y la eficiencia.

Sin embargo, a veces, después de que se ha enviado el producto, se pueden encontrar errores en alguna parte de la GPU. Puede ser lo suficientemente oscuro como para haberse perdido en la validación cuando se diseñó el chip, pero se puede encontrar que causa un comportamiento defectuoso o indeseable (o incluso se bloquea) en un juego en particular que lo golpea. En ese caso, el controlador detectará este estado defectuoso y lo solucionará, ya sea descargando algunos cálculos en el lado de la CPU o cambiando la forma en que alimenta los datos a la GPU para que no entre en este estado. Estos, nuevamente, serán lanzados en forma de actualizaciones de controladores.

Básicamente, no está cambiando el rendimiento del hardware en sí, solo está cambiando la forma en que usa el hardware, para que pueda operar de manera más eficiente y rápida en el mismo conjunto de datos.


Sobre los ingenieros de controladores que entienden cómo se implementa un juego, esto me hace preguntarme si esas pantallas de bienvenida de Nvidia en algunos juegos son más que solo anuncios.
Louis

2
@Louis No son solo anuncios. Se deben a que NVidia mantiene relaciones especiales con ciertos estudios de juegos y ofrece asistencia a los desarrolladores para optimizar el código del juego para el hardware de gráficos NVidia. AMD también hace esto (ocasionalmente verá un logotipo de AMD en un juego), pero NVidia históricamente ha tenido una presencia mucho mayor.
Ben Richards

Al leer esto nuevamente, veo que es una gran respuesta y dónde pertenece la marca de verificación. Desearía que todas las respuestas fueran tan didácticas en sus explicaciones.
Louis

¿Integraría esto ( más números ) como ejemplo para otra recompensa?
Louis

10

Los "controladores de CPU" raramente existen, y ciertamente no como módulos cargables. El "controlador de CPU" ocasional se necesitaría para alguna variación del control multinúcleo o el manejo de interrupciones (por ejemplo, los núcleos dobles AMD necesitaban un controlador WinXP para una utilización completa). De lo contrario, la mayoría de los sistemas operativos se configuran y crean para acceder a la CPU directamente. Si aparece un problema y es grave, el código del kernel se parchea y se lanza una actualización del kernel.

Las GPU ya no son solo periféricos; Se han convertido en coprocesadores. El "controlador de GPU" no solo proporciona acceso al dispositivo, sino que también incluye algoritmos de procesamiento (es decir, subprogramas de gráficos) para la GPU empaquetada en el controlador. El tamaño de estos "controladores" es un regalo / pista. Son estos algoritmos / subprogramas los que se están mejorando.


2
Eso explica por qué las descargas de controladores para mi tarjeta ahora superan los 200 MB.
Louis

Realmente dudo que haya 200 MB de código en esos controladores. Me sorprendería si fuera más que un puñado de MB con respecto a todos estos algoritmos. >.>
Mehrdad

1
@Mehrdad por curiosidad abrí el instalador EXE con 7-zip para el controlador de Nivida. la carpeta Display.Driver tiene un tamaño de 147 MB, hay un archivo exe que tiene 31 MB, cualquier otro archivo de más de 660 KB es un archivo DLL.
Scott Chamberlain

@Scott: Ese exe es casi seguro un archivo de más archivos que contienen el código real . Espero que los archivos reales sean un puñado de megabytes como máximo ... modifiquen los recursos que puedan contener, que no son código.
Mehrdad

0

No son solo los controladores, es la GPU misma. Una GPU está especializada en varios tipos de cálculos (por ejemplo, FFT) y manipulación de memoria. Puede funcionar en paralelo en la mayoría de las tareas dadas y hacerlo más efectivo que una CPU de uso general.

Con un mejor conocimiento de los programas en ejecución, puede optimizar la manipulación de la memoria o los procesos de cálculo para estos programas. La GPU es muy versátil en cómo hacer cálculos y realizar manipulaciones de memoria, por lo que aún debe escribirse el firmware o controlador perfecto . ;) Hay mucho espacio para mejoras.

La mayoría de los otros dispositivos no son tan versátiles en su uso. La mayoría del hardware en una PC tiene que ejecutarse en sus especificaciones, seguir protocolos, por lo que el controlador no necesita ser optimizado.

A, se olvidó de la CPU. > _ <La CPU se puede optimizar. La mayoría de los nuevos modelos de CPU tienen un firmware programable, pero el aumento de rendimiento no vale la pena. Solo se usa para corregir errores en el proceso de compilación de hardware.


"La mayoría de los nuevos modelos de CPU tienen un firmware programable", explique.
Tim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.