全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210329955.6 (22)申请日 2022.03.31 (71)申请人 广东浪潮智慧计算 技术有限公司 地址 510620 广东省广州市天河区黄埔大 道西平云 路163号A塔9层自编01单 元 (72)发明人 肖麟阁 郝锐 阚宏伟  (74)专利代理 机构 北京集佳知识产权代理有限 公司 11227 专利代理师 王燕 (51)Int.Cl. G06N 3/063(2006.01) G06F 16/2455(2019.01) G06F 16/22(2019.01) G06F 9/54(2006.01) G06F 9/445(2018.01) (54)发明名称 一种神经网络运算控制方法、 系统及计算机 可读存储介质 (57)摘要 本发明提供一种神经网络运算控制方法, 其 中主机端仅需向FPGA板卡下发一次运算数据以 及执行一次板卡启动操作即可, 而FPGA 板卡内的 控制内核可自动控制运算内核获取神经网络每 层所需的运算数据, 以及保存每一层对应的运算 结果, 无需主机端参与, 可有效避免额外的运算 数据下发及启动操作对FPGA板卡执行神经网络 运算的干扰, 进而可提升神经网络运算任务的执 行效率。 本发 明还提供一种神经网络运算控制系 统和计算机可读存 储介质, 具有上述有益效果。 权利要求书2页 说明书10页 附图2页 CN 114764613 A 2022.07.19 CN 114764613 A 1.一种神经网络运 算控制方法, 其特 征在于, 包括: 主机端将FPGA板卡的缓存区域对应的缓存首地址写入所述FP GA板卡的运算 内核, 并启 动所述运算内核和所述FPGA板卡中的控制内核; 所述控制内核在启动时获取预设的初始层数和结束层数, 将所述初始层数设置为当前 索引, 并将所述当前索引发送至所述 运算内核; 所述运算内核根据所述当前索引和所述缓存首地址在所述缓存区域获取中间运算数 据及确定数据写入地址, 利用所述中间运算数据进行当前神经网络层的运算内容, 并根据 所述数据写入地址将得到的中间运 算结果写入所述缓存区域; 所述控制内核在确定所述运算内核完成运算 时更新所述当前索引, 并进入所述将所述 当前索引发送至所述运算内核的步骤, 直至更新后的当前索引等于所述结束层数时, 将最 后得到的中间运 算结果输出至所述主机端。 2.根据权利要求1所述的神经网络运算控制方法, 其特征在于, 在启动所述运算内核和 所述FPGA板卡中的控制内核之前, 还 包括: 所述主机端利用每一神经网络层对应的层数及标量参数生成标量参数索引表, 并将所 述标量参数索引表添加至所述 运算内核; 相应的, 所述运算内核根据 所述当前索引和所述缓存首地址在所述缓存区域获取中间 运算数据及确定数据写入地址, 利用所述中间运算数据进行当前神经网络层的运算内容, 并根据所述数据写入地址将得到的中间运 算结果写入所述缓存区域, 包括: 所述运算内核根据所述当前索引从所述标量参数索引表中读取对应的目标标量参数, 并从所述目标 标量参数中提取内存偏移值; 根据所述当前索引、 所述缓存首地址和所述内存偏移值确定数据读取地址和所述数据 写入地址, 并根据所述数据读取地址从所述缓存区域中读取 所述中间运 算数据; 利用所述目标标量参数和所述中间运算数据进行所述当前神经网络层的运算内容, 并 根据所述数据写入地址将所述中间运 算结果写入所述缓存区域。 3.根据权利要求2所述的神经网络运算控制方法, 其特征在于, 所述将所述标量参数索 引表添加至所述 运算内核, 包括: 所述主机端将所述标量参数索引表添加至头文件, 并控制所述运算内核导入所述头文 件。 4.根据权利要求1所述的神经网络运算控制方法, 其特征在于, 在启动所述运算内核和 所述FPGA板卡中的控制内核之前, 还 包括: 所述主机端向首张FPGA板卡的缓存区域写入首轮中间运算数据, 并在完成写入后进入 所述启动所述 运算内核和所述FPGA板卡中的控制内核的步骤; 相应的, 在获取 预设的初始层数和结束层数之前, 还 包括: 所述控制内核判断所述缓存区域中是否存有所述中间运 算数据; 若是, 则进入所述获取 预设的初始层数和结束层数的步骤; 若否, 则在接收到上一FPGA板卡发送的中间运算数据时进入所述获取预设的初始层数 和结束层数的步骤; 相应的, 在将最后得到的中间运 算结果输出至所述主机端之前, 还 包括: 所述控制内核判断是否需要向下一FPGA板卡输出 所述最后得到的中间运 算结果;权 利 要 求 书 1/2 页 2 CN 114764613 A 2若是, 则将所述 最后得到的中间运 算结果发送至所述下一FPGA板卡; 若否, 则进入所述将最后得到的中间运 算结果输出至所述主机端的步骤。 5.根据权利要求1所述的神经网络运算控制方法, 其特征在于, 所述将所述当前索引发 送至所述 运算内核, 包括: 所述控制内核通过 预设API接口或OpenCL管道将所述当前索引发送至所述 运算内核。 6.根据权利要求1至5任一项所述的神经网络运算控制方法, 其特征在于, 在启动所述 运算内核和所述FPGA板卡中的控制内核之前, 还 包括: 所述主机端获取 所述FPGA板卡的板卡数量和每一神经网络层对应的运 算时间; 根据所述板卡数量及所述运算时间为每一所述FPGA板卡分配连续的神经网络层处理 范围, 以使各 所述神经网络层处 理范围对应的总运行时间之间的差值 最小; 将所述神经网络层处理范围对应的初始层数和结束层数写入所述初始层数和结束层 数对应FPGA板卡的控制内核中。 7.根据权利要求6所述的神经网络运算控制方法, 其特征在于, 所述主机端获取所述 FPGA板卡的板卡数量和每一神经网络层对应的运 算时间, 包括: 所述主机端利用预设函数记录所述运算内核完成每一所述神经网络层所需的所述运 算时间。 8.一种神经网络运算控制系统, 其特征在于, 包括: 主机端和FPGA板卡, 所述FPGA板卡 包括控制内核和运 算内核, 其中, 所述主机端, 用于将所述FPGA板卡的缓存区域对应的缓存首地址写入所述运算内核, 并启动所述 运算内核和所述控制内核; 接收所述控制内核发送的中间运 算结果; 所述控制内核, 用于在启动 时获取预设的初始层数和结束层数, 将所述初始层数设置 为当前索引, 并将所述当前索引发送至所述运算内核; 在确定所述运算内核完成运算时更 新所述当前索引, 并进入所述将所述当前索引发送至所述运算内核的步骤, 直至更新后的 当前索引等于所述结束层数时, 将最后得到的中间运 算结果输出至所述主机端; 所述运算内核, 用于根据所述当前索引和所述缓存首地址在所述缓存区域获取中间运 算数据及确定数据写入地址, 利用所述中间运算数据进行当前神经网络层的运算内容, 并 根据所述数据写入地址将得到的中间运 算结果写入所述缓存区域。 9.根据权利要求8所述的神经网络运 算控制系统, 其特 征在于, 所述主机端, 还用于利用每一神经网络层对应的层数及标量参数生成标量参数索引 表, 并将所述标量 参数索引表添加至所述 运算内核; 相应的, 所述运算内核, 还用于根据所述当前索引从所述标量参数索引表中读取对应 的目标标量参数, 并从所述目标标量参数中提取内存偏移 值; 根据所述当前索引、 所述 缓存 首地址和所述内存偏移 值确定数据读取地址和所述数据写入地址, 并根据所述数据读取地 址从所述缓存区域中读取所述中间运算数据; 利用所述目标标量参数和所述中间运算数据 进行所述当前神经网络层的运算内容, 并根据所述数据写入地址将所述中间运算结果写入 所述缓存区域。 10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质中存储有计算机 可执行指令, 所述计算机可执行指令被处理器加载并执行时, 实现如权利要求1至7任一项 所述的神经网络运 算控制方法。权 利 要 求 书 2/2 页 3 CN 114764613 A 3

.PDF文档 专利 一种神经网络运算控制方法、系统及计算机可读存储介质

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种神经网络运算控制方法、系统及计算机可读存储介质 第 1 页 专利 一种神经网络运算控制方法、系统及计算机可读存储介质 第 2 页 专利 一种神经网络运算控制方法、系统及计算机可读存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:01:42上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。