
技术摘要:
本发明公开一种软硬件协同加速神经网络算法的方法及系统,利用神经网络算法的计算需求特性及并行可拆解特性,将神经网络算法任务划分软硬件计算执行,分别将计算任务部分拆解为专用计算任务和通用计算任务,专用计算任务分解为专用子计算任务,并划分专用子计算任务组 全部
背景技术:
神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通 过机器感知系统解释传感器数据,对原始输入进行标记或聚类。 目前,深度神经网络已被广泛应用于众多领域,在图像处理领域,基于卷积神经网 络的模型训练效果明显优于其他传统方法,然而随着神经网络模型复杂度和任务量的不断 提高,有限的存储空间和计算能力成为进一步训练大规模任务的瓶颈。目前通常使用神经 网络的加速器提高神经网络的计算速度,但在通用动设备上,由于硬件限制,针对不同的神 经网络常常需要开发不同的加速器提高计算速度,不仅增加了额外的成本,有时因硬件限 制原因,可能无法实现神经网络提速。
技术实现要素:
本发明针对现有技术的问题,提供一种软硬件协同加速神经网络算法的方法及系 统,可在现有设备基础上,根据神经网络算法的计算需求特性及并行可拆解特性,将神经网 络算法划分拆解,对不同拆解方法进行耗时及资源的比较分析,得到最优拆解方法,实现高 效低耗完成软硬件协同加速神经网络,并可应用在软硬件部署等方面。 本发明提出的具体方案是: 一种软硬件协同加速神经网络算法的方法:将神经网络算法任务拆解成通用计算 任务和专用计算任务, 将专用计算任务并行分解成专用子运算任务,根据专用子运算任务处理数据的数 量及计算复杂度,将专用子运算任务划分成不同的专用子运算任务组合, 分别对专用子运算任务组合进行软件处理加速,收集各专用子运算任务组合执行 任务时使用的计算与存储资源及相应的其他参量, 根据专用子运算任务组合,将通用计算任务分解为通用子运算任务,并对应专用 子运算任务组合利用硬件对通用子运算任务进行处理加速,收集通用子运算任务执行任务 时使用的计算与存储资源及相应的其他参量,结合专用子运算任务组合的计算与存储资源 及其他参量,进一步优化专用子运算任务组合及其对应的通用子运算任务的划分,完成神 经网络算法的加速。 所述的一种软硬件协同加速神经网络算法的方法中分解专用子运算任务过程: 将专用计算任务根据算法特性,进行计算任务并行分解,分解成可同时进行且数 据不互相依赖的专用子计算任务。 所述的一种软硬件协同加速神经网络算法的方法中对专用子运算任务组合利用 处理器进行软件处理加速。 4 CN 111598221 A 说 明 书 2/6 页 所述的一种软硬件协同加速神经网络算法的方法中划分通用子运算任务前,处理 器针对专用子运算任务组合执行任务时使用的计算与存储资源及其他参量进行分析比较, 调整专用子运算任务组合中专用子运算任务数量及计算复杂度,获得优化的专用子运算任 务组合。 所述的一种软硬件协同加速神经网络算法的方法中具体过程为: 分别给专用子运算任务组合分配计算与存储资源,累加各专用子运算任务组合执 行任务时使用的计算与存储资源,同时获取相应的其他参量, 分析比较各专用子运算任务组合使用的计算与存储资源及其他参量,结合处理器 的相关参数,调整专用子运算任务组合中专用子运算任务的数量及计算复杂度。 一种软硬件协同加速神经网络算法的系统,包括拆解模块、分解划分模块、加速模 块及收集模块, 拆解模块将神经网络算法任务拆解成通用计算任务和专用计算任务, 分解划分模块将专用计算任务并行分解成专用子运算任务,根据专用子运算任务 处理数据的数量及计算复杂度,将专用子运算任务划分成不同的专用子运算任务组合, 加速模块分别对专用子运算任务组合进行软件处理加速,收集模块收集各专用子 运算任务组合执行任务时使用的计算与存储资源及相应的其他参量, 分解划分模块根据专用子运算任务组合,将通用计算任务分解为通用子运算任 务,加速模块对应专用子运算任务组合利用硬件对通用子运算任务进行处理加速,收集模 块收集通用子运算任务执行任务时使用的计算与存储资源及相应的其他参量,加速模块结 合专用子运算任务组合的计算与存储资源及其他参量,进一步优化专用子运算任务组合及 其对应的通用子运算任务的划分,完成神经网络算法的加速。 所述的一种软硬件协同加速神经网络算法的系统中加速模块对专用子运算任务 组合利用处理器进行软件处理加速。 所述的一种软硬件协同加速神经网络算法的系统中划分通用子运算任务组合前, 分解划分模块利用处理器针对专用子运算任务组合执行任务时使用的计算与存储资源及 其他参量进行分析比较,调整专用子运算任务组合中专用子运算任务数量及计算复杂度, 获得优化的专用子运算任务组合。 一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处 理器执行所述指令时实现权利要求1至5中任一项所述一种软硬件协同加速神经网络算法 的方法的步骤。 一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程 序被处理器执行时,实现如权利要求1至5任一项所述的一种软硬件协同加速神经网络算法 的方法。 本发明的有益之处是: 本发明提供一种软硬件协同加速神经网络算法的方法,利用神经网络算法的计算 需求特性及并行可拆解特性,将神经网络算法任务划分软硬件计算执行,分别将计算任务 部分拆解为专用计算任务和通用计算任务,专用计算任务分解为专用子计算任务,并划分 专用子计算任务组合,利用软件进行处理加速,采集各专用子计算组合的计算与存储资源 及其他参量,并对通用计算任务对照专用子计算任务组合进行划分通用子计算任务组合, 5 CN 111598221 A 说 明 书 3/6 页 利用硬件进行处理加速,同样采集各通用子计算组合的计算与存储资源及其他参量,结合 专用子计算组合的计算与存储资源及其他参量,进一步优化专用子运算任务组合和通用子 运算任务组合的划分,得到最优拆解方法,部署软硬件,高效低耗完成神经网络推理加速。 附图说明 图1是本发明方法流程示意图。