Scheduling Methods for OpenVX Programs on Mobile Multi-Core Systems

碩士 === 國立清華大學 === 資訊工程學系 === 104 === Modern mobile embedded systems use heterogeneous multi-core architectures to achieve performance improvement under an energy constraint. To program such systems, OpenVX promises to provide a standard programming framework for computer vision processing. OpenVX i...

Full description

Bibliographic Details
Main Authors: Lin, Tzu Hsiang, 林子翔
Other Authors: Lee, Jenq-Kuen
Format: Others
Language:en_US
Published: 2016
Online Access:http://ndltd.ncl.edu.tw/handle/z838tz
Description
Summary:碩士 === 國立清華大學 === 資訊工程學系 === 104 === Modern mobile embedded systems use heterogeneous multi-core architectures to achieve performance improvement under an energy constraint. To program such systems, OpenVX promises to provide a standard programming framework for computer vision processing. OpenVX is with a graph-based execution model to describe the computation behavior and data flow relationship. Each computation node in the graph can be dispatched to a different target, such as multicore CPUs with C and OpenMP runtime, OpenCL on GPUs, remote procedure call to DSP, or even a dedicated hardware. Therefore, how to efficiently schedule all the computation nodes to those different targets opens up the optimization opportunities. In this thesis, we propose a method to schedule OpenVX task graph by considering both memory locality and system throughput. The proposed two phase scheduling method first performs coarsen schemes to cluster nodes together, and then in the second phase a scheduling method is employed to schedule nodes into different targets. The experimental result of our experiments on Qualcomm DragonBoard 810 development board shows that our scheme works well in scheduling OpenVX programs on heterogeneous multi-core environments.