[发明专利]一种基于线性阵列的可配置浮点矩阵乘实现方法及装置在审
申请号: | 202111284552.6 | 申请日: | 2021-11-01 |
公开(公告)号: | CN114186187A | 公开(公告)日: | 2022-03-15 |
发明(设计)人: | 扈啸;张龙龙;彭元喜;郭阳;黄啊慧;张世亮;田甜;粟毅;丁祎明 | 申请(专利权)人: | 中国人民解放军国防科技大学;北京动力机械研究所 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/487;G06E3/00 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 线性 阵列 配置 浮点 矩阵 实现 方法 装置 | ||
本发明公开了一种基于线性阵列的可配置浮点矩阵乘实现方法及装置,该方法包括:步骤S1:根据矩阵规模确定分块大小及参与计算的阵列维数;步骤S2:根据子块大小和阵列维数,初始化片上RAM块数据为零;步骤S3:RAM通道提前加载部分数据流A,在数据通道送入数据流B的同时开始同步计算;步骤S4:将计算结果返回片外存储器,重复上述步骤S2‑S4,直到所有子块计算完成。该装置用来实施上述方法。本发明具有能够实现任意规模矩阵乘计算、存储需求低、计算效率和数据精度高等优点。
技术领域
本发明主要涉及到高性能计算机技术领域,特指一种基于线性阵列的可配置浮点矩阵乘实现方法及装置。
背景技术
浮点矩阵乘在系统控制、数字信号处理、图像处理以及深度学习领域有着广泛的应用,其计算效率直接影响着整个系统的性能。当前,研究加速矩阵乘的平台多种多样,比如CPU、GPGPU、FPGA以及软件库等。
FPGA(Field-programmable gate arrays,现场可编程门阵列)适合作为加速矩阵乘运算的协处理平台,已经有很多研究表明FPGA在持续性能方面都优于通用处理器、GPGPU等平台,并且在实时性可靠性要求比较高的场合以及小型的嵌入式系统中得到应用。
随着工艺的发展以及集成电路技术的进步,FPGA包含越来越多的逻辑资源,特别是内嵌大量的DSPs和BRAM块,这为矩阵计算加速的性能提升奠定了基础条件。
就单FPGA而言,主流设计主要集中于开发结构的并行运算能力,例如在中国专利“一种基于FPGA的脉动结构矩阵乘法器及其实现方法”中(公开号CN105589677A)公开了一种脉动阵列结构计算矩阵乘,通过以空间换时间的方法,能够获得很高数据吞吐率和计算速度,但对于N×N的矩阵乘运算,脉动结构需要N2个PE单元,在同一时钟周期需要2N个输入和N个输出,因此脉动结构对PE数量和带宽需求很高,其能处理的矩阵规模就非常有限。
目前,大多数已有结构的计算能力有限,只能处理小规模矩阵或定点数据,故而期望设计一种能处理大规模数据和高精度数据的矩阵计算装置。此外,如果使用固定的结构,则扩展性不好,也很难处理任意大小的矩阵计算,因此,考虑结构的灵活性是必要且有意义的。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够实现任意规模矩阵乘计算、存储需求低、计算效率和数据精度高的基于线性阵列的可配置浮点矩阵乘实现方法及装置。
为解决上述技术问题,本发明采用以下技术方案:
一种基于线性阵列的可配置浮点矩阵乘实现方法,其包括:
步骤S1:根据矩阵规模确定分块大小及参与计算的阵列维数;
步骤S2:根据子块大小和阵列维数,初始化片上RAM块数据为零;
步骤S3:RAM通道提前加载部分数据流A,在数据通道送入数据流B的同时开始同步计算;
步骤S4:将计算结果返回片外存储器,重复上述步骤S2-S4,直到所有子块计算完成。
作为本发明方法的进一步改进:所述矩阵乘是指矩阵A和矩阵B的乘积,即实现CM×N=AM×K×BK×N。
作为本发明方法的进一步改进:所述数据流包含数据流A、数据流B、数据流C;其中,数据流C的初始值均为零,最终值为矩阵乘计算结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学;北京动力机械研究所,未经中国人民解放军国防科技大学;北京动力机械研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111284552.6/2.html,转载请声明来源钻瓜专利网。