Mapcg: Writing Parallel Program Portable Between Cpu And Gpu

PACT(2010)

引用 225|浏览364
暂无评分
摘要
Graphics Processing Units (GPU) have been playing an important role in the general purpose computing market recently. The common approach to program GPU today is to write GPU specific code with low level GPU APIs such as CUDA. Although this approach can achieve very good performance, it raises serious portability issues: programmers are required to write a specific version of code for each potential target architecture. It results in high development and maintenance cost.We believe it is desired to have a programming model which provides source code portability between CPUs and CPUs, and different GPUs: Programmers only need to write one version of code and can be compiled and executed on either CPUs or CPUs efficiently without modification.In this paper, we propose MapCG, a Map Reduce framework to provide source code level portability between CPU and GPU. Different from OpenCL, our framework is based on Map Reduce, which provides a high level programming model, making programming much easier.We describe the design of the Map Reduce-based high-level programming language and the underlying runtime system to enable portability between CPU and CPU. A prototype of MapCG runtime was implemented, supporting multi-core CPU and NVIDIA GPUs. Experiments show that our implementation can execute the same source code efficiently on multi-core CPU platforms and CPUs, achieving an average of 1.6-2.5x speedup over previous implementations of Map Reduce on eight commonly used applications.
更多
查看译文
关键词
portability,parallel,GPU programming
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要