Digamos que estoy usando una computadora, cualquier computadora moderna típica más o menos. Un controlador de dispositivo es responsable de todo lo que veo en mi pantalla, incluso cuando escribo esto, la pantalla se actualiza (esto, por supuesto, está dentro del alcance de un sistema operativo, como Windows).
Bajemos esto al nivel donde al hardware no le importa si hay un kernel o no, y solo toma las instrucciones.
Básicamente, ¿cómo las GPU "saben" exactamente cómo hacer todo? ¿Controla básicamente un controlador cada función minúscula, intrínseca o de hardware a nivel de circuito posible o necesaria para calcular datos binarios para su visualización utilizando instrucciones especiales que proporciona un controlador?
Si es así, ¿la GPU usa un lenguaje "especial" o "ensamblado" para entender las instrucciones que se le envían como lo hace una CPU?
Tengo demasiados vacíos en mi conocimiento, y hay un "misterio" desagradable detrás de las GPU y al acceder a ellas directamente a través del hardware.
Por ejemplo, una GPU y una CPU deben poder conectarse de alguna manera, por lo que es posible acceder a una GPU a través del ensamblaje de la CPU e implementar los buses de datos / direcciones correctos. No hay forma de que un proveedor de dispositivos pueda hacer que sea imposible acceder a la GPU fuera de un controlador, ya que un controlador también es un código compilado, y la GPU, como un circuito programable, debe funcionar con instrucciones binarias.
He hecho este tipo de preguntas y se eliminan violentamente rápido sin respuesta por qué en muchos sitios, ¿cuál es el gran misterio / secreto aquí? Es una pieza de hardware en una placa base a la que se accede como cualquier otra.
Entonces realmente ... asumiendo que esta es una pregunta "correcta" con respecto al software y hardware, cualquiera puede acceder directamente a una GPU sin archivos específicos del proveedor, porque los archivos no son mágicos.
Entonces, ¿cómo se "programan" las GPU desde la perspectiva directa del hardware en el nivel específico del hardware?