CodeRosetta: Pushing the Boundaries of Unsupervised Code Translation for Parallel Programming

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: TehraniJamsaz, Ali, Bhattacharjee, Arijit, Chen, Le, Ahmed, Nesreen K., Yazdanbakhsh, Amir, Jannesari, Ali
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866909367759011840
author TehraniJamsaz, Ali
Bhattacharjee, Arijit
Chen, Le
Ahmed, Nesreen K.
Yazdanbakhsh, Amir
Jannesari, Ali
author_facet TehraniJamsaz, Ali
Bhattacharjee, Arijit
Chen, Le
Ahmed, Nesreen K.
Yazdanbakhsh, Amir
Jannesari, Ali
contents Recent advancements in Large Language Models (LLMs) have renewed interest in automatic programming language translation. Encoder-decoder transformer models, in particular, have shown promise in translating between different programming languages. However, translating between a language and its high-performance computing (HPC) extensions remains underexplored due to challenges such as complex parallel semantics. In this paper, we introduce CodeRosetta, an encoder-decoder transformer model designed specifically for translating between programming languages and their HPC extensions. CodeRosetta is evaluated on C++ to CUDA and Fortran to C++ translation tasks. It uses a customized learning framework with tailored pretraining and training objectives to effectively capture both code semantics and parallel structural nuances, enabling bidirectional translation. Our results show that CodeRosetta outperforms state-of-the-art baselines in C++ to CUDA translation by 2.9 BLEU and 1.72 CodeBLEU points while improving compilation accuracy by 6.05%. Compared to general closed-source LLMs, our method improves C++ to CUDA translation by 22.08 BLEU and 14.39 CodeBLEU, with 2.75% higher compilation accuracy. Finally, CodeRosetta exhibits proficiency in Fortran to parallel C++ translation, marking it, to our knowledge, as the first encoder-decoder model for this complex task, improving CodeBLEU by at least 4.63 points compared to closed-source and open-code LLMs.
format Preprint
id arxiv_https___arxiv_org_abs_2410_20527
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle CodeRosetta: Pushing the Boundaries of Unsupervised Code Translation for Parallel Programming
TehraniJamsaz, Ali
Bhattacharjee, Arijit
Chen, Le
Ahmed, Nesreen K.
Yazdanbakhsh, Amir
Jannesari, Ali
Distributed, Parallel, and Cluster Computing
Artificial Intelligence
Machine Learning
Performance
Programming Languages
Software Engineering
Recent advancements in Large Language Models (LLMs) have renewed interest in automatic programming language translation. Encoder-decoder transformer models, in particular, have shown promise in translating between different programming languages. However, translating between a language and its high-performance computing (HPC) extensions remains underexplored due to challenges such as complex parallel semantics. In this paper, we introduce CodeRosetta, an encoder-decoder transformer model designed specifically for translating between programming languages and their HPC extensions. CodeRosetta is evaluated on C++ to CUDA and Fortran to C++ translation tasks. It uses a customized learning framework with tailored pretraining and training objectives to effectively capture both code semantics and parallel structural nuances, enabling bidirectional translation. Our results show that CodeRosetta outperforms state-of-the-art baselines in C++ to CUDA translation by 2.9 BLEU and 1.72 CodeBLEU points while improving compilation accuracy by 6.05%. Compared to general closed-source LLMs, our method improves C++ to CUDA translation by 22.08 BLEU and 14.39 CodeBLEU, with 2.75% higher compilation accuracy. Finally, CodeRosetta exhibits proficiency in Fortran to parallel C++ translation, marking it, to our knowledge, as the first encoder-decoder model for this complex task, improving CodeBLEU by at least 4.63 points compared to closed-source and open-code LLMs.
title CodeRosetta: Pushing the Boundaries of Unsupervised Code Translation for Parallel Programming
topic Distributed, Parallel, and Cluster Computing
Artificial Intelligence
Machine Learning
Performance
Programming Languages
Software Engineering
url https://arxiv.org/abs/2410.20527