ChatPaper.aiChatPaper

От CISC к RISC: транспиляция ассемблерного кода под руководством языковой модели

From CISC to RISC: language-model guided assembly transpilation

November 25, 2024
Авторы: Ahmed Heakl, Chaimaa Abi, Rania Hossam, Abdulrahman Mahmoud
cs.AI

Аннотация

Переход от архитектуры x86 к архитектуре ARM становится все более распространенным в различных областях, в основном благодаря энергоэффективности ARM и улучшенной производительности в традиционных секторах. Однако этот сдвиг в ISA представляет существенные вызовы, главным образом из-за обширной легаси-экосистемы программного обеспечения x86 и отсутствия переносимости между проприетарными экосистемами и программными стеками. В данной статье представлен CRT, легковесный транспайлер на основе LLM, который автоматически преобразует ассемблер x86 в ассемблер ARM. Наш подход устраняет фундаментальный архитектурный разрыв между CISC-ориентированным подходом x86 и RISC-ориентированным подходом ARM, сохраняя семантику программы и оптимизируя производительность. Мы оцениваем CRT на разнообразных прикладных программах, достигая точности перевода 79,25% с x86 на ARMv5 в нашем комплексном тестовом наборе и точности 88,68% с x86 на RISC-V. В практических применениях на аппаратных средствах Apple M2 (ARMv8) наш преобразованный код обеспечивает ускорение в 1,73 раза по сравнению с виртуальной машиной Rosetta 2 от Apple, обеспечивая при этом эффективность памяти в 2,41 раза и лучшее энергопотребление в 1,47 раза. Через тестирование и анализ мы показываем, что CRT успешно преодолевает разрыв между CISC и RISC и генерирует корректный исполняемый RISC-код, несмотря на языковые барьеры машины. Мы публикуем наш код, модели, обучающие наборы данных и бенчмарки по адресу: 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

PDF157November 26, 2024