一种基于数据分段的GPU全片存储带宽度量方法
摘要文本
本发明公开了一种基于数据分段的GPU全片存储带宽度量方法,分别构建了用于在全局存储与寄存器间、局部存储与寄存器间以及全局存储与局部存储间传输数据的核函数,设定这些核函数执行限定次数及读取数据的数据量等信息后记录核函数的执行时间,在此基础上采用本发明提出的带宽计算公式完成GPU全片存储间的带宽计算,有效提高了GPU全片各级带宽实测值的计算效率和精度,达到了为开发者提供GPU性能优化方向的目的。 (来源 专利查询网)
申请人信息
- 申请人:北京麟卓信息科技有限公司
- 申请人地址:100085 北京市海淀区西三旗昌临801号27号3层310、312
- 发明人: 北京麟卓信息科技有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于数据分段的GPU全片存储带宽度量方法 |
| 专利类型 | 发明授权 |
| 申请号 | CN202311734368.6 |
| 申请日 | 2023/12/18 |
| 公告号 | CN117453421B |
| 公开日 | 2024/3/19 |
| IPC主分类号 | G06F9/50 |
| 权利人 | 北京麟卓信息科技有限公司 |
| 发明人 | 邓强; 杜凯; 温研; 刘忠新; 钟阳宇 |
| 地址 | 北京市海淀区西三旗昌临801号27号3层310、312 |
专利主权项内容
1.一种基于数据分段的GPU全片存储带宽度量方法,其特征在于,包括以下步骤:建立用于测试GPU全片存储带宽的测试数据集,测试数据集包含一定数据量的测试数据,测试数据的数量即为测试数据集中数据的总数量size;将测试数据集存储到全局存储中执行N次第一GPU核函数,建立P个线程由这P个线程分别循环分段从全局存储中读取数据到寄存器中,P个线程传输的数据总量与第一GPU核函数的执行时间的比值即为全局存储与寄存器间的带宽,计算公式为(K1*num1*N*P*4)/time1,其中K1为P个线程循环执行次数的最大值,num1为P个线程每次读取数据的数量,time1为第一GPU核函数的测试时间;将测试数据集存储到局部存储中执行M次第二GPU核函数,建立Q个线程由这Q个线程分别循环分段从局部存储中读取数据到寄存器中,Q个线程传输的数据总量与第二GPU核函数的执行时间的比值即为局部存储与寄存器间的带宽,计算公式为(K2*num2*M*Q*4)/time2,其中K2为Q个线程循环执行次数的最大值,num2为Q个线程每次读取数据的数量,time2为第二GPU核函数的测试时间;将测试数据集存储到全局存储中执行T次第三GPU核函数,建立R个线程由这R个线程分别从全局存储中读取数据到局部存储中,R个线程传输的数据总量与第三GPU核函数的执行时间的比值即为全局存储与局部存储间的带宽;所述将测试数据集存储到全局存储中执行T次第三GPU核函数,建立R个线程由这R个线程分别从全局存储中读取数据到局部存储中,R个线程传输的数据总量与第三GPU核函数的执行时间的比值即为全局存储与局部存储间的带宽,具体包括:步骤5.1、将测试数据集由主机端传输到GPU设备端,将测试数据集存储在全局存储中;令time3的取值为0,time3为测试时间,启动计时器记录测试时间;令t的取值为1,t为第三GPU核函数的执行次数,且t不大于T;步骤5.2、启动第三GPU核函数,建立R个线程,这R个线程分别从全局存储中读取数据并传输至局部存储中;步骤5.3、令t自加1,若t不大于T则执行步骤5.2;否则关闭计时器记录测试时间time3的取值,并采用公式GL-bd=(T*R*4)/time3计算GPU内全局存储与局部存储间的带宽GL-bd。