Two-phase execution of binary applications on CPU/GPU machines

作者:Zhu, Erzhou; Ma, Ruhui*; Hou, Yang; Yang, Yindong; Liu, Feng; Guan, Haibing
来源:Computers & Electrical Engineering, 2014, 40(5): 1567-1579.
DOI:10.1016/j.compeleceng.2014.02.002

摘要

High computational power of GPUs (Graphics Processing Units) offers a promising accelerator for general-purpose computing. However, the need for dedicated programming environments has made the usage of GPUs rather complicated, and a GPU cannot directly execute binary code of a general-purpose application. This paper proposes a two-phase virtual execution environment (GXBIT) for automatically executing general-purpose binary applications on CPU/GPU architectures. GXBIT incorporates two execution phases. The first phase is responsible for extracting parallel hot spots from the sequential binary code. The second phase is responsible for generating the hybrid executable (both CPU and GPU instructions) for execution. This virtual execution environment works well for any applications that run repeatedly. The performance of generated CUDA (Compute Unified Device Architecture) code from GXBIT on a number of benchmarks is close to 63% of the hand-tuned GPU code. It also achieves much better overall performance than the native platforms.