%0 Journal Article %T Developing a Clang Libtooling-Based Refactoring Tool for CUDA GPU Programming %A Kian Nejadfard %A Janche Sang %J Journal of Software Engineering and Applications %P 89-108 %@ 1945-3124 %D 2024 %I Scientific Research Publishing %R 10.4236/jsea.2024.172005 %X Refactoring tools, whether fully automated or semi-automated, are essential components of the software development life cycle. As software libraries and frameworks evolve over time, it¡¯s crucial for programs utilizing them to also evolve to remain compatible with modern advancements. Take, for example, NVIDIA CUDA¡¯s platform for general-purpose GPU programming. Embracing the more contemporary unified memory architecture offers several benefits, such as simplifying program source code, reducing bugs stemming from manual memory management between host and device memory, and optimizing memory transfer through automated memory handling. This paper describes our development of a refactoring tool based on Clang¡¯s Libtooling to facilitate this transition automatically, thereby relieving developers from the burden and risks associated with manually refactoring large code bases. %K Refactoring %K CUDA %K Unified Memory %K Clang %K Libtooling %U http://www.scirp.org/journal/PaperInformation.aspx?PaperID=131492