CN116048784A - 智能算法中算子的硬件动态分配方法及*** - Google Patents
智能算法中算子的硬件动态分配方法及*** Download PDFInfo
- Publication number
- CN116048784A CN116048784A CN202211618613.2A CN202211618613A CN116048784A CN 116048784 A CN116048784 A CN 116048784A CN 202211618613 A CN202211618613 A CN 202211618613A CN 116048784 A CN116048784 A CN 116048784A
- Authority
- CN
- China
- Prior art keywords
- operator
- hardware
- operators
- intelligent
- module
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种智能算法中算子的硬件动态分配方法,硬件动态分配方法用于对异构硬件架构中各硬件执行的算子进行动态分配,包括构建领域算子库;选择任务执行该任务的智能算法及异构硬件架构;对智能算法进行算子粒度拆分,并调用领域算子库内算子形成算子调用图;基于算子调用图和异构硬件架构中各硬件资源占用率,评估每一个算子在各硬件上执行表现,制定算子动态分配策略;依据算子动态分配策略,将算子部署到各硬件上执行。硬件动态分配***包括领域算子库模块、分配控制总模块、算子执行模块、运行时模块。本发明设计的方法及***可以进行对硬件执行的算法进行合理分配,提升智能算法的计算效率和异构硬件体系架构的资源利用率。
Description
技术领域
本发明涉及智能算法技术领域,具体为一种智能算法中算子的硬件动态分配方法及***。
背景技术
智能算法在多个领域逐渐展现了它高效性,但是随着各种复杂任务需求的不断增加,智能算法设计的难度不断增加。以嵌入式算法环境为例,一方面在不同场景下智能算法的多样性增加了嵌入式算法环境设计的难度;另一方面由于嵌入式设备空间体积、能耗等各方面约束,也使得嵌入式算法环境设计的难度增大。
目前,智能算法包括多种算子,使得其结构较为复杂,且为了应对不同任务需求,实现智能算法的硬件通常由多种异构硬件设备组成,但是由于智能算法的算子多、不同算子在不同硬件上运行的效率不同、各硬件的使用率不同,因此对智能算法的算子合理分配,保证智能算法能高效稳定的运行,实现智能算法的硬件加速成为亟待解决的问题。
发明内容
为了保证智能算法能高效稳定的运行,实现智能算法的硬件加速,本发明设计了一种智能算法中算子的硬件动态分配方法及***,该方法及***能够合理地将复杂智能算法拆分为小粒度算子,并将这些算子分配给合适的异构硬件设备,从而使整体计算的效能最优,保证了智能算法能高效稳定的运行。
实现发明目的的技术方案如下:
第一方面,本发明提供了一种智能算法中算子的硬件动态分配方法,硬件动态分配方法用于对异构硬件架构中各硬件执行的算子进行动态分配,包括以下步骤:
步骤1、构建领域算子库;
步骤2、接收并分析任务,选择执行该任务的智能算法及异构硬件架构;
步骤3、对智能算法进行算子粒度拆分,依据拆分结果调用领域算子库内算子,形成算子调用图;
步骤4、基于算子调用图和异构硬件架构中各硬件资源占用率,评估每一个算子在各硬件上执行表现,制定算子动态分配策略;
步骤5、依据算子动态分配策略,将算子部署到各硬件上执行。
在上述智能算法中算子的硬件动态分配方法的一个改进的实施例中,上述硬件动态分配方法还包括;
步骤6、计算算子在硬件上执行结果,对算子动态分配策略优化形成新算子动态分配策略,并依据新算子动态分配策略重新将算子部署到各硬件上执行。
进一步地,上述步骤1中,构建领域算子库的方法,包括:
步骤1.1、获取领域中所有算子;
步骤1.2、获取执行各算子的硬件,计算算子在硬件上的执行表现;
步骤1.3、依据算子、执行算子的硬件以及执行表现,构建领域算子库。
进一步地,上述领域算子库内包括智能算子、基本算子;
所述智能算子包但不限于神经网络智能算子、计算机视觉智能算子、机器学习智能算子、启发式智能算子、搜索寻优智能算子;
所述基本算子包但不限于矩阵运算算子、图像读取算子。
第二方面,本发明提供了一种智能算法中算子的硬件动态分配***,包括:
领域算子库模块,所述领域算子库模块内存储有多个算子,其中该领域算子库模块内的算子是通过领域及相关领域内多个任务进行分析,获得各任务的智能算法,并对其算子进行拆分后形成的。
分配控制总模块,所述分配控制总模块确定执行任务的智能算法,形成并评估算子动态分配策略;
算子执行模块,用于执行算子动态分配策略,将算子部署到各硬件上执行。
进一步地,所述分配控制总模块包括分配控制模块和评估模块,所述分配控制模块用于确定任务的算子;所述评估模块用于计算算子在硬件上执行结果,对算子动态分配策略进行评估,并将评估结果发送给所述分配控制模块。
进一步地,硬件动态分配***还包括运行时模块,所述运行时模块包括接口层模块、驱动层模块,所述接口层模块提供编程接口,具有设备管理、上下文管理、内存管理等功能。所述驱动层模块包括多个硬件驱动程序,分别负责对与其对应的硬件进行控制。
更进一步地,所述运行时模块可以根据用户对任务指定的执行硬件类型和操作指令,分配算子的执行硬件;还可以在用户没有指定任务的硬件和操作指令时,根据上述分配控制模块的结果将算子的存储地址和操作指令发送给算子执行模块。
进一步地,上述异构硬件架构中的各硬件,可以为设备级异构计算设备,或者针对异构计算设备内的运算单元,或者设备级的异构计算设备和异构计算设备内运算单元的组合,例如其可以为CPU、GPU、NPU、大容量存储器等硬件。
与现有技术相比,本发明的有益效果是:本发明设计的智能算法中算子的硬件动态分配方法及***,可以进行对硬件执行的算法进行合理分配,提升智能算法的计算效率和异构硬件体系架构的资源利用率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明智能算法中算子的硬件动态分配方法的流程图;
图2为具体实施方式中硬件动态分配***的架构图;
图3为具体实施方式中硬件动态分配方法的运行流程图;
图4为具体实施方式中图像检测任务的算子的硬件分配示意图。
具体实施方式
下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本发明的保护范围内。
本具体实施方式一种智能算法中算子的硬件动态分配方法,硬件动态分配方法用于对异构硬件架构中各硬件执行的算子进行动态分配,参见图1所示,包括以下步骤:
步骤1、构建领域算子库。
具体的,构建领域算子库的方法,包括:
步骤1.1、获取领域中所有算子;
步骤1.2、获取执行各算子的硬件,计算算子在硬件上的执行表现;
步骤1.3、依据算子、执行算子的硬件以及执行表现,构建领域算子库。
本步骤中,构建的领域算子库内包括智能算子、基本算子。所述智能算子包但不限于神经网络智能算子、计算机视觉智能算子、机器学习智能算子、启发式智能算子、搜索寻优智能算子。所述基本算子包但不限于矩阵运算算子、图像读取算子。
步骤2、接收并分析任务,选择执行该任务的智能算法及异构硬件架构;
步骤3、对智能算法进行算子粒度拆分,依据拆分结果调用领域算子库内算子,形成算子调用图;
步骤4、基于算子调用图和异构硬件架构中各硬件资源占用率,评估每一个算子在各硬件上执行表现,制定算子动态分配策略;
步骤5、依据算子动态分配策略,将算子部署到各硬件上执行。
在上述智能算法中算子的硬件动态分配方法的一个改进的实施例中,参见图1所示,上述硬件动态分配方法还包括;
步骤6、计算算子在硬件上执行结果,对算子动态分配策略优化形成新算子动态分配策略,并依据新算子动态分配策略重新将算子部署到各硬件上执行。
本具体是实施方式还公开了一种智能算法中算子的硬件动态分配***,硬件动态分配***用于根据应用层中具体的任务,对硬件层中异构硬件架构中各硬件执行的算子进行动态分配。
参见图2所示,硬件动态分配***包括领域算子库模块、分配控制总模块、算子执行模块、运行时模块。
其中,领域算子库模块,所述领域算子库模块内存储有多个算子,其中该领域算子库模块内的算子是通过领域及相关领域内多个任务进行分析,获得各任务的智能算法,并对其算子进行拆分后形成的。
算子执行模块,用于执行算子动态分配策略,将算子部署到各硬件上执行。
分配控制总模块确定执行任务的智能算法,形成并评估算子动态分配策略。在一个实施例中,分配控制总模块包括分配控制模块和评估模块,所述分配控制模块用于确定任务的算子;所述评估模块用于计算算子在硬件上执行结果,对算子动态分配策略进行评估,并将评估结果发送给所述分配控制模块。具体的,配控制总模块经接口层接收应用层发送任务,选择执行任务的智能算法以及硬件层中各硬件的计算特征和任务特点,对该智能算法进行算子粒度拆分获取算子并选择执行各算子的硬件(即形成算子动态分配策略);其还对算子在硬件上的执行评估进行评估,根据评估结果对算子动态分配策略进行优化调整。
运行时模块,所述运行时模块用于分离智能算法应用与驱动程序,进而使得用户程序不必感知***硬件的变化,参见图2所示,包括接口层模块、驱动层模块,所述接口层模块提供编程接口(如OpenCL编程接口),具有设备管理、上下文管理、内存管理等功能。所述驱动层模块包括多个硬件驱动程序,分别负责对与其对应的硬件进行控制
优选地,运行时模块,还能够根据用户是否指定任务的执行硬件,决定是否所根据分配控制模块的结果将算子的存储地址和操作指令自动发送给算子执行模块。
参见图3和图4所示,本具体实施方式以图像检测任务为例,对本发明的智能算法中算子的硬件动态分配方法进行说明:
1)分配控制总模块经接口层接收应用层的图像检测任务。
2)对图像检测任务分析,获取执行图像检测任务的智能算法,识别智能算法中调用的算子,构成算子调用图。例如该任务所需的算子包括图像读取、缩放、目标预测、结果展示的算子。
3)分配控制总模块根据算子计算流程和硬件占用状态评估算子在异构硬件设备上的执行性能,以执行性能为优化目标制定算子硬件分配策略;
4)此时,假设用户没有指定执行图像检测的异构硬件设备,运行时模块根据分配策略自动选择执行算子的异构硬件设备,例如:根据分配策略,使CPU完成图像读取算子计算,GPU完成图像缩放算子计算和图像展示算子计算,NPU完成目标预测算子计算,运行时会将当前分配好的算子存储地址和操作指令发送给算子执行模块;
5)算子执行模块根据接收到的算子存储地址和操作指令,按照任务执行序列在指定的异构硬件设备上依次执行对应的算子。
本发明设计的智能算法中算子的硬件动态分配方法及***,可以进行对硬件执行的算法进行合理分配,提升智能算法的计算效率和异构硬件体系架构的资源利用率。
本具体实施方式还公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述智能算法中算子的硬件动态分配方法。
本具体实施方式还公开了一种计算机可读存储介质,计算机可读存储介质存储有执行上述智能算法中算子的硬件动态分配方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.一种智能算法中算子的硬件动态分配方法,其特征在于,硬件动态分配方法用于对异构硬件架构中各硬件执行的算子进行动态分配,包括以下步骤:
步骤1、构建领域算子库;
步骤2、接收并分析任务,选择执行该任务的智能算法及异构硬件架构;
步骤3、对智能算法进行算子粒度拆分,依据拆分结果调用领域算子库内算子,形成算子调用图;
步骤4、基于算子调用图和异构硬件架构中各硬件资源占用率,评估每一个算子在各硬件上执行表现,制定算子动态分配策略;
步骤5、依据算子动态分配策略,将算子部署到各硬件上执行。
2.根据权利要求1所述的智能算法中算子的硬件动态分配方法,其特征在于,硬件动态分配方法还包括;
步骤6、计算算子在硬件上执行结果,对算子动态分配策略优化形成新算子动态分配策略,并依据新算子动态分配策略重新将算子部署到各硬件上执行。
3.根据权利要求2所述的智能算法中算子的硬件动态分配方法,其特征在于:步骤1中,构建领域算子库的方法,包括:
步骤1.1、获取领域中所有算子;
步骤1.2、获取执行各算子的硬件,计算算子在硬件上的执行表现;
步骤1.3、依据算子、执行算子的硬件以及执行表现,构建领域算子库。
4.根据权利要求1或3所述的智能算法中算子的硬件动态分配方法,其特征在于:领域算子库内包括智能算子、基本算子;
所述智能算子包但不限于神经网络智能算子、计算机视觉智能算子、机器学习智能算子、启发式智能算子、搜索寻优智能算子;
所述基本算子包但不限于矩阵运算算子、图像读取算子。
5.一种智能算法中算子的硬件动态分配***,其特征在于,包括:
领域算子库模块,所述领域算子库模块内存储有多个算子;
分配控制总模块,所述分配控制总模块确定执行任务的智能算法,形成并评估算子动态分配策略;
算子执行模块,用于执行算子动态分配策略,将算子部署到各硬件上执行。
6.根据权利要求5所述的智能算法中算子的硬件动态分配***,其特征在于:所述分配控制总模块包括分配控制模块和评估模块,所述分配控制模块用于确定任务的算子;所述评估模块用于计算算子在硬件上执行结果,对算子动态分配策略进行评估,并将评估结果发送给所述分配控制模块。
7.根据权利要求5所述的智能算法中算子的硬件动态分配***,其特征在于:硬件动态分配***还包括运行时模块,所述运行时模块包括接口层模块、驱动层模块,所述接口层模块提供编程接口,所述驱动层模块包括多个硬件驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211618613.2A CN116048784A (zh) | 2022-12-15 | 2022-12-15 | 智能算法中算子的硬件动态分配方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211618613.2A CN116048784A (zh) | 2022-12-15 | 2022-12-15 | 智能算法中算子的硬件动态分配方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048784A true CN116048784A (zh) | 2023-05-02 |
Family
ID=86115635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211618613.2A Pending CN116048784A (zh) | 2022-12-15 | 2022-12-15 | 智能算法中算子的硬件动态分配方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048784A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932092A (zh) * | 2023-09-18 | 2023-10-24 | 之江实验室 | 一种算子调用代码自动生成的方法、装置、介质及设备 |
-
2022
- 2022-12-15 CN CN202211618613.2A patent/CN116048784A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932092A (zh) * | 2023-09-18 | 2023-10-24 | 之江实验室 | 一种算子调用代码自动生成的方法、装置、介质及设备 |
CN116932092B (zh) * | 2023-09-18 | 2024-01-09 | 之江实验室 | 一种算子调用代码自动生成的方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10164898B2 (en) | Method and apparatus for cloud system | |
CN112396172A (zh) | 用于管理深度学习加速器***的功率的方法与装置 | |
CN101981529B (zh) | 功率知晓线程调度和处理器的动态使用 | |
CN103608766B (zh) | 向应用主机提供应用对存储器分配和使用的方法和*** | |
KR20200054403A (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 | |
Huang et al. | A workflow for runtime adaptive task allocation on heterogeneous MPSoCs | |
KR20140035416A (ko) | 강화된 어플리케이션 메타데이터를 갖는 메모리 매니저 | |
JP2009528610A (ja) | タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置 | |
KR102052964B1 (ko) | 컴퓨팅 스케줄링 방법 및 시스템 | |
US9141436B2 (en) | Apparatus and method for partition scheduling for a processor with cores | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
CN103635876A (zh) | 用于未经修改的应用的存储器管理模型和接口 | |
CN116048784A (zh) | 智能算法中算子的硬件动态分配方法及*** | |
CN103049328A (zh) | 计算机***中内存资源分配方法 | |
JP2007188523A (ja) | タスク実行方法およびマルチプロセッサシステム | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
US8472455B2 (en) | System and method for traversing a treelet-composed hierarchical structure | |
Nudd et al. | Performance‐based middleware for Grid computing | |
CN108885565B (zh) | 对游戏模式的操作***支持 | |
KR20120071979A (ko) | 클라우드 컴퓨팅 시스템의 자원관리장치 및 방법 | |
CN114764371A (zh) | 任务调度方法及管理*** | |
CN113742059A (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
KR20190106577A (ko) | 이종 멀티 프로세싱 시스템 환경 기반 런타임 관리장치 및 방법 | |
KR20190061241A (ko) | 리소스 통합관리를 위한 메소스 처리 장치 및 방법 | |
AU2021106510A4 (en) | A method of cpu scheduling performance analysis using markov chain modeling. |
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 |