[发明专利]利用AMD GPU汇编指令加速的单精度矩阵乘优化方法和系统有效
申请号: | 201910317936.X | 申请日: | 2019-04-19 |
公开(公告)号: | CN110147248B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 谭光明;郝海波;于献智;王朝尉 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 amd gpu 汇编 指令 加速 精度 矩阵 优化 方法 系统 | ||
本发明涉及一种利用AMD GPU汇编指令加速的单精度矩阵乘优化方法和系统,包括:根据tile_length对原始矩阵进行分块,每个block处理〈tile_length,tile_length〉维度的输出矩阵C;在共享内存上创建4个暂存空间tileA,tileB,tileA’和tileB’;从GPU上的一级存储上的矩阵A读取tileA大小的矩阵到tileA,从矩阵B读取tileB大小的矩阵到tileB;每次从tileA加载一列到寄存器,从tileB加载一行到寄存器,做矩阵乘运算,读取该寄存器内容,并运用乘加融合指令做矩阵乘运算,在矩阵乘运算的同时,从该一级存储分别读取下一个tileA和tileB的一行到tileA’和tileB’;做完tileA和tileB的矩阵乘以后,将tileA和tileA’地址互换,将tileB和tileB’地址互换。
技术领域
本发明涉及深度学习、高性能计算以及GPGPU编程领域,并特别涉及一种可利用AMD GPU汇编指令加速的单精度矩阵乘优化方法和系统。
背景技术
GPU图形处理器是一种专用于图像和视频处理的芯片。由于其芯片设计的特殊性——简化逻辑处理,增加计算单元,早期GPU只用来处理图形图像相关的应用编程。而随着GPU芯片的日益强大,GPU转向GPGPU发展,即其通用性得到了大量的提高。目前,GPU在嵌入式系统,智能终端,个人电脑,工作站等设备中得到了广泛的应用。Radeon Instinct系列GPU是AMD推出的,专门针对高性能计算和人工智能应用的芯片。相比普通的GPU,其浮点运算性能更高。例如Radeon Instinct MI25 GPU,具有64个CU,每个CU上有64个SP单元,其峰值性能可以达到12288gflops,超过了大部分主流CPU芯片。
SGEMM(单精度矩阵乘)是BLAS数值计算库的一个重要函数。在多核CPU上,MKL,ATLAS,和Openblas等数学库对SGEMM做了很细致的调优。最近,越来越多单精度矩阵乘在GPU实现。在GPU上,rocBLAS是AMD公司提供的在AMD GPU上的Blas高性能数学库。但是rocBLAS性能低,SGEMM函数一般根据输入的两个矩阵是否转置,调用不同的处理程序。T代表转置,N代表不转置。rocBLAS的NN,NT,TN,TT等各个子程序最高只能达到74.1%左右的性能,最低只有54.6%左右的性能。因此需要开发一个更高性能的SGEMM程序。
现有技术(基于NVIDIAKepler GPU汇编指令的单精度矩阵乘优化方法与系统)仅适用于NVIDIAKepler GPU单精度稠密矩阵乘的优化,而不能对AMD GPU单精度稠密矩阵乘进行性能调优。因此急需一种适用于AMD GPU的单精度稠密矩阵乘进行性能调优方法。
发明内容
本发明的目的是解决上述现有技术中AMD GPU单精度稠密矩阵乘效率低问题,提出了一种利用GPU汇编指令来优化数值计算程序的方法。
具体地说,本发明公开了一种利用AMD GPU汇编指令加速的单精度矩阵乘优化方法,包括:
步骤1、根据tile_length对原始矩阵进行分块,每个block处理〈tile_length,tile_length〉维度的输出矩阵C;
步骤2、在共享内存上创建4个暂存空间tileA,tileB,tileA’和tileB’;
步骤3、从GPU上的一级存储上的矩阵A读取tileA大小的矩阵到tileA,从矩阵B读取tileB大小的矩阵到tileB;
步骤4、每次从tileA加载一列到寄存器,从tileB加载一行到寄存器,做矩阵乘运算,读取该寄存器内容,并运用乘加融合指令做矩阵乘运算,在矩阵乘运算的同时,从该一级存储分别读取下一个tileA和tileB的一行到tileA’和tileB’;
步骤5、做完tileA和tileB的矩阵乘以后,将tileA和tileA’地址互换,将tileB和tileB’地址互换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910317936.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于C语言实现管理软件多任务的方法
- 下一篇:一种网络模型的计算方法及装置