节点文献
基于CUDA架构的高性能图像处理程序设计
CUDA Architecture-based High-performance Image Processing Program Design
【作者】 张琳;
【作者基本信息】 电子科技大学 , 软件工程(专业学位), 2014, 硕士
【摘要】 高性能计算,又称超级计算,是指在短时间内完成更多的数据计算量,以完成更多的计算任务。云计算是近年来逐渐兴起的一种并行的分布式计算应用的概念与模式,其实现方式是将大量的计算资源通过网络连接到一起,构成一个具有强大的计算能力和并行处理能力的计算资源池,从而向用户提供高性能计算服务。从本质上看,云计算是为了实现高性能计算而产生的一种新的处理模式。由此可见,高性能计算的应用广泛,形式日新月异,对其研究具有重要的理论与现实意义。由于GPU具有强大的计算能力,并且发展迅速,使其应用于通用的高性能计算,成为了一种必然的结果。CUDA是由美国NVIDIA公司为其生产的GPU产品开发的通用计算程序与硬件计算资源之间交互的接口。CUDA架构用于实现GPU设备的通用计算应用,具有高并行性、高带宽、性价比高、易于编程等优势。基于这些优势,基于CUDA的高性能计算,成为近年来学界研究的重点,在应用上得到了快速的发展。虽然CUDA具有如上所述的诸多优势,但是,其仍然有许多局限性,例如,CUDA对多分支和并行化低的应用程序执行效率不高,不适合整型数据运算,对处理的任务的细分程度及方式直接影响到CUDA应用程序的性能,并且,编程语言语法的特异性也限制了CUDA在通用高性能计算领域的应用。为了克服基于CUDA架构的高性能计算在实际应用中存在的问题,从产品应用的角度出发,重点研究了对图像处理任务的并行化分解,并从控制任务与计算任务分离以及存储器优化的角度对应用程序进行了优化,以适应CUDA架构实现高性能计算的原理,从而进一步提升系统的性能。本文首先介绍了高性能计算与云计算的相关概念,以及基于GPU的高性能计算的发展历程,在此基础上,介绍了CUDA架构下GPU编程的特点,总结了优化CUDA程序的技术方案,最终使用CUDA C语言实现了一个图像快速插值变换程序和图像快速滤波处理程序,开发了一个集成测试平台,并通过实验数据验证了基于CUDA架构实现的图像处理系统在计算性能上的提升。
【Abstract】 High-performance computing, named super-computing, means to finish multiple computing task in as short time as possible. Cloud computing is a newly proposed therapy in recent years, means to apply distributed computing in a new way, and use multiple computing resources connected by network to work together, and so can provide high-performance services to the users. In nature, cloud computing is a new way to fit high-performance computing. So, we can come to a conclusion that, researching high-performance is very important for theory studying and applying.The powerful computing capability and fast development make people considering using GPU for general-purpose high-performance computing automatically. Compute Unified Device Architecture(CUDA) is the interface of the general computing program and the hardware resources. It is developed by NVIDIA for its GPU product. CUDA has the advantage of high parallelism, high bandwidth, cost-effective and easy programming. Based on these advantages, applying CUDA to general-purpose high-performance computing becomes a hot issue in recent years, and developed very fast in application.However, CUDA has many merits as described above, it still has many limitations, such as that, CUDA cannot manage multi-branch and low parallelization applications efficiently, and it is not fit for integrate data type. On the other hand, the way and level of dividing task may affect the performance of the application deeply. Difference of programming style also limited its application in general-purpose high-performance computing.To solve the problems in the application of CUDA in general-purpose high-performance computing, from the view point of meeting demand of practical application, this article researched how to divide the image process task into small ones that can be executed parallel, and how to separate the computing tasks from control tasks, so that, the program can fit the workflow of CUDA, and enhance the performance of the whole system further.This article introduced the concept of high-performance computing and cloud computing first, and the development of GPU based high-performance computing. On this basis, the feature of GPU programming under CUDA and optimization was researched. At last, a fast image interpolation procedure and a fast image filter procedure were completed using CUDA C language, developed an integrated test platform. Experiment data show that image processing system using CUDA to realize has a better performance.
【Key words】 High-performance computing; CUDA; task dividing; GPU programming; High-performance image processing program;
- 【网络出版投稿人】 电子科技大学 【网络出版年期】2016年 03期
- 【分类号】TP391.41
- 【被引频次】5
- 【下载频次】377