One Stone Two Birds: Synchronization Relaxation and Redundancy Removal in GPU-CPU Translation
As an approach to promoting whole-system synergy on a heterogeneous computing system, compilation of fine-grained SPMD-threaded code (e.g., GPU CUDA code) for multicore CPU has drawn some recent attentions. This paper concentrates on two important sources of inefficiency that limit existing translators. The first is overly strong synchronizations; the second is thread-level partially redundant computations. In this paper, the authors point out that both kinds of inefficiency essentially come from a single reason: the non-uniformity among threads.