Optimizing memory management on heterogeneous systems using polyhedral, compile-time techniques
University of Thessaly
University of Thessaly, 2013
@phdthesis{vassiliadis2013optimizing,
title={Optimizing memory management on heterogeneous systems using polyhedral, compile-time techniques},
author={Vassiliadis, Vassilis},
year={2013},
school={University of Thessaly}
}
The target of this thesis is to optimize memory management on heterogeneous systems. Our approach involves performing memory access pattern analysis on kernels in order to produce an accurate estimation of the memory usage. This information is produced in the form of array ranges describing which elements are accessed as well as whether they are read or written. Using these ranges we can statically partition the kernel and generate kernels which use fractions of the original data. Memory in GPUs is considered small compared to system memory, however the difference is even more profound in the case of FPGAs. Thus an OpenCL kernel may not be able to execute at all on a given compute device due to device memory not being big enough to store all its working set. We propose our algorithm as a solution to this problem; by analysing the OpenCL kernel we can potentially decrease the amount of memory allocated on a single OpenCL compute device, since we detect which ranges of arrays are actually required for each sub-kernel and allocate memory for them instead of the total range of data. Since we can now use more than one compute device concurrently for the execution of a single kernel we can also improve the performance of an application, much like the way a traditional multithreaded application is, usually, sped up when multiple CPUs are used instead of just one.
August 7, 2014 by hgpu