207 0

Energy-aware OpenCL Runtime System for Heterogeneous Mobile Computing

Energy-aware OpenCL Runtime System for Heterogeneous Mobile Computing
Jung-Hyun Hong
Ki-Seok Chung
Issue Date
Modern mobile devices are often required to process multiple computationally intensive applications simultaneously. Due to power constraints, performance improvement of a single processor via clock frequency increasing is no longer possible. Therefore, various hardware acceleration units are commonly employed in the latest application processors (APs) such as multi-core central processing units (CPUs), graphics processing units (GPUs), and digital signal processors (DSPs). To fully utilize the computational power in such heterogeneous processors, Open Computing Language (OpenCL) has been proposed. A key benefit of OpenCL is a portability that it works on various computing platforms with reasonable programming effort. While OpenCL is a convenient C-based programming model for writing portable application across multiple accelerators, there is still much to study about heterogeneous mobile computing using OpenCL. First, the study of the OpenCL framework for mobile CPUs is in a rudimentary stage. Especially, the OpenCL framework for the ARM processors, which is most commonly found in mobile devices, has not yet released officially. Therefore, most OpenCL applications cannot be executed on mobile CPUs. Second, although OpenCL provides functional portability, the performance of OpenCL applications is not portable. Optimizing a fixed OpenCL code for different device architectures is very challenging because it requires a thorough understanding of the underlying hardware architecture. As maintaining different optimizations of the same OpenCL application for different architectures is a burden for the developers and OpenCL library support for mobile CPUs are insufficient, most OpenCL programs for the mobile devices are written and optimized to target embedded GPUs. Unfortunately, GPU only work distribution is a poor solution as it underutilizes the available CPU resources. Modern mobile CPUs are performance competitive with GPUs on many workloads. Therefore, it is highly desirable to have a flexible OpenCL framework that distributes the workloads between mobile CPU and GPU in real time. By having such an environment, dynamic job assignment and load balancing become feasible without sacrificing programmability, and better real-time responsiveness and reduction in the power consumption can be achieved. In this thesis, a novel OpenCL framework for the mobile APs that automatically distributes the time-varying workload to the proper device is proposed. First, an OpenCL library for multi-core ARM processor, called EMPCL, was implemented from scratch to enable heterogeneous mobile computing using OpenCL APIs. Second, ESOCL, which provides energy-aware kernel scheduling scheme for APs at runtime was implemented. As speed and energy efficiency are equally important for the battery-driven mobile devices, ESOCL selects better energy-delay product (EDP) efficient device based on the online profiling. As the energy-aware kernel scheduling is done automatically by the scheduling modules of ESOCL, efficient hardware resource utilization is feasible without sacrificing programmability. Experimental results show that proposed heterogeneous computing framework allocates the given workload to the optimal accelerators accurately with reasonable runtime overhead. As the energy-aware kernel scheduling provided by ESOCL is done automatically with some additional coding on the host program, the EDP efficient hardware resource utilization of the heterogeneous mobile systems can be easily achieved. Keywords: Embedded Multi-core Systems, Heterogeneous computing, Open Computing Language (OpenCL), Energy-aware scheduling.
Appears in Collections:
Files in This Item:
There are no files associated with this item.
RIS (EndNote)
XLS (Excel)


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.