一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于GPU的矩阵加速计算的方法与流程

2022-06-29 17:47:47 来源:中国专利 TAG:
基于gpu的矩阵加速计算的方法
技术领域
1.本发明属于计算机应用技术领域,尤其涉及一种基于gpu的矩阵加速计算的方法。


背景技术:

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


技术实现要素:

6.本发明针对上述的cpu/gpu协同处理模式的技术问题,提出一种设计合理、方法简单且能够以效率最优方式对数据进行处理的基于gpu的矩阵加速计算的方法
7.为了达到上述目的,本发明采用的技术方案为,本发明提供一种基于gpu的矩阵加速计算的方法,包括以下步骤:
8.a、首先将计算任务处理成双向队列;
9.b、然后检测cpu/gpu异构计算系统是否第一次运行该计算任务,若是,则按照cpu单处理器核计算的理论峰值以及gpu的理论峰值的计算能力,从队首和队尾分别分配给cpu和gpu计算任务,确定cpu和gpu的实际计算时间;
10.c、然后根据cpu或gpu中最短完成任务的时间分配负载量;
11.d、若cpu和gpu同时完成任务,则计算此类任务的cpu分配任务的负载比例,确定该计算任务的最佳分配方案,若cpu或gpu提前完成任务,则将剩余的任务确定为动态调整任务,由cpu和gpu共同完成任务,直至队列首尾相遇,计算任务全部完成,然后,根据cpu和gpu的实际完成的计算量,确定该任务的最佳分配方案。
12.作为优选,所述b步骤中,指定一个cpu的处理器核与gpu进行交互,剩下的n-1个处理器核参与计算任务。
13.作为优选,所述d步骤中,若cpu和gpu同时完成任务,则根据公式:确定该计算任务的最佳分配方案,其中,σ为计算此类任务的cpu分配任务的负载比例,n为cpu的处理器核的数量,v
gpu
为gpu的实际计算能力,v
cpu
为cpu单处理器核的实际计算能力。
14.作为优选,所述d步骤中,若cpu和gpu同时完成任务,根据公式:计算gpu的实际计算能力,其中,l
gpu
为b步骤中以gpu的理论峰值的计算能力从队首或队尾分别分配给gpu计算任务量,t
gpu
为gpu完成l
gpu
的时间。
15.作为优选,所述d步骤中,若cpu和gpu同时完成任务,根据公式:计算cpu单处理器核的实际计算能力,其中,l
cpu
为b步骤中以cpu单处理器核计算的理论峰值从队首或队尾分别分配给cpu计算任务量,t
cpu
为cpu单处理器核完成l
cpu
的时间。
16.与现有技术相比,本发明的优点和积极效果在于,
17.1、本发明通过提供一种基于gpu的矩阵加速计算的方法,以cpu/gpu异构计算系统为计算平台,使cpu和gpu的负载量达到最佳,从而确保令两者的计算同时完成,使得整个cpu/gpu异构计算系统的协同处理的计算效率达到最优。
具体实施方式
18.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
19.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
20.实施例1,本实施例提供一种基于gpu的矩阵加速计算的方法
21.矩阵计算是许多科学计算与机器学习方法的核心组成部分,有效提升矩阵计算的性能对于开发高性能科学计算系统或大数据处理系统有着重要的意义。
22.在矩阵的计算中,尤其是稀疏矩阵的计算中,需要对矩阵进行预处理,使其满足并行计算的需求,具体操作方法如下:
23.1、事先按照一定规律指定m的非零元素分布,这样避免了不同步的计算;
3060ti显卡,根据数据计算时间衡量系统性能。然后,将其与传统调度算法(cpu负责串行计算部分以,gpu管理并提供gpu运算所需数据以及接收gpu计算完成的结果)进行对比,发现其性能提高35%。
33.以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。


技术特征:
1.一种基于gpu的矩阵加速计算的方法,其特征在于,包括以下步骤:a、首先将计算任务处理成双向队列;b、然后检测cpu/gpu异构计算系统是否第一次运行该计算任务,若是,则按照cpu单处理器核计算的理论峰值以及gpu的理论峰值的计算能力,从队首和队尾分别分配给cpu和gpu计算任务,确定cpu和gpu的实际计算时间;c、然后根据cpu或gpu中最短完成任务的时间分配负载量;d、若cpu和gpu同时完成任务,则计算此类任务的cpu分配任务的负载比例,确定该计算任务的最佳分配方案,若cpu或gpu提前完成任务,则将剩余的任务确定为动态调整任务,由cpu和gpu共同完成任务,直至队列首尾相遇,计算任务全部完成,然后,根据cpu和gpu的实际完成的计算量,确定该任务的最佳分配方案;其中,所述b步骤中,指定一个cpu的处理器核与gpu进行交互,剩下的n-1个处理器核参与计算任务,所述d步骤中,若cpu和gpu同时完成任务,则根据公式:确定该计算任务的最佳分配方案,其中,σ为计算此类任务的cpu分配任务的负载比例,n为cpu的处理器核的数量,v
gpu
为gpu的实际计算能力,v
cpu
为cpu单处理器核的实际计算能力;若cpu或gpu提前完成任务,则将剩余的任务确定为动态调整任务,由cpu和gpu共同完成任务,直至队列首尾相遇,计算任务全部完成,然后,根据cpu和gpu的实际完成的计算量,再次确定cpu单处理器核的实际计算能力以及gpu的实际处理能力,然后,再次对该任务进行计算,计算所需要的时间那么cpu可以完成的任务量即为t*v
cpu
(n-1),同样,gpu可以完成的任务量为t*v
gpu
,按照这个任务量分配给cpu和gpu相应的任务,若cpu和gpu同时完成任务,则验证出此类计算任务的最佳最佳分配方案,若还是不同步完成,则继续重复工作,直到迭代出cpu和gpu同时完成任务时的最佳分配方案。2.根据权利要求1所述的基于gpu的矩阵加速计算的方法,其特征在于,所述d步骤中,若cpu和gpu同时完成任务,根据公式:计算gpu的实际计算能力,其中,l
gpu
为b步骤中以gpu的理论峰值的计算能力从队首或队尾分别分配给gpu计算任务量,t
gpu
为gpu完成l
gpu
的时间。3.根据权利要求2所述的基于gpu的矩阵加速计算的方法,其特征在于,所述d步骤中,若cpu和gpu同时完成任务,根据公式:计算cpu单处理器核的实际计算能力,其中,l
cpu
为b步骤中以cpu单处理器核计算的理论峰值从队首或队尾分别分配给cpu计算任务量,t
cpu
为cpu单处理器核完成l
cpu
的时间。

技术总结
本发明属于计算机应用技术领域,尤其涉及一种基于GPU的矩阵加速计算的方法。本发明通过提供一种基于GPU的矩阵加速计算的方法,以CPU/GPU异构计算系统为计算平台,使CPU和GPU的负载量达到最佳,从而确保令两者的计算同时完成,使得整个CPU/GPU异构计算系统的协同处理的计算效率达到最优。理的计算效率达到最优。


技术研发人员:周晓辉 袁博 李海鹏
受保护的技术使用者:算筹(深圳)信息科技有限公司
技术研发日:2022.03.21
技术公布日:2022/6/28
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献