Google anuncia la incorporación de AutoFDO en el núcleo de Android para mejorar el rendimiento del sistema mediante datos de ejecución reales

robot
Generación de resúmenes en curso

IT之家 11 de marzo, el equipo de desarrolladores de Android publicó hoy un blog en el que presenta en detalle los últimos avances al introducir la tecnología de optimización de realimentación automática (AutoFDO) en el kernel de Android.

Según se indica, esta optimización busca, mediante un ajuste específico del código del kernel, ofrecer a los usuarios una experiencia del sistema más fluida.

¿Qué es AutoFDO?

En el proceso de compilación habitual de software, el compilador toma decenas de miles de pequeñas decisiones basadas en sugerencias de código estáticas, como si se debe insertar (inline) una función o cuál rama de una bifurcación es más probable que se ejecute. Aunque estas reglas heurísticas son útiles, no necesariamente reflejan con precisión el comportamiento del dispositivo en entornos reales de uso.

La tecnología AutoFDO guía al compilador para optimizar mediante la introducción de patrones de ejecución del mundo real. Estos patrones registran las rutas de ejecución de instrucciones más comunes para el código en el uso real, obtenidas mediante la recolección de la información de historial de ramas de la CPU.

Para el código del kernel, el equipo de Google sintetiza estos datos en un entorno de laboratorio usando cargas de trabajo representativas (como las aplicaciones populares de Top100). El analizador de muestreo captura los datos e identifica en el código las zonas “calientes” (de uso frecuente) y “frías” (de uso extremadamente escaso). Cuando se reconstruye el kernel usando estos perfiles de configuración, el compilador puede tomar decisiones de optimización más inteligentes basadas en cargas de trabajo reales de Android.

Mejoras reales de rendimiento

Al aprovechar los perfiles de configuración del entorno de laboratorio, el equipo de Google obtuvo mejoras de rendimiento evidentes en múltiples métricas clave. Estos perfiles se generan mediante la recolección a través de rastreo y la captura durante el arranque, y se midieron en dispositivos Pixel con kernels 6.1, 6.6 y 6.12.

Google indicó oficialmente que estas optimizaciones, en el uso real, pueden traducirse en una interfaz más fluida, una conmutación de aplicaciones más rápida, una mayor duración de la batería y una respuesta del dispositivo más ágil. Teniendo en cuenta que el kernel ocupa aproximadamente el 40% del tiempo de CPU, el beneficio que aporta esta optimización es considerable.

Antes, AutoFDO ya se había utilizado para optimizar binarios ejecutables nativos y bibliotecas en el espacio de usuario de Android, y había logrado mejoras de alrededor del 4% en la velocidad de arranque de aplicaciones de inicio en frío, así como una reducción de aproximadamente el 1% en el tiempo de arranque del sistema.

Flujo de implementación técnica

La puesta en marcha de AutoFDO implica un conjunto de procesos precisos para garantizar la vigencia de los perfiles y la estabilidad del rendimiento.

Paso 1: Captura de perfiles

A diferencia de depender de dispositivos internos de prueba para recopilar binarios del espacio de usuario, el kernel de imagen general (GKI) utiliza un entorno de laboratorio controlado para configurar la recolección. De este modo, se puede desacoplar la optimización del rendimiento del ciclo de publicación del dispositivo, habilitando actualizaciones flexibles y en el momento. Las pruebas confirmaron que las mejoras de rendimiento basadas en datos de laboratorio son comparables a las del entorno real.

El procedimiento específico es el siguiente: primero, se flashea la última imagen de kernel en los dispositivos de prueba y se utiliza la herramienta simpleperf para capturar el flujo de ejecución de instrucciones. Este proceso depende de las capacidades del hardware para registrar el historial de ramas; en los dispositivos Pixel se emplean la Extensión de Trazado Incrustada de ARM (ETE) y la Extensión de Búfer de Trazado ARM (TRBE). En cuanto a las cargas de trabajo, el equipo construye cargas representativas con las 100 aplicaciones populares mejor rankeadas del paquete de pruebas de compatibilidad de aplicaciones de Android (C-Suite), centrándose en el inicio de aplicaciones, el rastreo de aplicaciones impulsado por IA y el monitoreo a nivel de sistema. Los resultados de la validación muestran que la similitud del trabajo de carga sintética con los patrones de ejecución recopilados en dispositivos internos alcanza hasta el 85%.

Paso 2: Procesamiento de perfiles

Los datos de seguimiento originales necesitan pasar por un postprocesamiento para convertirse en un formato utilizable por el compilador. El equipo agregará las ejecuciones múltiples de pruebas y los datos de varios dispositivos en una única vista del sistema, convertirá el seguimiento original al formato de archivo de configuración de AutoFDO y filtrará los símbolos que no se necesiten, según sea necesario. Además, en los perfiles se eliminarán los datos de las funciones “frías”, de modo que esas funciones utilicen métodos de optimización estándar para evitar que un código raro cause degradación del rendimiento o un aumento innecesario del tamaño del binario.

Paso 3: Prueba de perfiles

Antes del despliegue, los perfiles deben pasar por una validación estricta para asegurar que aporten mejoras de rendimiento consistentes y sin riesgos de estabilidad. El equipo comparará rigurosamente el contenido del nuevo perfil (incluidas las funciones calientes, el conteo de muestras y el tamaño del perfil) con versiones anteriores, y construirá una nueva imagen del kernel con el perfil de configuración para analizar los binarios y confirmar que los cambios en las secciones de código cumplen lo esperado. Al mismo tiempo, el equipo ejecutará pruebas de referencia específicas sobre la nueva imagen del kernel para confirmar que mantiene las mejoras de rendimiento establecidas por la línea base previa.

Actualizaciones continuas y garantía de estabilidad

Debido a que el código cambia continuamente con el desarrollo, los perfiles de configuración estáticos naturalmente irán quedando desactualizados con el tiempo. Para mantener su rendimiento máximo, el equipo de Android planea actualizar continuamente los datos de optimización. Actualmente, el equipo está refrescando los perfiles en las ramas android16-6.12 y android15-6.6; en el futuro, ampliará el soporte de versiones de GKI actualizadas, como android17-6.18 que se lanzará próximamente.

En cuanto a las preocupaciones por la estabilidad, el equipo de Google explica que AutoFDO afecta principalmente a las reglas heurísticas del compilador (como el inline de funciones y el diseño del código), en lugar de cambiar la lógica del código fuente; por lo tanto, no afecta la integridad funcional del kernel.

Esta tecnología se ha aplicado a gran escala durante años en bibliotecas de la plataforma Android, ChromeOS e infraestructura de servidores interna de Google, lo que demuestra su fiabilidad. El equipo también adopta una estrategia de “conservador por defecto”: para las funciones “frías” que no se capturan en los perfiles, todavía se utiliza el método estándar del compilador para optimizarlas, garantizando que el comportamiento en situaciones extremas sea completamente idéntico al de una compilación estándar.

De cara al futuro

Además del despliegue actual en las ramas android16-6.12 y android15-6.6, el equipo de Google también planea varias direcciones de evolución tecnológica: desplegar los perfiles de configuración de AutoFDO en versiones de kernels GKI actualizadas y en más objetivos de compilación; ampliar el alcance de la optimización desde el binario principal del kernel (vmlinux) a módulos GKI para beneficiar a un conjunto más amplio de subsistemas del kernel; admitir módulos de proveedores construidos con el kit de desarrollo de controladores (DDK), permitiendo que los proveedores incorporen sus controladores específicos de hardware en la optimización; y recopilar perfiles de configuración a partir de trayectos clave de usuarios más amplios (CUJ) para ampliar la cobertura de la optimización.

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
Añadir un comentario
Añadir un comentario
Sin comentarios
  • Anclado