CN112099850A - 一种多核Hourglass网络加速方法 - Google Patents
一种多核Hourglass网络加速方法 Download PDFInfo
- Publication number
- CN112099850A CN112099850A CN202010945897.0A CN202010945897A CN112099850A CN 112099850 A CN112099850 A CN 112099850A CN 202010945897 A CN202010945897 A CN 202010945897A CN 112099850 A CN112099850 A CN 112099850A
- Authority
- CN
- China
- Prior art keywords
- calculation
- cpu core
- core
- hourglass
- bypass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
本发明公开一种多核Hourglass网络加速方法,涉及人工智能领域;将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
Description
技术领域
本发明公开一种加速方法,涉及人工智能领域,具体地说是一种多核Hourglass网络加速方法。
背景技术
Hourglass网络用于进行姿态估计,使用全卷积神经网络,对给定的单张RGB图像,可以输出人体关键点的精确像素位置,使用多尺度特征,捕捉人体各关节点的空间位置信息。网络结构形似沙漏状,重复使用top-down到bottom-up来推断人体的关节点位置。但现有的Hourglass网络的计算能力对于较为复杂的每个尺度信息的计算需求,仍显不足,并且没有完善的加速方法对Hourglass网络进行加速。
发明内容
本发明针对现有技术的问题,提供一种多核Hourglass网络加速方法,通过处理器多核分工协作完成算法拆解加速,通过对数据降采样与升采样及通道累加协同加速计算,在保障数据原尺度信息基础上,对较高层次特征进行提取计算,完成Hourglass特征提取加速过程。
本发明提出的具体方案是:
一种多核Hourglass网络加速方法:将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
优先地,所述的一种多核Hourglass网络加速方法中利用主CPU核心启动其他CPU核心,并在其他CPU核心运行各自计算控制任务时通过主CPU核心进行算法整体任务调度。
优先地,所述的一种多核Hourglass网络加速方法中根据计算控制任务需求,将各CPU核心排列处理计算控制任务的优先级,上一级CPU核心完成一次计算控制任务后,以核间中断形式告知下一级CPU核心。
优先地,所述的一种多核Hourglass网络加速方法中将主路计算CPU核心划分为主路计算单元,每个主路计算单元分配各自独立的内存访问控制地址。
优先地,所述的一种多核Hourglass网络加速方法中将旁路计算核心划分为旁路计算单元,每个旁路计算单元分配各自独立的内存访问控制地址。
优先地,所述的一种多核Hourglass网络加速方法中主路计算单元和旁路计算单元分别由各自的残差卷积模块组成。
本发明还提供一种多核Hourglass网络加速系统,包括拆解分配模块及CPU核心,CPU核心包括主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心,
拆解分配模块将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
本发明还提供一种多核Hourglass网络加速装置,包括至少一个存储器和至少一个多核处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个多核处理器,用于调用所述机器可读程序,执行所述的一种多核Hourglass网络加速方法。
本发明的有益之处是:
本发明提供一种多核Hourglass网络加速方法,通过处理器多核分工协作完成算法拆解加速,使用多核流水复用形式,能够完成输入图片数据的无缝处理,具有较高的性能和功耗比,使多核并行处理加速Hourglass网络更能发挥优势,并可通过本发明方法对数据降采样与升采样及通道累加协同加速计算,在保障数据原尺度信息基础上,对较为复杂的高层次特征进行提取计算,完成Hourglass特征提取加速。
附图说明
图1是本发明方法计算控制任务加速框架示意图。
具体实施方式
多核处理器将多个较低主频的处理核心集成到一个芯片内部,通过提高IPC(Instruction Per Clock)来提升处理器性能。多核处理器构架在提升性能的同时又降低了功耗,是嵌入式设备上处理器的理想选择。
卷积神经网络是人工神经网络的一种,卷积神经网络是机器深度学习中的一种“前馈神经网络”,前馈是信号量的输入获得,到输出过程是往前方传导的。前馈用以神经网络的计算输出,不对神经网络调整,每一层中每一个神经元算出该层的输出并向下一层传递到输出层,进而计算出网络的输出结果。卷积神经网络本质上是一种输入到输出的映射网络,能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积神经网络加以训练,神经网络就具有输入输出之间的映射能力。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种多核Hourglass网络加速方法:将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
利用本发明方法,通过处理器多核分工协作完成算法拆解加速,使用多核流水复用形式,能够完成输入图片数据的无缝处理,对较为复杂的高层次特征进行提取计算,完成Hourglass特征提取加速,具有较高的性能和功耗比,
在本发明的技术方案的基础上,举例说明本发明方法,例如多核处理器中,设置CPU核心0作为主CPU核心,设置CPU核心1作为Hourglass网络主路计算核心,设置CPU核心2作为Hourglass网络旁路计算核心,设置CPU核心3作为Hourglass网络算子计算核心,CPU核心0-4组成并行流水结构,以Pipeline形式完成整个Hourglass网络加速计算。
上述各CPU核心具有各自的独立内存空间,同时具有共享内存空间,用于中间结果传输存取直接,并利用主CPU核心负责系统初始化控制,启动其他CPU核心,并在其他CPU核心完成各自初始化后,运行各自计算控制任务时进行算法整体任务调度及前后数据处理,同时,将各CPU核心排列处理计算控制任务的优先级,可将主CPU核心的优先级设置为最高,上一级CPU核心完成一次计算控制任务后,以核间中断形式告知下一级CPU核心,以便计算控制任务的有序进行。
在上述实施例的基础上,参考图1,本实施例中举例完成Hourglass网络中的一阶Hourglass子网络计算中的计算控制任务时,
CPU核心1作为Hourglass网络主路计算核心,完成Hourglass网络中的一阶Hourglass子网络计算中的主路计算控制,设置4组一阶Hourglass子网络计算中的主路计算单元,各组单元具有各自独立的内存访问控制地址,而主路计算单元由多个残差卷积模块级联组成,残差卷积模块处理计算包括对输入数据依次进行主路1x1卷积、3x3卷积、1x1卷积,1x1的旁路卷积,及最终通道求和的过程,
CPU核心2作为Hourglass网络旁路计算核心,完成Hourglass网络中的一阶Hourglass子网络计算中的旁路计算控制,设置4组一阶Hourglass子网络计算中的旁路计算单元,各组单元具有各自独立的内存访问控制地址,而旁路计算单元由多个残差卷积模块级联组成,残差卷积模块处理计算包括对输入数据依次进行主路1x1卷积、3x3卷积、1x1卷积,1x1的旁路卷积,及最终通道求和的过程,
CPU核心3作为Hourglass网络特殊算子计算核心,完成包括最大化池化降采样及最邻近插值升采样计算控制任务,
CPU核心0-4组成并行流水结构,各核心完成一次计算任务后,以核间中断形式告知下一级核心,并等待前级计算完成。
残差卷积模块可由CPU通用ALU及CU实现,或使用定制乘加阵列硬件单元,完成卷积计算。
利用本发明方法通过上述处理器多核分工协作完成算法拆解加速,通过对数据降采样与升采样及通道累加协同加速计算,在保障数据原尺度信息基础上,对较高层次特征进行提取计算,完成Hourglass特征提取加速过程。
本发明还提供一种多核Hourglass网络加速系统,包括拆解分配模块及CPU核心,CPU核心包括主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心,
拆解分配模块将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明还提供一种多核Hourglass网络加速装置,包括至少一个存储器和至少一个多核处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个多核处理器,用于调用所述机器可读程序,执行所述的一种多核Hourglass网络加速方法。
上述装置内的多核处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,上述各流程和各系统及装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种多核Hourglass网络加速方法,其特征是将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
2.根据权利要求1所述的一种多核Hourglass网络加速方法,其特征是利用主CPU核心启动其他CPU核心,并在其他CPU核心运行各自计算控制任务时通过主CPU核心进行算法整体任务调度。
3.根据权利要求1或2所述的一种多核Hourglass网络加速方法,其特征是根据计算控制任务需求,将各CPU核心排列处理计算控制任务的优先级,上一级CPU核心完成一次计算控制任务后,以核间中断形式告知下一级CPU核心。
4.根据权利要求3所述的一种多核Hourglass网络加速方法,其特征是将主路计算CPU核心划分为主路计算单元,每个主路计算单元分配各自独立的内存访问控制地址。
5.根据权利要1或4所述的一种多核Hourglass网络加速方法,其特征是将旁路计算核心划分为旁路计算单元,每个旁路计算单元分配各自独立的内存访问控制地址。
6.根据权利要求5所述的一种多核Hourglass网络加速方法,其特征是主路计算单元和旁路计算单元分别由各自的残差卷积模块组成。
7.一种多核Hourglass网络加速系统,其特征是包括拆解分配模块及CPU核心,CPU核心包括主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心,
拆解分配模块将Hourglass算法任务进行拆解,不同种类计算控制任务分配至相应的CPU核心,其中将算法整体调度任务及数据前后处理任务分配至主CPU核心,
将Hourglass网络中Hourglass子网络计算中的主路计算控制任务分配至主路计算CPU核心,将Hourglass网络中Hourglass子网络计算中的旁路计算控制任务分配至旁路计算CPU核心,将最大化池化降采样及最邻近插值升采样计算控制任务分配至算子计算CPU核心,
将主CPU核心、主路计算CPU核心、旁路计算CPU核心及算子计算CPU核心组成并行流水结构,进行计算控制任务的加速处理。
8.一种多核Hourglass网络加速装置,其特征是包括至少一个存储器和至少一个多核处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个多核处理器,用于调用所述机器可读程序,执行权利要求1至6中任一所述的一种多核Hourglass网络加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010945897.0A CN112099850A (zh) | 2020-09-10 | 2020-09-10 | 一种多核Hourglass网络加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010945897.0A CN112099850A (zh) | 2020-09-10 | 2020-09-10 | 一种多核Hourglass网络加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112099850A true CN112099850A (zh) | 2020-12-18 |
Family
ID=73752377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010945897.0A Pending CN112099850A (zh) | 2020-09-10 | 2020-09-10 | 一种多核Hourglass网络加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099850A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112509071A (zh) * | 2021-01-29 | 2021-03-16 | 电子科技大学 | 一种亮度信息辅助的色度信息压缩重建方法 |
-
2020
- 2020-09-10 CN CN202010945897.0A patent/CN112099850A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112509071A (zh) * | 2021-01-29 | 2021-03-16 | 电子科技大学 | 一种亮度信息辅助的色度信息压缩重建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679620B (zh) | 人工神经网络处理装置 | |
CN107679621B (zh) | 人工神经网络处理装置 | |
CN107704922B (zh) | 人工神经网络处理装置 | |
CN109376861B (zh) | 一种用于执行全连接层神经网络训练的装置和方法 | |
US7574466B2 (en) | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements | |
CN109121435A (zh) | 处理装置和处理方法 | |
US11080593B2 (en) | Electronic circuit, in particular capable of implementing a neural network, and neural system | |
KR20200143686A (ko) | 연산을 가속하기 위한 가속기 및 시스템 | |
US11321607B2 (en) | Machine learning network implemented by statically scheduled instructions, with compiler | |
US11017290B2 (en) | Signal processing module, especially for a neural network and a neuronal circuit | |
CN107632965B (zh) | 可重构的s型运算装置及运算方法 | |
CN112084038A (zh) | 神经网络的内存分配方法及装置 | |
CN113159285B (zh) | 神经网络加速器 | |
CN110377874B (zh) | 卷积运算方法及系统 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN112099850A (zh) | 一种多核Hourglass网络加速方法 | |
US11687831B1 (en) | Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference | |
US20220326988A1 (en) | Explicit scheduling of on-chip operations | |
EP3719662A2 (en) | Systems and methods for reconfigurable systolic arrays | |
Wang | A linear-time algorithm for computing collision-free path on reconfigurable mesh | |
CN114692853A (zh) | 运算单元架构、运算单元丛集及卷积运算的执行方法 | |
CN116775283A (zh) | 一种gpgpu资源分配管理方法及系统 | |
Ercan et al. | Parallel image processing with one-dimensional DSP arrays | |
CN112394989A (zh) | 无符号转半精度浮点指令处理装置、方法及相关产品 | |
CN117437113A (zh) | 用于对图像数据进行加速处理的系统、方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |