Summary: | 碩士 === 國立清華大學 === 資訊工程學系 === 103 === Java is one of the most popular programming languages. It can be used to develop mobile devices such as laptop or smart phone. As the need of performance increasing, GPUs now are equipped with in most smart phones and tablets. Therefore, how Java programs can perform more efficiently becomes an important issue.Recently, AMD released a brand new architecture, Heterogeneous System Architecture (HSA), which reduces CPU or GPU data movement and increases the performance of heterogeneous systems. Therefore, if we can let Java programs run on HSA efficiently, Java computing performance can be increased.
In this thesis, we propose a program partitioning technique for Aparapi.
Aparapi is developed by AMD and is with flow to translate to HSAIL to call GPU to calculate it. We implement a profiling skill on Aparapi runtime that can extract factors and generate a machine learning model. With the machine learning model, we can predict whether CPU or GPU is suitable for the following Aparapi programs and shorten the total execution time. As a result, the partitioning technique of Aparapi programs make Java programs get better performance than those without this technique on heterogeneous system architectures.
|