Abstract
Heterogeneous multi-core architectures are playing an important role in improving the overall performance of computer systems. 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, OpenMP runtime, OpenCL on GPUs, or a dedicated hardware. Therefore, how to efficiently schedule all the computation nodes to those different targets opens up the optimization opportunities. In this paper, we propose a method to schedule OpenVX task graph by considering both memory locality and system throughput. The proposed two phase scheduling method first perform coarsen schemes to cluster nodes together, and then in the second phase a scheduling method is employed to schedule nodes into different targets. Preliminary experiments show that our scheme works well in scheduling OpenVX programs on heterogeneous environments.