Dynamically Managed Data for CPU-GPU Architectures [abstract] (PDF)
Thomas B. Jablin, James A. Jablin, Prakash Prabhu, Feng Liu, and David I. August
Proceedings of the 2012 International Symposium on Code Generation
and Optimization (CGO), March 2012.
GPUs are flexible parallel processors capable of accelerating real
applications. To exploit them, programmers must ensure a consistent program
state between the CPU and GPU memories by managing data. Manually managing data
is tedious and error-prone. In prior work on automatic CPU-GPU data management,
alias analysis quality limits performance, and type-inference quality limits
applicability. This paper presents Dynamically Managed Data (DyManD), the first
automatic system to manage complex and recursive data-structures without static
analyses. By replacing static analyses with a dynamic run-time system, DyManD
overcomes the performance limitations of alias analysis and enables management
for complex and recursive data-structures. DyManD-enabled GPU parallelization
matches the performance of prior work equipped with perfectly precise alias
analysis for 27 programs and demonstrates improved applicability on programs not
previously managed automatically.