本技术属于计算机应用技术领域,尤其涉及一种基于GPU的矩阵加速计算的方法。本发明通过提供一种基于GPU的矩阵加速计算的方法,以CPU/GPU异构计算系统为计算平台,使CPU和GPU的负载量达到最佳,从而确保令两者的计算同时完成,使得整个CPU/GPU异构计算系统的协同处理的计算效率达到最优。
背景技术
随着科学技术的不断进步,应用对计算性能的需求也在不断增加。然而,受限于功耗问题,过去十年计算机硬件计算的发展基本放弃了通过提高处理器频率来增加计算机性能的传统模式,转而采用集成多处理器核的方式以提高芯片的计算能力。由于CPU的通用性,即使使用多核cpu也无法满足大多数应用对计算的需求。因此,专用加速部件的研究获得了学术界和产业界的广泛关注。
近年来,以图形处理单元(GPU)为代表的通用计算硬件逐渐成为国际上解决大数据计算和实时处理问题的主流方案。GPU计算性能高、体积小、功耗低、软硬件通用,可在受限环境下提供高性能计算能力,已广泛应用于测绘、遥感、地学等领域的高性能数据处理和应用中。
异构计算系统框架(Heterogeneous SystemArchitecture,HSA)是一种允许CPU和GPU使用相同总线进行内存和任务共享的交叉开发平台。该平台的目标是降低CPU、GPU,以及其它计算机设备之间的通讯延时,使得开发者能够更加便利地操控多种设备,并且在各设备之间实现更加快捷地任务调度和数据交互。
经过实验发现,在向量内积计算中:CPU和GPU并没有绝对的效率高低,如果CPU被其他任务分配,那么计算时长可能会超过GPU,因此向量内积的处理器选择应该根据数据所在位置决定;在矩阵与向量乘法:可并行的计算量大,GPU始终快于CPU,在矩阵与矩阵乘法:与矩阵与向量乘法一样,GPU始终快于CPU;在向量三角线性方程组求解:可并行的计算量大,GPU始终快于CPU,在矩阵三角线性方程组求解:在列数k比较小的时候CPU计算速度快,在列数k,较大的时候GPU计算速度快。在异构计算系统框架中,而若仅将CPU作为GPU的控制单元,将无法发挥这些处理核心的计算能力,导致整个异构计算系统的计算性能无法得到充分利用。为此,需要设计相应的CPU/GPU协同处理模式,令CPU和GPU一起以效率最优方式对数据进行处理。
实现思路