首页> 中国专利> 一种统一异构计算系统,一种AI加速平台

一种统一异构计算系统,一种AI加速平台

摘要

本申请公开了一种统一异构计算系统,一种AI加速平台。在本申请提供的统一异构计算系统中,框架支持模块能够将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;计算图优化模块能够对目标计算图进行优化,得到优化计算图;设备支持模块能够将优化计算图中的各种算子拆分为细粒度运算操作,确定细粒度运算操作对应的可执行代码,并将可执行代码传输至不同类型的AI硬件设备上运行,从而可实现多种深度学习框架的AI模型至多种AI硬件设备的解耦化映射,提高了映射的通用性、普适性和映射效率,且该系统支持模型应用过程和模型训练过程的映射。相应地,本申请提供的一种AI加速平台,也同样具有上述技术效果。

著录项

  • 公开/公告号CN113867950A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 浪潮电子信息产业股份有限公司;

    申请/专利号CN202111128418.7

  • 申请日2021-09-26

  • 分类号G06F9/50(20060101);G06F15/78(20060101);G06F15/80(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人赵菲

  • 地址 250101 山东省济南市高新区浪潮路1036号

  • 入库时间 2023-06-19 13:29:16

说明书

技术领域

本申请涉及计算机技术领域,特别涉及一种统一异构计算系统,一种AI加速平台。

背景技术

目前,可以使用GPU(Graphics Processing Unit,视觉处理器)、FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)等硬件加速模型的训练过程和推理过程。但使用硬件加速之前,需要将模型映射到硬件设备上。也即:将模型中的各种计算操作转换为可以在硬件设备中运行的可执行代码。现有的映射编译器仅能完成模型应用过程的自动映射,且其使用局限于模型所用的深度学习框架的类型,对接的底层AI(ArtificialIntelligence,人工智能)硬件设备的类型也有限,限制了其通用性和普适性。AI硬件设备即:用于运行AI模型的设备。

因此,如何提高映射编译器的通用性和普适性,是本领域技术人员需要解决的问题。

发明内容

有鉴于此,本申请的目的在于提供一种统一异构计算系统,一种AI加速平台,以提高映射编译器的通用性和普适性。其具体方案如下:

第一方面,本申请提供了一种统一异构计算系统,包括:

框架支持模块,用于将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;所述模型计算图包括:前向操作算子和反向操作算子;

计算图优化模块,用于对所述目标计算图进行优化,得到优化计算图;

设备支持模块,用于将所述优化计算图中的各种算子拆分为细粒度运算操作,确定所述细粒度运算操作对应的可执行代码,并将所述可执行代码传输至不同类型的AI硬件设备上运行。

优选地,所述框架支持模块包括多个转换器,任一个转换器用于将一种深度学习框架的模型计算图转换为具有统一格式的目标计算图。

优选地,所述多个转换器包括:Tensorflow转换器、PyTorch转换器、PaddlePaddle转换器、Mxnet转换器和/或ONNX转换器。

优选地,所述框架支持模块包括:

通用层中间表示单元,用于基于映射表将所述目标计算图中的各种算子映射为通用算子库中的具有统一格式的算子;所述映射表中记录有多种深度学习框架的模型计算图中的各种算子与所述通用算子库中的算子的映射关系。

优选地,所述通用算子库中的算子被分类为基础操作、网络层操作和融合操作。

优选地,所述计算图优化模块具体用于:

精简所述目标计算图,以降低所述目标计算图的计算复杂度,得到所述优化计算图。

优选地,所述设备支持模块具体用于:

针对任一类型的AI硬件设备,获取该AI硬件设备的设备信息;

若所述设备支持模块适配该设备信息,则在该AI硬件设备中设有相应算子库的情况下,利用该算子库确定所述可执行代码;在该AI硬件设备中未设有相应算子库的情况下,基于所述细粒度运算操作生成所述可执行代码。

优选地,所述设备支持模块具体用于:

若所述设备支持模块不适配该设备信息,则输出相应的告警通知消息。

第二方面,本申请提供了一种AI加速平台,包括:

上述任一项所述的统一异构计算系统,用于针对多种深度学习框架的模型计算图确定相应的可执行代码;

不同类型的AI硬件设备,用于运行所述可执行代码。

优选地,不同类型的AI硬件设备包括:CPU、GPU、FPGA和/或ASIC

通过以上方案可知,本申请提供了一种统一异构计算系统,包括:框架支持模块,用于将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;所述模型计算图包括:前向操作算子和反向操作算子;计算图优化模块,用于对所述目标计算图进行优化,得到优化计算图;设备支持模块,用于将所述优化计算图中的各种算子拆分为细粒度运算操作,确定所述细粒度运算操作对应的可执行代码,并将所述可执行代码传输至不同类型的AI硬件设备上运行。

可见,在本申请提供的统一异构计算系统中,框架支持模块能够将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;计算图优化模块能够对目标计算图进行优化,得到优化计算图;设备支持模块能够将优化计算图中的各种算子拆分为细粒度运算操作,确定细粒度运算操作对应的可执行代码,并将可执行代码传输至不同类型的AI硬件设备上运行,从而可实现多种深度学习框架的AI模型至多种AI硬件设备的解耦化映射,提高了映射的通用性和普适性。该系统针对任意类型深度学习框架的模型计算图,可将其转换为统一格式并对其优化,可提高映射效率。且该系统所处理的模型计算图包括前向操作算子和反向操作算子,可见该系统不仅支持模型应用过程的映射,还支持模型训练过程的映射,从而进一步提高了映射的通用性和普适性。

相应地,本申请提供的一种AI加速平台,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种统一异构计算系统示意图;

图2为本申请公开的一种设备支持模块确定可执行代码的流程示意图;

图3为本申请公开的另一种统一异构计算系统示意图;

图4为本申请公开的一种AI加速平台示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,为了应对计算多元化的需求,越来越多的场景开始引入GPU、FPGA等硬件进行计算加速。同时,还有适用于不同应用场景的深度学习框架,主要有Tensorflow(一种人工智能学习系统)、Pytorch(一个开源的Python机器学习库)、PaddlePaddle(端到端开源深度学习平台)、ONNX(Open Neural Network Exchange,一个用于表示深度学习模型的标准)、Mxnet(一种深度学习库)等。

用户在开发和使用模型的过程中,需要针对不同的应用场景使用各种深度学习框架,而不同AI加速设备可能无法适用所有深度学习框架,因此需要用映射编译器在深度学习框架和AI加速设备之间进行映射转换。

目前,现有的映射编译器仅能完成模型应用过程的自动映射,且其使用局限于模型所用的深度学习框架的类型,对接的底层AI硬件设备的类型也有限,限制了其通用性和普适性。为此,本申请提供了一种统一异构计算系统的设计方案,该设计方案能够提高AI计算系统的通用性和普适性。

参见图1所示,本申请实施例公开了一种统一异构计算系统,包括:

框架支持模块,用于将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;模型计算图包括:前向操作算子和反向操作算子。

计算图优化模块,用于对目标计算图进行优化,得到优化计算图。

设备支持模块,用于将优化计算图中的各种算子拆分为细粒度运算操作,确定细粒度运算操作对应的可执行代码,并将可执行代码传输至不同类型的AI硬件设备上运行。细粒度运算操作如:加法、移位、切分、循环等操作。

在本实施例中,为了使框架支持模块能够支持多种类型的深度学习框架,在框架支持模块中设置多个转换器。任一个转换器用于将一种深度学习框架的模型计算图转换为具有统一格式的目标计算图。

其中,深度学习框架主要有Tensorflow、Pytorch、PaddlePaddle、ONNX、Mxnet等,因此多个转换器包括:Tensorflow转换器、PyTorch转换器、PaddlePaddle转换器、Mxnet转换器和/或ONNX转换器。基于上述任一种深度学习框架可设计实现一个AI模型,框架支持模块能够将该AI模型中的模型计算图转换为具有统一格式的目标计算图。模型计算图即:模型中卷积层、池化层等结构对应的计算操作集合。

进一步地,为了便于处理不同深度学习框架中的算子,本实施例在框架支持模块中设置了通用层中间表示单元,该通用层中间表示单元能够基于映射表将目标计算图中的各种算子映射为通用算子库中的具有统一格式的算子;映射表中记录有多种深度学习框架的模型计算图中的各种算子与通用算子库中的算子的映射关系。

需要说明的是,在不同深度学习框架的AI模型中,模型计算图里的各个算子分类和命名各不相同,尽管它们可能实现的是相同操作。如:两个属于深度学习框架的算子都用于实现卷积操作,但二者所呈现的命名格式不同。

为了实现算子的统一,本实施例预设了通用算子库,并建立了映射表。该通用算子库中的算子具有统一格式,映射表中记录了不同类型的深度学习框架的各种算子与通用算子库中的算子的映射关系,据此能够将不同深度学习框架的算子映射为同一格式,以便技术人员确定算子的运算分类。

例如:Tensorflow中的卷积操作为格式A,而Pytorch中的卷积操作为格式B,那么技术人员就需要熟知不同框架里的不同算子的格式,才能进行后续处理。而在本实施例中,假设通用算子库中的算子都是格式W,那么基于映射表就可以将Tensorflow中的A格式的卷积操作映射为W格式,将Pytorch中的B格式的卷积操作也映射为W格式,如此就实现了不同深度学习框架中的算子的统一。

为便于技术人员确定算子的运算分类。可以将通用算子库中的算子分类为基础操作、网络层操作和融合操作。其中,基础操作即数学运算类的操作,如:加法、乘法等。网络层操作如:卷积操作、全连接操作、池化操作等。融合操作如:由至少两个网络层操作融合而得的一个操作。

在一种具体实施方式中,计算图优化模块具体用于:精简目标计算图中各种运算操作,以降低目标计算图的计算复杂度,得到优化计算图。其中,计算图优化模块可包括计算图编译优化和流水并行设计两部分,通过调度优化和计算图编译优化技术完成计算图的重构,以降低目标计算图的计算复杂度,得到更精简的优化计算图。其中,对计算图的优化操作具体包括:将能够合并计算操作合并(如两个卷积操作合并成一个)、常量折叠、删除无用的计算操作等。

需要说明的是,设备支持模块可以与不同类型的AI硬件设备连接,不同类型的AI硬件设备包括:TPU(张量处理单元、一种定制化的ASIC)、CPU(Central Processing Unit,中央处理器)、GPU、FPGA和/或ASIC(Application Specific Integrated Circuit,专用集成电路)等。

请参见图2,设备支持模块将细粒度运算操作集作为低层次中间表示的统一算子库,并提供有设备支持模块支持的AI硬件设备的类型列表。在此基础上,设备支持模块具体用于:针对任一类型的AI硬件设备,获取该AI硬件设备的设备信息;若设备支持模块适配该设备信息,则在该AI硬件设备中设有相应算子库的情况下,利用该算子库确定可执行代码;在该AI硬件设备中未设有相应算子库的情况下,基于细粒度运算操作生成可执行代码。若设备支持模块不适配该设备信息,则输出相应的告警通知消息。

在本实施例提供的统一异构计算系统中,框架支持模块能够将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;计算图优化模块能够对目标计算图进行优化,得到优化计算图;设备支持模块能够将优化计算图中的各种算子拆分为细粒度运算操作,确定细粒度运算操作对应的可执行代码,并将可执行代码传输至不同类型的AI硬件设备上运行,从而可实现多种深度学习框架的AI模型至多种AI硬件设备的解耦化映射,提高了映射的通用性和普适性。

可见,该系统针对任意类型深度学习框架的模型计算图,可将其转换为统一格式并对其优化,可提高映射效率。且该系统所处理的模型计算图包括前向操作算子和反向操作算子,可见该系统不仅支持模型应用过程的映射,还支持模型训练过程的映射,从而进一步提高了映射的通用性和普适性。

请参见图3,下述实施例提供了一种面向AI训练的统一异构计算系统,该系统用于实现前端深度学习框架与后端AI计算设备之间的解耦化映射,具体包括:前端框架支持模块、计算图优化模块和AI设备支持模块。

其中,前端框架支持模块中实现有:包含算子反向计算操作的通用层中间表示单元,使系统能够满足AI训练任务映射的需求。

其中,AI设备支持模块中实现有:面向底层AI设备的低层次中间表示单元,并通过统一的低层次算子接口设计实现计算图到底层硬件设备的可执行代码的生成和统一调度,也为AI设备的扩展支持,提供了统一的算子支持注册接口,进一步提高了系统的通用性。

(1)关于前端框架支持模块的实现。

前端框架支持模块包括转换器和通用层中间表示单元。

A、转换器的实现。

转换器主要包括Tensorflow转换器、PyTorch转换器、ONNX转换器以及其他转换器,以使前端框架支持模块支持多种深度学习框架。转换器的主要功能是:将不同深度学习框架的模型的计算图转换为与通用层中间表示单元一致的格式,以使通用层中间表示单元可以对计算图中的各种算子进行映射。

B、通用层中间表示单元的实现。

通用层中间表示单元能够建立计算图中的控制流以及运算符与数据之间的依赖关系,并为计算图优化模块提供接口。具体的,通用层中间表示单元对经过转换器转换后形成的计算图进行算子格式统一。为了使系统支持AI训练任务以及支持更多的深度学习框架的映射,在通用层中间表示单元中构建通用层统一算子库,该算子库兼容TensorFlow、PyTorch等深度学习框架的算子,还包括前向操作算子和反向操作算子。为使该算子库包括前向操作算子和反向操作算子,可以在通用层中间表示单元的设计中加入网络层算子的反向操作算子实现接口。

为使技术人员区分各个算子的运算分类,将算子库中的算子分类为基础操作、网络层操作和融合操作,以便用户更直观的查找OP(operation code)操作。其中,OP操作即各种算子的操作码。

为了实现各种深度学习框架的算子与通用层统一算子库中的算子的映射,通用层中间表示单元中设计有:包括前向OP和反向OP的OP映射表,该映射表可实现各深度学习框架支持OP算子到通用层统一算子库中的算子的映射,以便于为AI设备支持模块中的AI设备低层算子库进行统一调度。

可见,在通用层中间表示单元的设计中,兼容了各深度学习框架中支持的OP算子定义,能够满足不同框架OP到统一异构系统的映射需求。其次是对并设计完成的算子进行分类,算子操作按照其功能性进行划分,分为基础操作、网络层操作和融合操作,以提高用户查找OP的效率。最后构建主流深度学习框架中算子操作到该通用层中间表示算子库的OP映射表,包括前向OP和反向OP,该映射表主要用在转换器模块的各支持框架的转换器设计中,为各深度学习框架支持OP算子到统一异构计算系统映射提供映射依据。通用层中间表示模块中算子接口的定义具有可扩展性,随着支持的深度学习框架的增加,以及深度学习应用场景的改变,用户可以增加新的OP操作定义接口到通用层算子库中。

(2)计算图优化模块包括计算图编译优化和流水并行设计两部分。计算图优化模块主要是通过调度优化和计算图编译优化技术完成计算图重构,具体可以使用现有计算图优化技术去实现。

(3)AI设备支持模块的实现。

AI设备支持模块包括低层次中间表示设计单元和后端AI设备硬件支持单元,并提供有注册添加新的AI设备的扩展接口。后端AI设备硬件支持单元主要是为AI设备的注册、设备内存管理、设备硬件编译等提供技术支持。

低层次中间表示设计单元用于为更低级别的操作进行表示,比如:加、移位、切分、循环等操作,能够在更细粒度的层面上表示模型,从而能够针对于硬件进行优化。由于低层次中间表示是与底层硬件相关的,为了使得不同的AI硬件设备能够通过统一的低层次算子接口,实现计算图到底层硬件设备可执行代码生成的统一调度,设计有低层次中间表示的统一算子接口,该接口能够针对不同的硬件设备,调用算子代码生成或者设备核心算子库,为硬件设备生成并提供设备可执行代码。

具体的,低层次中间表示单元还建立有低级别算子库和各AI设备支持算子列表。在低层次中间表示层的算子接口设计中,设计设备跳转判断,根据用户指定采用的AI设备以及AI设备支持算子列表综合判断,如果当前AI设备能够支持该算子,则跳转到该设备进行后续计算,如果不能,则报出错误提示。对于跳转到特定AI设备的算子操作,再次判断该设备有相应的核心库提供核心算子代码,如果有,则直接调用库函数进行计算,如果没有,则调用代码生成技术进行代码生成,最后返回设备可执行代码,具体可参见图2。

基于以上内容即可设计一种面向AI训练的统一异构计算系统,实现深度学习框架AI算法模型训练任务到底层不同AI设备的解耦化映射,该系统可以降低研发人员手动实现深度学习框架AI训练任务到特定AI设备的迁移的复杂度,提高系统的应用范围。

请参见图4,该系统前端用于获取各种框架的AI模型,后端用于对接各种类型的AI硬件设备,开发人员在使用系统的过程中,不必关心统一异构计算系统的技术实现细节,只需提供系统支持的深度学习框架的AI训练脚本,并指定想要运行的AI硬件设备,即可完成前端深度学习框架AI训练计算任务到底层AI设备的自动迁移,大大降低了用户使用的复杂性。

下面对本申请实施例提供的一种AI加速平台进行介绍,下文描述的一种AI加速平台与上文描述的一种统一异构计算系统可以相互参照。

本申请实施例公开了一种AI加速平台,包括:

上述任意实施例所述的统一异构计算系统,用于针对多种深度学习框架的模型计算图确定相应的可执行代码;

不同类型的AI硬件设备,用于运行可执行代码。

本实施例提供的一种AI加速平台可参照图4中的统一异构计算系统和AI硬件设备。

在一种具体实施方式中,统一异构计算系统包括:

框架支持模块,用于将多种深度学习框架的模型计算图转换为具有统一格式的目标计算图;模型计算图包括:前向操作算子和反向操作算子;

计算图优化模块,用于对目标计算图进行优化,得到优化计算图;

设备支持模块,用于将优化计算图中的各种算子拆分为细粒度运算操作,确定细粒度运算操作对应的可执行代码,并将可执行代码传输至不同类型的AI硬件设备上运行。

在一种具体实施方式中,框架支持模块包括多个转换器,任一个转换器用于将一种深度学习框架的模型计算图转换为具有统一格式的目标计算图。

在一种具体实施方式中,多个转换器包括:Tensorflow转换器、PyTorch转换器、PaddlePaddle转换器、Mxnet转换器和/或ONNX转换器。

在一种具体实施方式中,框架支持模块包括:

通用层中间表示单元,用于基于映射表将目标计算图中的各种算子映射为通用算子库中的具有统一格式的算子;映射表中记录有多种深度学习框架的模型计算图中的各种算子与通用算子库中的算子的映射关系。

在一种具体实施方式中,通用算子库中的算子被分类为基础操作、网络层操作和融合操作。

在一种具体实施方式中,计算图优化模块具体用于:

精简目标计算图,以降低目标计算图的计算复杂度,得到优化计算图。

在一种具体实施方式中,设备支持模块具体用于:

针对任一类型的AI硬件设备,获取该AI硬件设备的设备信息;

若设备支持模块适配该设备信息,则在该AI硬件设备中设有相应算子库的情况下,利用该算子库确定可执行代码;在该AI硬件设备中未设有相应算子库的情况下,基于细粒度运算操作生成可执行代码。

在一种具体实施方式中,设备支持模块具体用于:

若设备支持模块不适配该设备信息,则输出相应的告警通知消息。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本实施例提供了一种AI加速平台,该平台只需技术人员提供统一异构计算系统支持的深度学习框架的AI训练脚本,并指定想要运行的AI硬件设备,即可完成前端深度学习框架AI训练计算任务到底层AI设备的自动迁移,大大降低了用户使用的复杂性。

本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号