Automatic Parallelization for GPUs [abstract] (PDF)
Thomas B. Jablin
Ph.D. Thesis, Department of Computer Science,
Princeton University, April 2013.
GPUs are flexible parallel processors capable of accelerating real
applications. To exploit them, programmers rewrite programs in new languages
using intimate knowledge of the underlying hardware. This is a step backwards in
abstraction and ease of use from sequential programming. When implementing
sequential applications, programmers focus on high-level algorithmic concerns,
allowing the compiler to target the peculiarities of specific
hardware. Automatic parallelization can return ease of use and hardware
abstraction to programmers. This dissertation presents techniques for
automatically parallelizing ordinary sequential C codes for GPUs using DOALL and
pipelined parallelization techniques. The key contributions include: the first
automatic data management and communication optimization framework for GPUs and
the first automatic pipeline parallelization system for GPUs. Combining these
two contributions with an automatic DOALL parallelization yields the first fully
automatic parallelizing compiler for GPUs.