CN115034365A - 一种面向神经网络处理器的多核并行计算方法 - Google Patents
一种面向神经网络处理器的多核并行计算方法 Download PDFInfo
- Publication number
- CN115034365A CN115034365A CN202210649907.5A CN202210649907A CN115034365A CN 115034365 A CN115034365 A CN 115034365A CN 202210649907 A CN202210649907 A CN 202210649907A CN 115034365 A CN115034365 A CN 115034365A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network processor
- calculation
- algorithms
- processor cores
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明提出了一种面向神经网络处理器的多核并行计算方法,属于深度学习领域,可用于实现多个相同或不同神经网络算法的加速计算。本发明方法通过硬件自动调度与分配的方式,把多个算法的多个计算操作分配给多个神经网络处理器核,并且在每次的计算过程中,最大化使用多个神经网络处理器核计算资源,从而提高计算性能。本方法中计算任务的分配是完全由硬件自动完成的,无需外部软件参与,因此拥有极大的易用性。
Description
技术领域
本发明涉及深度学习技术领域,尤其涉及一种面向神经网络处理器的多核并行计算方法,可用于实现多个相同或不同神经网络算法的加速计算。
背景技术
神经网络是人工智能领域的热门课题之一,神经网络经历了从浅层神经网络到深度神经网络的重要变革,深度神经网络通过增加模型深度来提高其特征提取和数据拟合的能力在自然语言处理自动驾驶图像分析等问题上相较浅层模型具有显著优势.随着训练数据规模的增加和模型的日趋复杂深度神经网络的训练成本越来越高并行化成为增强其应用时效性的重要技术手段。
现有的神经网络加速计算可分为两大类型。一种是针对特定模型进行加速,也就是算法的硬件化。此种类型可针对特定算法实现较高的性能和较低的功耗,但通用性差,一旦要更换算法,不管是算法层面的性能升级还是功能改进,都需要重新设计硬件加速方案。另一种神经网络加速计算的类型是软件定义的神经网络加速计算,也就是通用的神经网络处理器,通过分解神经网络模型计算需求,设计指令集,进而设计神经网络处理器,实现神经网络加速。此种方式通用性好,通过应用程序调用不同的神经网络模型,在硬件设计不变的情况下实现对不同神经网络模型的加速。
对于通用神经网络处理器,可以通过在同一系统中调用多个处理器核的方式组成多核系统。传统多核处理器系统通过软件调度的方式实现多核的并行计算,这种多核调度的软件开销较大,且通常需要软件人员开发多核并行的软件系统,设计难度也较大。
发明内容
本发明针对多核神经网络处理器,提出一种面向神经网络处理器的多核并行计算方法,用于实现多个相同或不同神经网络算法的加速计算。其中,多核并行计算方法完全采用硬件的方式实现,多核并行计算过程无需软件参与,也无需开发专用的并行软件,计算效率高、计算开销小,计算速度快且计算方法简单易使用。
为实现上述目的,本发明采取的技术方案为:
一种面向神经网络处理器的多核并行计算方法,包括如下步骤:
(1)加载N个神经网络算法的二进制数据到内存,供N个神经网络处理器核使用,N≥2;所述N个神经网络算法的二进制数据来自于神经网络处理器配套编译器的输出结果;
(2)加载N个待计算数据到内存,每个待计算数据对应一个神经网络处理器核;
(3)把内存中所存放的N个神经网络算法的二进制数据分配给N个神经网络处理器核,分配阶段所采用的策略如下:
(3a)如果所有神经网络算法都存在未完成的计算,则每个神经网络算法取一个计算图操作,总共取N个计算图操作,分别分配给N个神经网络处理器核;
(3b)如果有K个神经网络算法已完成计算,K>N,则剩下K-N个未完成的神经网络算法各取一个计算图操作,分配给K-N个神经网络处理器核;然后再判断是否存在剩余未完成计算的神经网络算法,以随机的方式取剩余未完成计算的神经网络算法的计算图给未分配的神经网络处理器核,直到所有神经网络处理器核都分配到计算任务,或者所有计算任务都分配完成;
其中,计算图操作与神经网络处理器核的的匹配采用随机的方式;
(4)每一次分配后,开启计算阶段,待所有神经网络处理器核的计算都完成后,再进行新的分配任务;
(5)计算全部结束后释放资源,退出并返回ok状态。
进一步的,在步骤(3)的分配阶段中,每个神经网络处理器核被分配1至N个神经网络算法,分配完成后,所有神经网络算法的相关信息存储在每个神经网络处理器核的指定内存空间。
进一步的,在步骤(4)的计算阶段中,每个神经网络处理器核自动开启神经网络算法的计算,一个神经网络算法计算结束后,神经网络处理器核自动开启下一个被分配神经网络算法的计算。
本发明与现有技术相比,具有如下优点:
1、本发明计算效率高、计算开销小,计算速度快且计算方法简单易使用。
2、本发明的多核并行计算方法完全采用硬件的方式实现,多核并行计算过程无需软件参与,也无需开发专用的并行软件。
附图说明
图1为本发明实施例中神经网络算法的计算图模型;
图2为本发明实施例中多个并行计算的神经网络算法结构图;
图3为本发明实施例中神经网络算法多核并行计算流程图。
具体实施方式
下面结合附图和实施例,对本发明作进一步详细描述。
一种面向神经网络处理器的多核并行计算方法,该方法中,神经网络模型经神经网络处理器配套编译器处理之后,产生对应的神经网络算法二进制数据;然后,加载N个神经网络算法二进制数据到内存。其中,神经网络算法二进制数据包含完整的神经网络算法的所有信息;N个神经网络算法被N个神经网络处理器核使用;计算任务的分配完全由硬件自动完成,无需外部软件参与。
所述神经网络算法指使用计算图模型所描述的神经网络计算流程。图1所示为一个神经网络算法的计算图模型,其中,计算图的输入/输出是张量数据,计算图的类型代表操作类型。所述神经网络算法的加速计算指神经网络处理器获取计算图模型中的输入张量,实现计算图对应计算类型的计算功能,并计算获得输出张量结果。
上述方法可通过编译器模块、处理器模块、控制器模块、内存模块实现,其中:
编译器模块,用于将神经网络算法模型编译成算法二进制数据;
处理器模块,用于实现神经网络算法计算任务;
控制器模块,用于实现计算资源的分配功能;
内存模块,用于存放神经网络算法二进制数据文件和待计算数据。
参照图2,上述方法使用多个神经网络处理器核,同时完成多个神经网络算法的并行计算
参照图3,在实施过程中,处理器模块只处理二进制数据文件,因此需要将N个神经网络算法分别送入编译模块进行处理,生成相对应的N个算法二进制数据,每个算法二进制数据包含了一个神经网络算法的所有信息(包括配置与参数)。将N个待计算数据和N个算法二进制数据加载到内存模块,其中每个神经网络处理器核对应一个待计算数据。分配器模块把内存中所存放的N个算法分配给N个神经网络处理器核,分配所采用的策略如下:
a)如果所有算法都存在未完成的计算,则每个算法取一个计算图操作,总共取N个计算图操作,分别分配给N个神经网络处理器核;
b)如果有K个算法已完成计算,则剩下K-N个未完成算法各取一个计算图操作,分配给K-N个神经网络处理器核。然后再判断是否存在未完成计算的算法,以随机的方式取剩下未完成算法的计算图给未分配的神经网络处理器核,直到所神经网络处理器核都分配计算任务或者所有计算任务都分配完;
其中,计算图操作与神经网络处理器核的的匹配采用随机的方式。
在分配器模块完成一次分配计算后,处理器模块依据分配的结果,调用相应的算法二进制数据及待计算数据开启计算过程,待所有神经网络处理器核的计算都完成后,再进行新的计算分配任务。待计算全部完成之后,释放资源,退出计算并返回ok状态。
本方法中,由于计算分配可以不断地向每个神经网络处理器核的指定内存空间写入待计算算法的信息,因此,每个核之间无需同步也无需外部软件介入即可不间断的实现算法的连续计算,计算效率高、计算开销小,计算速度快且简单易使用。
总之,本发明通过硬件自动调度与分配的方式,把多个算法的多个计算操作分配给多个神经网络处理器核,并且在每次的计算过程中,最大化使用多个神经网络处理器核计算资源,从而提高计算性能。本发明中计算任务的分配是完全由硬件自动完成的,无需外部软件参与,因此拥有极大的易用性。
Claims (3)
1.一种面向神经网络处理器的多核并行计算方法,其特征在于,包括如下步骤:
(1)加载N个神经网络算法的二进制数据到内存,供N个神经网络处理器核使用,N≥2;所述N个神经网络算法的二进制数据来自于神经网络处理器配套编译器的输出结果;
(2)加载N个待计算数据到内存,每个待计算数据对应一个神经网络处理器核;
(3)把内存中所存放的N个神经网络算法的二进制数据分配给N个神经网络处理器核,分配阶段所采用的策略如下:
(3a) 如果所有神经网络算法都存在未完成的计算,则每个神经网络算法取一个计算图操作,总共取N个计算图操作,分别分配给N个神经网络处理器核;
(3b) 如果有K个神经网络算法已完成计算,K>N,则剩下K-N个未完成的神经网络算法各取一个计算图操作,分配给K-N个神经网络处理器核;然后再判断是否存在剩余未完成计算的神经网络算法,以随机的方式取剩余未完成计算的神经网络算法的计算图给未分配的神经网络处理器核,直到所有神经网络处理器核都分配到计算任务,或者所有计算任务都分配完成;
其中,计算图操作与神经网络处理器核的匹配采用随机的方式;
(4)每一次分配后,开启计算阶段,待所有神经网络处理器核的计算都完成后,再进行新的分配任务;
(5)计算全部结束后释放资源,退出并返回ok状态。
2.根据权利要求1所述的一种面向神经网络处理器的多核并行计算方法,其特征在于,在步骤(3)的分配阶段中,分配完成后,所有神经网络算法的相关信息存储在每个神经网络处理器核的指定内存空间。
3.根据权利要求1所述的一种面向神经网络处理器的多核并行计算方法,其特征在于,在步骤(4)的计算阶段中,每个神经网络处理器核自动开启神经网络算法的计算,一个神经网络算法计算结束后,神经网络处理器核自动开启下一个被分配神经网络算法的计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210649907.5A CN115034365A (zh) | 2022-06-10 | 2022-06-10 | 一种面向神经网络处理器的多核并行计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210649907.5A CN115034365A (zh) | 2022-06-10 | 2022-06-10 | 一种面向神经网络处理器的多核并行计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115034365A true CN115034365A (zh) | 2022-09-09 |
Family
ID=83122921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210649907.5A Pending CN115034365A (zh) | 2022-06-10 | 2022-06-10 | 一种面向神经网络处理器的多核并行计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115034365A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687799A (zh) * | 2024-02-02 | 2024-03-12 | 中国科学院空天信息创新研究院 | 一种面向遥感解译应用的分布流式加速方法及计算终端 |
-
2022
- 2022-06-10 CN CN202210649907.5A patent/CN115034365A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687799A (zh) * | 2024-02-02 | 2024-03-12 | 中国科学院空天信息创新研究院 | 一种面向遥感解译应用的分布流式加速方法及计算终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024060789A1 (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
CN105487838B (zh) | 一种动态可重构处理器的任务级并行调度方法与系统 | |
CN112328380A (zh) | 一种基于异构计算的任务调度方法及装置 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
US20210049453A1 (en) | Chip and chip-based data processing method | |
CN109976911B (zh) | 一种自适应资源调度方法 | |
CN114237869B (zh) | 基于强化学习的Ray双层调度方法、装置和电子设备 | |
CN114356578B (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN111539526A (zh) | 一种神经网络卷积的方法和设备 | |
CN114647515A (zh) | 一种面向gpu集群的动态资源调度方法 | |
CN115034365A (zh) | 一种面向神经网络处理器的多核并行计算方法 | |
CN107943592B (zh) | 一种面向gpu集群环境的避免gpu资源争用的方法 | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
CN103810041A (zh) | 一种支持动态伸缩的并行计算的方法 | |
CN115034366A (zh) | 一种神经网络流水线多核并行计算方法 | |
CN114283046B (zh) | 基于icp算法的点云文件配准方法、装置及存储介质 | |
CN114356550A (zh) | 一种面向三级并行中间件的计算资源自动分配方法及系统 | |
CN111090508B (zh) | 一种基于OpenCL的异构协同并行计算中设备间动态任务调度方法 | |
CN113485845A (zh) | 一种多线程人工智能资源分配方法及装置 | |
CN113641407B (zh) | 一种基于cpu和gpu的混合并行智能优化方法 | |
CN117632520B (zh) | 基于申威众核处理器的主从核监测交互的计算量调度方法 | |
CN118095382A (zh) | 深度学习模型的并行计算调度方法、装置、设备及介质 | |
CN108416435B (zh) | 一种具有低带宽激活装置的神经网络处理器及其方法 | |
CN112947932B (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 |