AbstractsComputer Science

Characterization of Data Locality Potential of CPU and GPU Applications through Dynamic Analysis

by Naznin Fauzia




Institution: The Ohio State University
Department: Computer Science and Engineering
Degree: PhD
Year: 2015
Keywords: Computer Science
Record ID: 2058662
Full text PDF: http://rave.ohiolink.edu/etdc/view?acc_num=osu1420759839


Abstract

Emerging computer architectures will feature drastically decreased flops/byte (ratio of peak processing rate to memory bandwidth), as highlighted by recent studies on Exascale architectural trends. Further, flops are getting cheaper while the energy cost of data movement is increasingly dominant. The understanding and characterization of data locality properties of computations is critical in order to guide efforts to enhance data locality.Reuse distance analysis of memory address traces is a valuable tool to perform data locality characterization of programs. A single reuse distance analysis can be used to estimate the number of cache misses in a fully associative LRU cache of any size, thereby providing estimates on the minimum bandwidth requirements at different levels of the memory hierarchy to avoid being bandwidth bound. However, such an analysis only holds for the particular execution order that produced the trace. It cannot estimate potential improvement in data locality through dependence preserving transformations that change the execution schedule of the operations in the computation.In this dissertation, we present a novel dynamic analysis approach to characterize the inherent locality properties of a computation and thereby assess the potential for data locality enhancement via dependence preserving transformations. The execution trace of a code is analyzed to extract a computational directed acyclic graph (CDAG) of the data dependences. The CDAG is then partitioned into convex subsets, and the convex partitioning is used to reorder the operations in the execution trace to enhance data locality. The approach enables us to go beyond reuse distance analysis of a single specific order of execution of the operations of a computation in characterization of its data locality properties. It can serve a valuable role in identifying promising code regions for manual transformation, as well as assessing the effectiveness of compiler transformations for data locality enhancement. We demonstrate the effectiveness of the approach using a number of benchmarks, including case studies where the potential shown by the analysis is exploited to achieve lower data movement costs and better performance.Effective parallel programming for GPUs requires careful attention to several factors, including ensuring coalesced access of data from global memory. There is a need for tools that can provide feedback to users about statements in a GPU kernel where uncoalesced data access occurs, and assistance in fixing the problem. In this dissertation, we address both these needs. We develop a two step framework, where dynamic analysis is first used to detect uncoalesced accesses by instrumenting PTX code to generate traces. Transformations to optimize global memory access by introducing coalesced access whenever possible are achieved using feedback from the dynamic analysis or using a model-driven approach. Experimental results demonstrate the benefits of use of the tools on a number of benchmarks from the Rodinia and Polybench suites.