CN114282641A - 一种通用异构加速框架的构建方法 - Google Patents
一种通用异构加速框架的构建方法 Download PDFInfo
- Publication number
- CN114282641A CN114282641A CN202210214124.4A CN202210214124A CN114282641A CN 114282641 A CN114282641 A CN 114282641A CN 202210214124 A CN202210214124 A CN 202210214124A CN 114282641 A CN114282641 A CN 114282641A
- Authority
- CN
- China
- Prior art keywords
- heterogeneous
- intelligent hardware
- framework
- interface api
- neural network
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于人工智能计算领域,具体涉及一种通用异构加速框架的构建方法。一种通用异构加速框架的构建方法,包括以下步骤:步骤S1:确定目标操作系统和异构智能硬件设备;步骤S2:所述目标操作系统加载所述异构智能硬件设备的驱动、计算库并选定计算框架及神经网络模型;步骤S3:通过所述神经网络模型和所述计算框架构建实例化的神经网络模型;步骤S4:使用深度学习编译器将所述实例化的神经网络模型编译为中间表示层IR;所述统一接口API是根据所述计算库编写;步骤S5:所述目标操作系统导入所述通用异构加速框架的核心组件,并将其编译成运行在异构智能硬件设备的软件模型。
Description
技术领域
本发明属于人工智能计算领域,具体涉及一种通用异构加速框架的构建方法。
背景技术
随着人工智能技术及应用的发展,传统的CPU处理器已经无法满足机器学习、深度学习等人工智能计算对海量数据进行大量复杂运算的需求,因此需要将人工智能相关计算任务转移至人工智能加速卡和GPU、NPU、FPGA、DSP等智能芯片设备上进行高性能处理。
目前人工智能领域有大量复杂的神经网络模型和计算框架,每种计算框架都有各自的算子;在具体的人工智能应用中,需要选某个计算框架的算子来对神经网络模型进行实例化。目前主流的计算框架有tensorflow、pytorch、caffe2、mxnet等。常见的神经网络模型有resnet50、bert、vgg等。目前对神经网络模型实例进行训练和推理所使用的硬件加速方案单一,仅仅支持使用部分GPU作为硬件加速,而对其他智能硬件则缺乏支持。且目前和深度学习相关的硬件设计将变得更加多样化,由于硬件的多样性,如何将神经网络模型实例的训练和推理有效地映射到不同架构的智能硬件上进行加速计算,为人工智能应用的开发增加了难度。
发明内容
有鉴于此,本发明为了解决现有技术存在的缺陷和不足,提供了一种通用异构加速框架的构建方法,通过该方法构建的通用异构加速框架模型能够将实例化的神经网络模型编译转换成适合在各种智能硬件上进行并行加速运行的软件模型;且该软件模型提供的可扩展接口API能够完成对今后市场上新兴的异构智能设备的注册,简化了使用新兴异构智能设备对神经网络模型进行加速计算的开发难度,提高了使用智能设备进行人工智能应用开发的效率。
本发明一种通用异构加速框架的构建方法,所述软件模型内包括通用异构加速框架的核心组件;核心组件包括深度学习编译器、统一接口API、计算库;
构建方法包括以下步骤:
步骤S1:确定目标操作系统和异构智能硬件设备;
步骤S2:所述目标操作系统加载所述异构智能硬件设备的驱动、计算库并选定计算框架及神经网络模型;
步骤S3:通过所述神经网络模型和所述计算框架构建实例化的神经网络模型;
步骤S4:使用深度学习编译器将所述实例化的神经网络模型编译为中间表示层IR;根据所述计算库编写所述统一接口API,使统一接口API调用所述计算库;
步骤S5:所述目标操作系统导入所述通用异构加速框架的核心组件,并将其编译成运行在异构智能硬件设备的软件模型。
进一步的,所述步骤S5包括以下步骤:
步骤S501:所述目标操作系统安装所述统一接口API;
步骤S502:所述中间表示层IR调用所述统一接口API;
步骤S503:所述统一接口API将所述中间表示层IR编译成在异构智能硬件设备运行的软件模型,并加载至所述异构智能硬件设备上进行加速计算。
进一步的,所述核心组件还包括可扩展接口API;所述可扩展接口API根据所述计算库编写;所述可扩展接口API用于注册新的异构智能硬件设备。
进一步的,当增加新的异构智能硬件设备时,安装新的异构智能硬件设备的驱动及计算库,然后调用所述可扩展接口API对新的异构智能硬件设备注册,通过实例化的神经网络模型对中间表示层IR进行重新编译,然后将核心组件重新导入,得到更新后的通用异构加速框架。
本发明所构建的通用异构加速框架能够屏蔽底层异构智能硬件设备诸如CPU、GPU、FPGA、DSP、NPU等的不同,通过将基于tensorflow、pytorch、mxnet、caffe2等计算框架实例化的神经网络模型编译转换成适合在不同异构智能设备上运行的软件模型,完成神经网络模型实例在各种智能设备上的加速计算;且该通用异构加速框架模型提供的可扩展接口API能够完成对今后市场上新兴的异构智能设备的注册,简化了使用新兴异构智能设备对神经网络模型进行加速计算的开发难度,提高了使用智能设备进行人工智能应用开发的效率。
本发明所构建的通用异构加速框架不仅能够屏蔽底层智能硬件设备的不同,对上层计算框架构建的网络模型提供统一接口API,并对接上层计算框架已有的硬件加速方式,从而使得各计算框架能够在各种硬件设备上通过硬件加速计算;本发明还提供了可扩展接口API,用以支持新兴的异构智能硬件设备,不仅解决了智能硬件加速方案单一的缺陷,还对异构智能硬件的多样性提供了支持。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种通用异构加速框架的构建方法中通用异构加速框架的流程图;
图2本发明提供的一种通用异构加速框架的构建方法中通用异构加速框架的实例流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1所示,本发明提供了一种通用异构加速框架的构建方法,
通用异构加速框架为软件模型,软件模型内含有通用异构加速框架的核心组件;核心组件包括深度学习编译器、统一接口API、计算库、可扩展接口API;
统一接口API、可扩展接口API是根据异构智能硬件设备的计算库编写;统一接口API调用计算库,可扩展接口API用于注册新的异构智能硬件设备。
构建方法包括以下步骤:
步骤S1:确定目标操作系统和异构智能硬件设备;
步骤S2:所述目标操作系统加载所述异构智能硬件设备的驱动、计算库并选定计算框架及神经网络模型;
步骤S3:通过神经网络模型和计算框架构建实例化的神经网络模型;
步骤S4:使用深度学习编译器将实例化的神经网络模型编译为中间表示层IR;根据计算库编写统一接口API,使统一接口API调用计算库;
步骤S5:目标操作系统导入通用异构加速框架的核心组件,并将其编译成运行在异构智能硬件设备的软件模型。
具体的,所述步骤S5包括以下步骤:
步骤S501:所述目标操作系统安装所述统一接口API;
步骤S502:所述中间表示层IR调用所述统一接口API;
步骤S503:所述统一接口API将中间表示层IR编译成在异构智能硬件设备运行的软件模型,并加载至异构智能硬件设备上进行加速计算。
当市场上出现新的异构智能硬件设备时,可以通过安装新的异构智能硬件设备的驱动及计算库,然后调用可扩展接口API对新的异构智能硬件设备注册,通过实例化的神经网络模型对中间表示层IR进行重新编译,然后将通用异构加速框架的核心组件重新导入,得到更新后的通用异构加速框架。
图2为本发明一实施例的通用异构加速框架的逻辑结构图,异构智能硬件设备为Nvidia系列RTX4000、计算库cudnn,目标操作系统为国产银河麒麟高级服务器操作系统V10版本,下面说明通用异构加速框架的构建步骤。
步骤S1:选定银河麒麟高级服务器操作系统V10版本,异构智能硬件设备为Nvidia系列RTX4000 GPU;
步骤S2:安装Nvidia系列RTX4000 GPU驱动、计算库cudnn、计算框架tensorflow及神经网络模型resnet50;
步骤S3:通过tensorflow和网络模型resnet50构建实例化的网络模型resnet50;
步骤S4:使用深度学习编译器llvm将实例化的网络模型resnet50编译成中间表示层IR;根据Nvidia系列RTX4000 GPU的计算库cudnn编写统一接口API和可扩展接口API;
步骤S5:银河麒麟高级服务器操作系统V10版本上安装统一接口API及可扩展接口API;中间表示层IR调用统一接口API,统一接口API使实例化的网络模型resnet50编译成适合在RTX4000上运行的CUDA软件模型,并将其加载至GPU上运行。
当新增的异构智能硬件设备为FPGA异构设备时,安装FPGA的驱动及计算库之后,通过可扩展接口API完成FPGA设备及计算库的注册,以新增对FPGA异构设备的支持,并再次通过异构加速框架核心组件的llvm编译器及统一接口API将基于tensorflow实例化的resnet50神经网络模型编译成适合在FPGA上运行的软件模型,并将其加载至FPGA上运行。
本发明提出的一种通用异构加速框架的构建方法具备如下的技术效果:
(1)完成通用异构加速框架,屏蔽异构智能硬件设备的不同,将基于计算框架实例化的神经网络模型编译成适合在底层各种异构智能硬件设备上运行的软件模型,并加载至智能设备上进行加速计算。从而克服了人工智能应用使用单一智能硬件加速的缺陷,满足了人工智能应用对海量数据处理的能力要求。
(2)本发明通过通用异构加速框架的统一接口API,极大的降低了人工智能应用开发者对异构智能硬件设备的计算库的调用难度;本发明通过可扩展接口API,可以快速完成对新兴的异构智能硬件设备的注册,简化了使用新兴异构智能设备对神经网络模型进行加速计算的开发难度,提高了使用智能设备进行人工智能应用开发的效率。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (4)
1.一种通用异构加速框架的构建方法,其特征在于,
所述通用异构加速框架为软件模型,所述软件模型内包括通用异构加速框架的核心组件;核心组件包括深度学习编译器、统一接口API、计算库;
构建方法包括以下步骤:
步骤S1:确定目标操作系统和异构智能硬件设备;
步骤S2:所述目标操作系统加载所述异构智能硬件设备的驱动、计算库并选定计算框架及神经网络模型;
步骤S3:通过所述神经网络模型和所述计算框架构建实例化的神经网络模型;
步骤S4:使用深度学习编译器将所述实例化的神经网络模型编译为中间表示层IR;根据所述计算库编写所述统一接口API,使统一接口API调用所述计算库;
步骤S5:所述目标操作系统导入所述通用异构加速框架的核心组件,并将其编译成运行在异构智能硬件设备的软件模型。
2.根据权利要求1所述的一种通用异构加速框架的构建方法,其特征在于,所述步骤S5包括以下步骤:
步骤S501:所述目标操作系统安装所述统一接口API;
步骤S502:所述中间表示层IR调用所述统一接口API;
步骤S503:所述统一接口API将所述中间表示层IR编译成在异构智能硬件设备运行的软件模型,并加载至所述异构智能硬件设备上进行加速计算。
3.根据权利要求2所述的一种通用异构加速框架的构建方法,其特征在于,所述核心组件还包括可扩展接口API;所述可扩展接口API根据所述计算库编写;所述可扩展接口API用于注册新的异构智能硬件设备。
4.根据权利要求3所述的一种通用异构加速框架的构建方法,其特征在于,当增加新的异构智能硬件设备时,安装新的异构智能硬件设备的驱动及计算库,然后调用所述可扩展接口API对新的异构智能硬件设备注册,通过实例化的神经网络模型对中间表示层IR进行重新编译,然后将核心组件重新导入,得到更新后的通用异构加速框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214124.4A CN114282641B (zh) | 2022-03-07 | 2022-03-07 | 一种通用异构加速框架的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214124.4A CN114282641B (zh) | 2022-03-07 | 2022-03-07 | 一种通用异构加速框架的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114282641A true CN114282641A (zh) | 2022-04-05 |
CN114282641B CN114282641B (zh) | 2022-07-05 |
Family
ID=80882263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210214124.4A Active CN114282641B (zh) | 2022-03-07 | 2022-03-07 | 一种通用异构加速框架的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282641B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115474090A (zh) * | 2022-08-31 | 2022-12-13 | 北京理工大学 | 一种支持视频目标检测跟踪的异构嵌入式实时处理架构及其应用 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239315A (zh) * | 2017-04-11 | 2017-10-10 | 北京深鉴智能科技有限公司 | 面向神经网络异构计算平台的编程模型 |
CN110766147A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 神经网络编译器架构及编译方法 |
CN111159095A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构融合的嵌入式智能计算实现方法 |
CN111611198A (zh) * | 2020-04-02 | 2020-09-01 | 天津七所精密机电技术有限公司 | 一种国产化异构计算加速平台 |
CN111860816A (zh) * | 2020-07-08 | 2020-10-30 | Oppo广东移动通信有限公司 | 神经网络模型的编译方法、装置、设备及存储介质 |
CN112734040A (zh) * | 2021-01-22 | 2021-04-30 | 中国人民解放军军事科学院国防科技创新研究院 | 一种嵌入式人工智能计算框架及应用方法 |
CN113168552A (zh) * | 2019-08-21 | 2021-07-23 | 深圳鲲云信息科技有限公司 | 人工智能应用开发系统、计算机设备及存储介质 |
CN113342324A (zh) * | 2021-08-02 | 2021-09-03 | 麒麟软件有限公司 | 一种人工智能操作系统的构建方法 |
CN113703772A (zh) * | 2021-08-23 | 2021-11-26 | 北京计算机技术及应用研究所 | 基于ice的异构平台高效智能计算应用架构及其构建方法 |
CN114116236A (zh) * | 2022-01-26 | 2022-03-01 | 中国电子科技集团公司第十五研究所 | 一种异构计算系统的构建方法及系统 |
-
2022
- 2022-03-07 CN CN202210214124.4A patent/CN114282641B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239315A (zh) * | 2017-04-11 | 2017-10-10 | 北京深鉴智能科技有限公司 | 面向神经网络异构计算平台的编程模型 |
CN110766147A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 神经网络编译器架构及编译方法 |
CN113168552A (zh) * | 2019-08-21 | 2021-07-23 | 深圳鲲云信息科技有限公司 | 人工智能应用开发系统、计算机设备及存储介质 |
CN111159095A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构融合的嵌入式智能计算实现方法 |
CN111611198A (zh) * | 2020-04-02 | 2020-09-01 | 天津七所精密机电技术有限公司 | 一种国产化异构计算加速平台 |
CN111860816A (zh) * | 2020-07-08 | 2020-10-30 | Oppo广东移动通信有限公司 | 神经网络模型的编译方法、装置、设备及存储介质 |
CN112734040A (zh) * | 2021-01-22 | 2021-04-30 | 中国人民解放军军事科学院国防科技创新研究院 | 一种嵌入式人工智能计算框架及应用方法 |
CN113342324A (zh) * | 2021-08-02 | 2021-09-03 | 麒麟软件有限公司 | 一种人工智能操作系统的构建方法 |
CN113703772A (zh) * | 2021-08-23 | 2021-11-26 | 北京计算机技术及应用研究所 | 基于ice的异构平台高效智能计算应用架构及其构建方法 |
CN114116236A (zh) * | 2022-01-26 | 2022-03-01 | 中国电子科技集团公司第十五研究所 | 一种异构计算系统的构建方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115474090A (zh) * | 2022-08-31 | 2022-12-13 | 北京理工大学 | 一种支持视频目标检测跟踪的异构嵌入式实时处理架构及其应用 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
CN116991564B (zh) * | 2023-09-28 | 2024-01-09 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114282641B (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114282641B (zh) | 一种通用异构加速框架的构建方法 | |
Wang et al. | Various frameworks and libraries of machine learning and deep learning: a survey | |
US10768916B2 (en) | Dynamic generation of CPU instructions and use of the CPU instructions in generated code for a softcore processor | |
US20220171626A1 (en) | Methods and apparatus for intentional programming for heterogeneous systems | |
O'Neil et al. | A parallel gpu version of the traveling salesman problem | |
CN105359090A (zh) | 用于移动应用的系统和方法 | |
CN112494940B (zh) | 用户界面的制作方法、装置、存储介质及计算机设备 | |
JP2021193618A (ja) | モデルトレーニング方法、装置、電子デバイス、記憶媒体、開発システムおよびプログラム | |
CN105739992B (zh) | 基于gcc编译器的软件控制内存分拆和映射的方法及系统 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
Martínez et al. | Applying Intel's oneAPI to a machine learning case study | |
Cooper | Integrating dataflow evaluation into a practical higher-order call-by-value language | |
Pllana et al. | Towards an intelligent environment for programming multi-core computing systems | |
Almusalli et al. | Energy efficient middleware: Design and development for mobile applications | |
CN115600664B (zh) | 算子处理方法、电子设备及存储介质 | |
CN109597611B (zh) | 前端数据流控制组件开发系统、方法、设备及存储介质 | |
Pereira et al. | Extending OpenACC for efficient stencil code generation and execution by skeleton frameworks | |
Chang et al. | A framework for scheduling dependent programs on GPU architectures | |
WO2019190890A1 (en) | Techniques for native runtime of hypertext markup language graphics content | |
CN114327405A (zh) | 数据处理方法、装置、设备及存储介质 | |
Aldegheri et al. | Rapid prototyping of embedded vision systems: Embedding computer vision applications into low-power heterogeneous architectures | |
US11567745B2 (en) | Compiler adapted in graphics processing unit and non-transitory computer-readable medium | |
Khatami et al. | Using hpx and op2 for improving parallel scaling performance of unstructured grid applications | |
Narasimhan et al. | Towards performance portability of AI graphs using SYCL | |
Kabrick et al. | CODIR: towards an MLIR codelet model dialect |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |