As a stream processor, GPU is widely used in general high-performance computation, and no longer limited to the image processing area only. NVDIA CUDA and AMD Stream SDK are popular stream programming environments for General-Purpose computation on GPU ( GPGPU). However both of them have shortcomings and limitations. The biggest problems are the shortage of binary compatibility which is confronting different GPUs and the large cost in rewriting existing source codes. By using binary analysis and dynamic binary translation technology the article implements an automatic execution framework,GxBit, which offers a method to extract stream patterns from x86 binary programs to be mapped into NVIDIA CUDA programming environment. Validated by multiple programs from CUDA SDK Sample and Parboil Benchmark Suite,the framework upgrades the performance to an average level of 10 times.%图形处理单元(GPU)作为一种流体系结构的处理器,现已被广泛地用于通用高性能计算,而不仅仅局限于图像处理领域了.NVIDIA的CUDA和AMD的Stream SDK都是现在比较流行的针对GPU通用计算(GPGPU)的流编程环境.然而,它们有自身的缺陷和限制,其中最主要的便是缺乏面对不同GPU的二进制兼容性问题和重写已有程序源代码代价大的问题.通过利用二进制分析和动态二进制翻译技术,实现一个自动化执行框架GxBit,它提供一种从x86二进制程序中提取流模式,并映射到NVIDIACUDA编程环境的方法.该框架经过CUDA SDK Sample和Parboil Benchmark Suite中若干程序的验证,平均取得10倍以上的性能提升.
展开▼