ChatPaper.aiChatPaper

De CISC a RISC: transpilación de ensamblador guiada por modelos de lenguaje.

From CISC to RISC: language-model guided assembly transpilation

November 25, 2024
Autores: Ahmed Heakl, Chaimaa Abi, Rania Hossam, Abdulrahman Mahmoud
cs.AI

Resumen

La transición de la arquitectura x86 a ARM se está volviendo cada vez más común en diversos ámbitos, impulsada principalmente por la eficiencia energética de ARM y el mejor rendimiento en sectores tradicionales. Sin embargo, este cambio de ISA plantea desafíos significativos, principalmente debido al extenso ecosistema heredado de software x86 y la falta de portabilidad entre ecosistemas y pilas de software propietarios. Este artículo presenta CRT, un transpilador ligero basado en LLM que convierte automáticamente el ensamblador x86 al ensamblador ARM. Nuestro enfoque aborda la brecha arquitectónica fundamental entre el CISC de x86 y el RISC de ARM, preservando la semántica del programa y optimizando el rendimiento. Evaluamos CRT en diversas aplicaciones del mundo real, logrando una precisión de traducción del 79.25% de x86 a ARMv5 en nuestra suite de pruebas exhaustiva, y una precisión del 88.68% de x86 a RISC-V. En implementaciones prácticas en hardware Apple M2 (ARMv8), nuestro código transpilado logra una mejora de velocidad de 1.73 veces en comparación con el motor de virtualización Rosetta 2 de Apple, al tiempo que ofrece una eficiencia de memoria 2.41 veces mayor y un consumo de energía 1.47 veces mejor. A través de pruebas y análisis, demostramos que CRT navega con éxito la división CISC/RISC y genera código RISC ejecutable correctamente a pesar de las barreras de "lenguaje" de la máquina. Publicamos nuestro código, modelos, conjuntos de datos de entrenamiento y benchmarks en: https://ahmedheakl.github.io/asm2asm/.
English
The transition from x86 to ARM architecture is becoming increasingly common across various domains, primarily driven by ARM's energy efficiency and improved performance across traditional sectors. However, this ISA shift poses significant challenges, mainly due to the extensive legacy ecosystem of x86 software and lack of portability across proprietary ecosystems and software stacks. This paper introduces CRT, a lightweight LLM-based transpiler that automatically converts x86 assembly to ARM assembly. Our approach bridges the fundamental architectural gap between x86's CISC-based and ARM's RISC-based computing paradigms while preserving program semantics and optimizing performance. We evaluate CRT on diverse real-world applications, achieving 79.25% translation accuracy from x86 to ARMv5 on our comprehensive test suite, and an 88.68% accuracy from x86 to RISC-V. In practical deployments on Apple M2 hardware (ARMv8), our transpiled code achieves 1.73times speedup compared to Apple's Rosetta 2 virtualization engine, while delivering 2.41times memory efficiency and 1.47times better energy consumption. Through testing and analysis, we show that CRT successfully navigates the CISC/RISC divide and generates correctly executable RISC code despite machine ``language'' barriers. We release our code, models, training datasets, and benchmarks at: https://ahmedheakl.github.io/asm2asm/.
PDF157November 26, 2024