Automating data management in heterogeneous systems using polyhedral analysis
Date
2015Language
en
Keyword
Abstract
In this paper we introduce a framework which automates the task of data management for OpenCL programs across multiple devices of a heterogeneous system. Our approach uses compile-time analysis, based on the polyhedral model, to associate computations with the data they consume/produce. The results of the analysis are then used by a runtime system which automates the task of data management. Beyond alleviating the programmer from the burden of data management, our framework enables partitioning computations to all computational devices of heterogeneous systems according to the computational power and memory capacity of each device, thus facilitating the exploitation of all computational and memory resources of the system. We evaluate our approach on a system containing a multicore CPU and 4 GPUs, using a set of OpenCL applications and benchmarks. We find that our framework allows the transparent utilization of all heterogeneous resources with negligible overhead (1.24% on average over hand-mapped to the target system versions of the codes). At the same time, it enables the execution of problem sizes which could not be executed on homogeneous, or less complex heterogeneous systems, due to their high computational and memory requirements. Copyright 2015 ACM.