Correctly Treating Synchronizations in Compiling Fine-Grained SPMD-Threaded Programs for CPU
Computer Science Department, The College of William and Mary, Williamsburg, VA, USA 23187
International Conference on Parallel Architectures and Compilation Techniques (PACT 2011), 2011
@inproceedings{guo2011correctly,
title={Correctly Treating Synchronizations in Compiling Fine-Grained SPMD-Threaded Programs for CPU},
author={Guo, Z. and Zhang, E. and Shen, X.},
booktitle={Proceedings of the International Conference on Parallel Architecture and Compilation Techniques (PACT)},
year={2011}
}
Automatic compilation for multiple types of devices is important, especially given the current trends towards heterogeneous computing. This paper concentrates on some issues in compiling fine-grained SPMD-threaded code (e.g., GPU CUDA code) for multicore CPUs. It points out some correctness pitfalls in existing techniques, particularly in their treatment to implicit synchronizations. It then describes a systematic dependence analysis specially designed for handling implicit synchronizations in SPMD-threaded programs. By unveiling the relations between inter-thread data dependences and correct treatment to synchronizations, it presents a dependence-based solution to the problem. Experiments demonstrate that the proposed techniques can resolve the correctness issues in existing compilation techniques, and help compilers produce correct and efficient translation results.
October 1, 2011 by hgpu