(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211135363.7
(22)申请日 2022.09.19
(71)申请人 复旦大学
地址 200433 上海市杨 浦区邯郸路2 20号
(72)发明人 叶景格 王堃
(74)专利代理 机构 上海正旦专利代理有限公司
31200
专利代理师 王洁平
(51)Int.Cl.
G06F 7/523(2006.01)
G06F 17/16(2006.01)
G06F 9/30(2006.01)
G06N 3/063(2006.01)
(54)发明名称
基于FPGA的图卷积神经网络稀疏矩 阵乘法
分配系统
(57)摘要
本发明属于CPU数据处理技术领域, 具体为
一种基于FPGA的图卷积神经网络稀疏矩阵乘法
分配系统。 本发明在CPU运算器内设置稀疏矩阵
预处理模块, 存储器内设有FPGA模块; 将输入的
CSC格式的稀 疏矩阵发送至存储器中, CSC格式文
件将稀疏矩阵压缩为三个数组: 行索引记录数
组、 列索引记录数组以及非零值数组, 稀疏矩阵
预处理模块通过从存储器中调取数据流, 并对该
稀疏矩阵的行索引记录数组、 列索引记录数组以
及非零值数组进行运算, 实现稀疏矩阵乘法分
配。 本发明中的基于FPGA的 图卷积神经网络稀 疏
矩阵乘法 分配系统CPU数据处 理速率快。
权利要求书1页 说明书7页 附图1页
CN 115390788 A
2022.11.25
CN 115390788 A
1.一种基于FPGA的图卷积神经网络稀疏矩阵乘法分配系 统, 包括: 输入设备、 CPU以及
输出设备, 所述CPU内设有存储器、 运算器以及 控制器, 其特征在于: 所述运算器内部 设有稀
疏矩阵预处 理模块, 所述存 储器内设有FPGA模块; 其中:
所述输入设备主要用于输入CSC格 式的稀疏矩阵, 并将输入的CSC格式的稀疏矩阵发送
至存储器中, CSC格式文件将稀疏矩阵压缩为三个数组: 行索引记录数组、 列索引记录数组
以及非零值数组; 行索引记录的是从第一行到每一行非零元素的总 数, 列索引记录的是每
个非零元 素所在的列号, 非零 值数组记录的是每 个非零元 素的值;
所述稀疏矩阵预处理模块从存储器中调取数据流, 对数据流中的稀疏矩阵的行索引记
录数组、 列索引记录数组以及非零 值数组进行运 算, 运算过程如下:
首先基于行索引记录数组得出稀疏矩阵中每一行的非零元素的个数, 然后 根据各行非
零元素的个数进行划分; 在划分时, 保存每个FGPA的计算单元所处理的行号以及对应的行
的非零元素的总数, 根据非零元素的总数, 依次对稀疏矩阵的行来进行划分, 每次将CPU中
的任务分配单元读到的行划分给非零元素总数最少的计算单元, 最终完成稀疏矩阵的分
配。
2.根据权利要求1所述的基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统, 其特征
在于: 所述稀疏矩阵预处理模块对CPU中的寄存器进行分块, 得到寄存器分块, 寄存器块的
大小即为数据重用次数, 每个线程是从全局存储器中读取稀疏矩阵的行索引记录数组, 保
证稀疏矩阵的行索引记录数组在寄存器中得到重用, 将稀疏矩阵的行索引记录数组中元素
的读取顺序标记为数字 (1、 2、 3、 ...、 n) , 在Warp函数中第一个线程计算第 k行的第一个元
素, 然后计算第k +1行的第一个元素, 这两个元素重用了稀疏矩阵的行索引记录数 组, 接着,
利用共享内存, 写入每个warp函数线程计算得到的结果中, 设置同步后, 进行归约, 使共享
内存中的数据在不同warp函数间得到 重用。
3.权利要求1所述的基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统, 其特征在于:
CSC格式文件的三个数组中的行索引记录数组作为CPU中乘法分配单元的输入, 列索引记录
数组以及非零值数组进入FPGA的内存中, 计算单元对稀疏矩阵按行进行划分, 划分的结果
以四个数组的形式存在FPGA的内存里。
4.根据权利要求1所述的基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统, 其特征
在于: 为了减少片 内数据复制所带来的资源消 耗, 列索引数组和非零元素值数组在按行划
分之后的基础上也同步 地进行划分, 分散存 储到不同的BRAM里。
5.根据权利要求1所述的基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统, 其特征
在于: 每个计算单元直接读取划分好的四个数组以及CSC格式的列索引记录数组以及非零
值数组, 从而 进行稀疏矩阵的乘法运 算。权 利 要 求 书 1/1 页
2
CN 115390788 A
2基于FPGA的图卷积神经 网络稀疏矩阵乘法分配系统
技术领域
[0001]本发明涉及CPU数据处理技术领域, 特别涉及一种基于FPGA的图卷积神 经网络稀
疏矩阵乘法分配系统。
背景技术
[0002]电磁学、 半导体、 机器人学、 图像处理、 网络与图形、 分子动力学、 流体动力学等领
域中在使用对应的软件处理对应的领域数据过程中, 使用到对应软件处理数据过程中, 通
常使用中央处理器CPU配合程序处理数据, 而这些应用程序中使用的核心算法大多来自稀
疏线性代数, 就涉及到矩阵运算处理, 当矩阵中非零元素的个数非常少时, 将它压缩为稀疏
矩阵的特殊格式, 压缩之后的稀疏矩阵能够大大减少它占用的存储空间, 加快访问的速度,
稀疏矩阵计算是对应于处理大型稀疏矩阵的方法, 在稀疏矩阵计算是对应于处理大型稀疏
矩阵的方法通常使用基于FPGA, FPGA称为现场可编程逻辑门阵列, 是在可编程阵列逻辑以
及通用阵列逻辑等可编程器件的基础上进一步发展的产物, 它是作为专用集成电路领域中
的一种半定制电路而出现的, 既解决了定制电路的不足, 又克服了原有可编程器件门电路
数有限的缺点, 为了提高CPU运行程序处理数据的速率, 就需要用到基于FPGA的图卷积神经
网络稀疏矩阵乘法分配系统。
[0003]但是现有的图卷积神经网络中, 针对图卷积神经网络中的稀疏稠密矩阵乘法, 通
过在层内设置缓冲区, 从而判断哪些P E的工作量比较大, 进而实现动态的任务分配。 但是这
种方法还有能够简化的地方。 因为在图卷积神经网络中, 稀疏矩阵是在各层中不断重复使
用的, 也就是说, 每一层的稀疏矩阵的分布就都是完全相同的。 因此, 只需要对稀疏矩阵进
行一次任务分配, 并将这种分配方式同时应用于每一层, 就能够比较好地解决图卷积神经
网络中负载不均衡的问题了, 现有的基于FPGA进行稀疏矩阵乘法运算的处理都是类似的,
先压缩为对应的稀疏矩阵格式, 再逐行 的分配任务, 总的计算量被随机地分配到不同的计
算单元中, 由于 分配的方式比较随机, 负载不均衡的问题难以避免; 基于 现有的FPGA进 行稀
疏矩阵乘法运算系统存在图卷积神经网络中负载不均衡的缺点, 为此, 本发明提出一种新
的基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统。
发明内容
[0004]本发明的主要目的在于提供一种基于FPGA的图卷积神经网络稀疏矩阵乘法分配
系统, 可以有效解决背景技术中现有的使用图卷积神经网络的图像处理系统存在图卷积神
经网络中负载不均衡的问题。
[0005]为实现上述目的, 本发明采取的技术方案为: 基于FPGA的图卷积神经网络稀疏矩
阵乘法分配系统, 包括: 输入设备、 CPU以及输出设备, 所述CPU内设有存储器、 运算器以及 控
制器, 所述 运算器内部设有稀疏矩阵预处 理模块, 所述存 储器内设有FPGA模块;
所述输入设备主要用于输入CSC格式的稀疏矩阵, 并将输入的CSC格式的稀疏矩阵
发送至存储器中, CSC格式文件将稀疏矩阵压缩为三个数组: 行索引记录数组、 列索引记录说 明 书 1/7 页
3
CN 115390788 A
3
专利 基于FPGA的图卷积神经网络稀疏矩阵乘法分配系统
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 05:46:56上传分享