Dentro del Apple M1 hay una GPU increíblemente extraña
Contexto; en contexto: Apple mantiene en secreto al público las funciones internas de la familia de procesadores M1, pero ha sido traducido por desarrolladores dedicados para crear controladores de código abierto y una distribución de Linux, Asahi Linux, para Mac M1. Durante el proceso, han descubierto grandes características.
Alyssa Rosenzweig buscó recientemente desarrollar un controlador de gráficos de código abierto para M1 encontró una extrañeza En el proceso de renderizado de la GPU M1. Representó geometrías 3D cada vez más complejas y terminó con un conejito que le quitó el error a la GPU.
Básicamente, y tenga en cuenta que esto y todo lo demás que voy a decir es una simplificación excesiva, el problema comienza con la poca disponibilidad de memoria de la GPU. Es un potente procesador de gráficos, pero al igual que el iPhone SoC de la serie A, tiene un ancestro común, requiere atajos de teclado para mantener la eficiencia.
En lugar de renderizar directamente en el búfer de cuadros como un procesador de gráficos separado, M1 realiza dos rondas del cuadro: la primera encuentra los vértices y la segunda hace todo lo demás. Aparentemente, la segunda ronda es mucho más intensa, por lo que el equipo dedicado a los pasajes segmenta el cuadro en mosaicos (básicamente mini-cuadros) y la segunda ronda se toma mosaico a la vez.
El mosaico resuelve el problema de los recursos de memoria insuficientes, pero para que los cuadros se fusionen más tarde en un cuadro, la GPU debe mantener un búfer de todos los datos específicos de la punta. Rosenzweig notó que cada vez que este búfer estaba lleno, la representación no funcionaba. Mira el primer conejito arriba.
Una presentación de Apple explica que cuando el búfer está lleno, la GPU produce una representación parcial, es decir, la mitad del conejito. En el software de Apple, ese búfer se llama búfer de parámetrosun nombre aparentemente tomado de la documentación de PowerVR de Imagination.
Imaginación Arm Arm es una empresa con sede en el Reino Unido que, al igual que Arm, diseña procesadores que licencia a otras empresas. Apple firmó un acuerdo con la empresa a principios de 2020 en virtud del cual Apple licenciará una amplia gama de sus derechos de propiedad intelectual. Claramente, el M1, lanzado a fines de 2020, utilizará su arquitectura de GPU PowerVR como una especie de base de GPU.
De todos modos, volvamos a la pareja de conejitos. Como puede suponer, se pueden agregar renderizaciones parciales para renderizar el conejito completo (pero, por supuesto, con una docena de pasos adicionales).
Pero esta representación quieto no es del todo correcto. Puedes ver objetos en la pata del conejito. Resulta que esto se debe a que las diferentes partes del cuadro se dividen entre el búfer de color y el búfer de profundidad, y este último funciona mal cuando se cargan los renderizados parcialmente.
La configuración inversa del controlador de Apple soluciona el problema y finalmente puede renderizar el conejito (abajo).
No es solo el controlador de gráficos de código abierto de Rosenzweig para el M1 el que salta a través de todos estos bordes para generar una imagen: así es como funciona la GPU. Su arquitectura probablemente no fue diseñada para el renderizado 3D, pero Apple, no obstante, la ha convertido en algo que puede competir con las GPU independientes más recientes. si no los supero del todo, como afirma Apple. Frio.
Para obtener una explicación más detallada (y técnicamente precisa) de la representación de conejos y otros estudios de M1, asegúrese de consultar blog de rosenzweig y asahi linux sitio web.
Saldo de cabecera: albañilería
Especialista web. Evangelista de viajes. Alborotador. Fanático de la música amigable con los hipster. Experto en comida