La compatibilidad binaria entre x86-64 y aarch64 afecta significativamente el rendimiento de los procesos

Fuentes: Binary Translation and Its Consequences on CPU Performance

La compatibilidad binaria entre x86-64 y aarch64 es un factor crítico para la competencia en el mercado de PC, ya que las aplicaciones diseñadas para x86-64 no se ejecutan nativamente en aarch64. Microsoft ha implementado el nuevo binario traductor Prism para que Windows 11 ejecute las instrucciones x86-64 de los programas en aarch64, eliminando la necesidad de portar código a la arquitectura de destino. Sin embargo, esta traducción introduce una penalidad significativa en el rendimiento de los procesos de alto rendimiento y vectorizado. Al ejecutar Geekbench 7, se observan inflaciones drásticas en el conteo de instrucciones atribuidos a aarch64, superando el doble de las instrucciones de x86-64 bajo la traducción binaria. La penalidad se distribuye entre las diferentes arquitecturas de CPU, como las Neoverse N1 y N2 de Qualcomm o los Snapdragon X2 Elite de Qualcomm. En las pruebas de rendimiento, la penalidad se manifiesta en trabajos vectorizados como Video Player o Photo Editor, donde la traducción causa una reducción en la velocidad de ejecución. En contraste, las pruebas de navegación son menos afectadas por esta penalidad, ya que dependen menos de la ejecución de instrucciones vectorizadas y más de la predicción de ramas. Los datos de métricas de rendimiento (IPC) muestran que, aunque las cores de aarch64 experimentan una reducción en la tasa de instrucciones, las cores de x86-64 en Snapdragon X2 Elite logran una mejora significativa en la capacidad de procesamiento (IPC) debido a la capacidad de utilizar el ancho de los núcleos de cálculo, a diferencia de las cores de Neoverse N1 y N2, que no logran compensar esta pérdida de eficiencia en el rendimiento de sus trabajos vectorizados.