[发明专利]一种利用FPGA BRAM的CNN模型卷积运算加速计算方法在审
申请号: | 202011574881.X | 申请日: | 2020-12-28 |
公开(公告)号: | CN112905954A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 王志昊;李东方;陈亚莎;郦伟;沈炜 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06N3/04 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 张然 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 fpga bram cnn 模型 卷积 运算 加速 计算方法 | ||
本发明涉及一种利用FPGA BRAM的CNN模型卷积运算加速计算方法,其中,包括:(1)将输入矩阵A和矩阵B存入FPGA的BRAM;假设输入矩阵分别为A(M*N)和B(N*P),输出矩阵为C(M*P);)并行计算矩阵C的元素Cij;当读取完成后,计算Cij,同时下一个计算单元继续读取输入数据:(3)将Cij写回BRAM,得到矩阵乘法的计算结果C(M*P)。本发明能够提高CNN模型卷积运算计算性能。
技术领域
本发明涉及FPGA硬件加速计算领域,特别是涉及一种针对矩阵乘法运算的加速计算方法。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)模型作为一种典型的深度学习神经网络结构,受到自然视觉认知机制启发而来,在图像识别方面具有出色表现。由于实际应用场景中的数据量大幅度增加,传统的处理器计算方式已难以满足CNN计算性能的需求,现场可编程门阵列(Field Programmable Gate Array,FPGA)具有高性能、低功耗、并行化程度高的特点,适用于作为计算设备完成CNN 模型的加速计算。
CNN模型通常包含卷积、池化和全连接运算,其中卷积运算作为 CNN模型的核心计算单元之一,其计算性能对于整个CNN模型的性能至关重要。目前已有部分基于FPGA的卷积运算加速计算方法,主要是将卷积运算映射为矩阵乘法,然后利用两个矩阵不同行列相乘时运算独立的特点,借助FPGA丰富的逻辑资源,实现矩阵乘法的并行计算。然而此类方法仍然没有完全发挥FPGA的硬件并行优势。
发明内容
本发明的目的在于提供一种利用FPGA BRAM的CNN模型卷积运算加速计算方法,用于解决上述先有技术的问题。
本发明一种利用FPGA BRAM的CNN模型卷积运算加速计算方法,其中,包括:(1)将输入矩阵A和矩阵B存入FPGA的BRAM;假设输入矩阵分别为A(M*N)和B(N*P),输出矩阵为C(M*P);
(2)并行计算矩阵C的元素Cij;当读取完成后,按照公式(1)计算Cij,同时下一个计算单元继续读取输入数据:
Cij=ai1×b1j+ai2×b2j+…+ain×bnj (1)
(3)将Cij写回BRAM,得到矩阵乘法的计算结果C(M*P)。
根据本发明所述的利用FPGA BRAM的CNN模型卷积运算加速计算方法的一实施例,其中,根据输入矩阵A和B的规模,为矩阵乘法运算分配计算资源。
根据本发明所述的利用FPGA BRAM的CNN模型卷积运算加速计算方法的一实施例,其中,每一个Cij的计算过程都对应分配一个计算单元。
根据本发明所述的利用FPGA BRAM的CNN模型卷积运算加速计算方法的一实施例,其中,利用BRAM两个端口,同时写入两个不同的矩阵C的元素。
根据本发明所述的利用FPGA BRAM的CNN模型卷积运算加速计算方法的一实施例,其中,对每一个Cij的计算过程,都依次通过 BRAM的两个端口同时读取Ai*和B*j。
根据本发明所述的利用FPGA BRAM的CNN模型卷积运算加速计算方法的一实施例,其中,步骤(2)依次循环处理完全部M*P个 Cij。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011574881.X/2.html,转载请声明来源钻瓜专利网。