基于GPU的矩阵运算并行算法设计与实现

随着计算机和集成电路技术的发展,尤其是集成电路的集成度和并行度的提高,图形硬件的更新速度越来越快,图形处理器 ( Graphic Processing Unit, GPU) 自1999年由NVIDIA公司提出以来, 其发展速度是CPU的三倍多。多流水线结构、向量处理特性以及32位IEEE标准浮点精度的实现使得它对于计算密集型的科学应用有非常大的吸引力,成 为通用计算的一个有效并行平台。AMD、NVIDIA和Intel都有各自独立的GPU通用计算计划。以GeForce8为代表的可编程GPU发布后, GPGPU( General Purpose GPU)进入了一个高速发展的全新时代, 显卡厂商NVIDIA更是推出了专门通用计算平台— CUDA( Compute Unified Device Architecture), 极大地提高了GPU的可编程性,使得个人计算机实现高性能并行计算变成可能。

基于GPU的矩阵运算并行算法设计与实现

提供良好的高性能计算开发环境,一直是学术界和工业界所追求的目标。开发环境既包括并行计算机体系结构、计算机网络拓扑结构等硬件环境,也包括并行程序的开发模式,网络通信协议和通信方式等软件环境。并行算法研究要以硬件(即并行计算机)为依托,并行计算机性能的发挥要以优秀并行算法的实现为依托。最终目的是在研究中形成完备的“理论-设计-实现-应用”的一体化并行计算研究体系。

如今,GPU早已不再满足于只做3D图形计算,慢慢的也在向着并行优化计算和高精度浮点数计算等方面发展,对于一些问题上,GPU有着比CPU高出几十倍甚至几百倍的运算性能。高性能计算、数据中心、互联网、云计算、大数据、深度学习……只要是需要强大计算能力与加速功能的地方,都能看到GPU的身影。而这些需要高性能计算的领域,往往向着并行化和运算加速方向发展。

矩阵运算是在科学计算和实际数学分析中常用的数学运算,而且矩阵乘法和矩阵求逆更是在计算中最常遇见且耗时较大的运算。即便在算法优化的情况下,稠密矩阵的乘法和求逆运算依然有O(n^3)的复杂度。这些算法实现起来不仅复杂,而且需要大量的内存空间开销。而矩阵的常规运算中存在大量的重复并行运算,可以充分发挥GPU多核计算、并行实现、流水优化的核心优势。使用GPU并行加速也成为大规模稠密矩阵的运算一个新的方向。