Da CISC a RISC: trasposizione dell'assembly guidata dal modello linguistico.

From CISC to RISC: language-model guided assembly transpilation

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

Abstract

La transizione dall'architettura x86 a quella ARM sta diventando sempre più comune in vari settori, principalmente guidata dall'efficienza energetica di ARM e dalle prestazioni migliorate in settori tradizionali. Tuttavia, questa transizione dell'ISA presenta significativi sfide, principalmente a causa dell'ampio ecosistema legacy di software x86 e della mancanza di portabilità tra ecosistemi proprietari e stack software. Questo articolo introduce CRT, un trascompiler leggero basato su LLM che converte automaticamente l'assembly x86 in ARM. Il nostro approccio colma il divario architetturale fondamentale tra il CISC di x86 e il RISC di ARM preservando la semantica del programma e ottimizzando le prestazioni. Valutiamo CRT su diverse applicazioni reali, raggiungendo una precisione di traduzione del 79,25% da x86 ad ARMv5 nel nostro completo insieme di test e un'accuratezza dell'88,68% da x86 a RISC-V. Nelle implementazioni pratiche sull'hardware Apple M2 (ARMv8), il nostro codice trascompilato ottiene un aumento di velocità del 1,73 rispetto al motore di virtualizzazione Rosetta 2 di Apple, offrendo anche un'efficienza di memoria 2,41 volte superiore e un consumo energetico migliore del 1,47. Attraverso test e analisi, dimostriamo che CRT naviga con successo tra la divisione CISC/RISC e genera correttamente codice RISC eseguibile nonostante le barriere del "linguaggio" macchina. Rilasciamo il nostro codice, modelli, set di dati di addestramento e benchmark su: 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/.

Summary

AI-Generated Summary

PDF117November 26, 2024