A Machine Learning Approach to Partitioning Aparapi Programs on HSA Environments

碩士 === 國立清華大學 === 資訊工程學系 === 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 per...

Full description

Bibliographic Details
Main Authors: Chien, Yu Hsuan, 簡佑軒
Other Authors: Lee, Jenq Kuen
Format: Others
Language:en_US
Published: 2015
Online Access:http://ndltd.ncl.edu.tw/handle/51979582685072148907
Description
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.