Resumen:
Qualcomm presentó recientemente el primer lote de parches de controladores del kernel de Linux de código abierto para la nueva GPU Adreno 850, y solo pasó un día desde el anuncio oficial del chip hasta que el código relevante ingresó al proceso de desarrollo del kernel de Linux. Esto significa que Qualcomm está acelerando aún más el desarrollo de controladores de código abierto para la nueva generación de GPU Adreno e incluso comenzando a promover el soporte principal de Linux inmediatamente después del debut oficial del hardware.

La plataforma de destino compatible con este controlador es el SoC de Qualcomm con nombre en código "Hawi", que actualmente la industria cree que es el recién lanzado Snapdragon 8 Elite Extreme Gen 6. El procesador utiliza el nuevo núcleo de gráficos Adreno 850, y los ingenieros de Qualcomm enviaron el código de inicialización de la GPU relevante a la lista de correo del kernel de Linux el día después del lanzamiento del chip.
De hecho, la plataforma Hawi no apareció de repente en la comunidad Linux. En los últimos meses, Qualcomm ha enviado sucesivamente otros códigos de soporte de hardware para Hawi al kernel de Linux, por lo que este parche del controlador de GPU Adreno 850 es en realidad una mejora adicional basada en el soporte de plataforma anterior.
El parche enviado esta vez apunta principalmente al controlador de gráficos MSM en el kernel de Linux, que es el marco principal de controlador de código abierto de Qualcomm Adreno GPU. Aunque todavía se encuentra en las primeras etapas de desarrollo y revisión del código, lo importante es que Adreno 850 ha comenzado a ingresar al sistema de controladores principal de Linux, en lugar de esperar mucho hasta que se lance el producto antes de que la comunidad lo complemente.
Además de Adreno 850, este lote de parches también agrega soporte preliminar para Adreno 845. Adreno 845 tiene el nombre en código "Maili". Su arquitectura de hardware es muy similar a la Adreno 850, pero carece de un nuevo núcleo de matriz MALU. Por lo tanto, Qualcomm puede establecer compatibilidad con controladores para las dos GPU y al mismo tiempo compartir una gran cantidad de código básico.
Adreno 850 pertenece a la arquitectura de GPU Adreno 8xx de nueva generación de Qualcomm. Según la información revelada en este parche, comparte parte de la arquitectura central y el diseño de corte con la generación anterior Adreno 840, al mismo tiempo que realiza una serie de mejoras a nivel de hardware.
Uno de los cambios importantes es el nuevo núcleo de matriz MALU. Qualcomm utiliza esta unidad de hardware para acelerar tipos específicos de tareas de cálculo matricial, lo que también es uno de los cambios importantes en el Adreno 850 en comparación con la arquitectura de GPU anterior. Sin embargo, aún no se han publicado datos detallados sobre los escenarios de aplicación específicos de MALU, cuánta mejora de rendimiento puede aportar y qué API de software eventualmente abrirá a las aplicaciones.
Qualcomm dijo que es necesario agregar más soporte relacionado con MALU en el futuro, y que no solo involucra el controlador del kernel de Linux, sino que también requiere la cooperación del controlador de gráficos del espacio de usuario de Mesa. Por lo tanto, incluso si el soporte básico de GPU de Adreno 850 ingresa a la línea principal de Linux esta vez, la potencia informática de la matriz MALU no estará disponible de inmediato.
Además de la unidad informática, también se ha ajustado el sistema de gestión de energía del Adreno 850. El parche muestra que la GPU agrega un nuevo riel de alimentación para suministrar energía a algunos módulos de hardware de la GPU. Al mismo tiempo, la Unidad de administración de GPU, o GMU, que es responsable de la administración del estado de energía de la GPU, ahora tiene un área de control de energía GDSC independiente, y esta parte está alimentada por otro riel de energía llamado MxG.
Estos cambios pueden parecer detalles de hardware de bajo nivel, pero son muy importantes para los controladores de Linux. La GPU no solo necesita completar los cálculos gráficos, sino que también necesita ajustar dinámicamente el voltaje, la frecuencia y el estado de la fuente de alimentación entre los estados inactivo, de carga baja y de carga alta. Por lo tanto, los cambios en el hardware de administración de energía deben manejarse correctamente en el controlador del kernel; de lo contrario, pueden afectar el consumo de energía, la estabilidad e incluso el funcionamiento normal de la GPU.
El lote actual de códigos Adreno 850 y Adreno 845 aún no ha ingresado a la versión del kernel de Linux lanzada oficialmente y aún se encuentra en la etapa de revisión del código. Al mismo tiempo, para que los dispositivos equipados con Adreno 850 realmente logren una aceleración de hardware completa en Linux, se debe contar con firmware, controladores de espacio de usuario de Mesa y soporte relacionado con la pantalla.
El soporte del espacio de usuario de la GPU Qualcomm Adreno en el ecosistema Linux se basa principalmente en Freedreno y Turnip en el proyecto Mesa. Freedreno es responsable de interfaces gráficas como OpenGL, mientras que Turnip es responsable de Vulkan. Para Adreno 850, el soporte posterior de Mesa determinará el rendimiento final de los gráficos de Linux junto con el trabajo de este controlador del kernel.
Actualmente, las pruebas de Qualcomm de Adreno 850 aún se encuentran en la etapa inicial, por lo que este parche no puede entenderse como "Adreno 850 ya puede ejecutarse normalmente en Linux". El código del controlador acaba de comenzar a ingresar al proceso de desarrollo principal y todavía quedan muchos pasos por recorrer antes de que los usuarios comunes puedan obtener una aceleración de gráficos completa en dispositivos reales.
Sin embargo, a juzgar por el momento, las acciones de Qualcomm siguen siendo bastante activas. En el pasado, las nuevas GPU a menudo tenían que esperar mucho tiempo para obtener un controlador Linux completo de código abierto. Sin embargo, el Adreno 850 tiene un parche de soporte del kernel de Linux solo un día después de que se anunció oficialmente el hardware, lo que indica que Qualcomm está aumentando significativamente su inversión en Linux principal y en la ecología de gráficos de código abierto.
Esta tendencia es básicamente consistente con la reciente dirección de Qualcomm de promover la compatibilidad con Snapdragon X2 Linux. Actualmente, Qualcomm no solo continúa enviando controladores de Linux para la GPU Adreno X2-85 en la plataforma de PC, sino que también está promoviendo la compatibilidad con Freedreno y Turnip en Mesa, de modo que Snapdragon X2 tendrá gradualmente una pila de gráficos Linux completa.
Para los desarrolladores de Linux, el hecho de que Adreno 850 pueda ingresar al proceso de desarrollo de controladores de código abierto tan rápidamente significa que el ciclo de soporte de hardware de la plataforma móvil insignia de Qualcomm en el ecosistema Linux puede acortarse aún más en el futuro. Para toda la comunidad de código abierto, esto también significa que los desarrolladores pueden obtener antes la información del hardware y el código del controlador de la nueva GPU, promoviendo así simultáneamente la adaptación de la pila de gráficos antes y después del lanzamiento del nuevo chip.
En la actualidad, la compatibilidad con Linux de Adreno 850 aún se encuentra en una etapa muy temprana y funciones como el núcleo de matriz MALU, el controlador de gráficos Mesa, el firmware y la salida de pantalla aún deben mejorarse en el futuro. Sin embargo, Qualcomm presentó un parche de controlador de código abierto de GPU solo un día después del lanzamiento del nuevo chip, lo que ha demostrado que está tratando de mantener la nueva generación de GPU Adreno más estrechamente sincronizada con el ecosistema principal de Linux desde el comienzo del lanzamiento del producto.
Artículos relacionados:
Qualcomm amplía el soporte del kernel de Linux para la GPU Snapdragon X2 Se ha enviado el parche del controlador Adreno X2-85
Comentarios