基于人工智能的异构计算平台

文档序号:7483 发布日期:2021-09-17 浏览:34次 英文

基于人工智能的异构计算平台

技术领域

本发明属于芯片技术应用领域。涉及一种支撑人工智能的应用的异构计算体系,尤其涉及一种基于人工智能的推理运算的基于人工智能的异构计算平台及计算方法。

背景技术

目前单一的商用芯片难以适应需求。不足以快速、高效、低功耗地支撑人工智能的应用,需要一套异构的计算体系,来支持异构计算的需求。传统应用,某些特殊场景的应用除了具有数据量大、难以快速处理等问题之外,同时对安全性以及可靠性有较大的需求。。

发明内容

为了克服现有技术的缺陷,本发明需要解决的技术问题是既要满足不同载荷数据处理应用的特殊需求,又要具有一定的通用性,具有标准化、模块化、可扩展的特点,还要具有可重构、可容错能力,满足特殊空间环境应用需求。构建的处理平台能够通过简单的模块组合就可以快速实现不同的类型的数据处理应用需求。

针对现有技术中的缺陷,本发明提出了一种基于人工智能的异构计算平台,包括底层异构硬件平台、系统软件层以及应用软件层,系统软件层运行在底层异构硬件平台上,应用软件层在系统软件层上开发应用,所述底层异构硬件平台由数据处理模块、异构互联传输模块、温度检测调节控制模块、电磁兼容碰撞设计模块、功耗管理能耗控制模块、星载环境主机适配模块、CPU主控单元、FPGA加速单元、IPU、DSP处理单元以及容错与故障恢复模块组成;

所述系统软件层包括智能算法库和中间件,设置任务调度策略和软硬件划分机制,支持并行处理与异构计算,采用并行编程框架适配;

所述应用软件层提供人工智能应用计算过程的建模与分析以及人工智能应用的特征刻画及数据流分析接口。

优选的,上述数据处理模块由基础模块子系统、温度管理子系统和功耗控制接口子系统组成,其中基础模块子系统包括存储模块、时钟模块、智能芯片、IO模块和电源模块组成,智能芯片分别与存储模块、时钟模块、IO模块和电源模块连接,基础模块子系统分别与温度管理子系统和功耗控制接口子系统连接。

优选的,上述平台系统软件层通过任务调度模块完成任务调度和分配任务,通过负载均衡模块完成设备缓存、板载内存管理和Docker实例-应用映射任务。

优选的,上述平台上任务包括软件任务和硬件任务,软件任务定义为运行在通用处理器上的任务,硬件任务定义为运行在异构计算单元上的任务。

优选的,每个硬件任务的执行时间基本固定,执行过程包括输入数据传输、任务执行、输出数据传输三个阶段。

优选的,上述硬件任务通常不支持任务抢占,一个硬件任务一旦开始执行,从该任务发送数据开始,一直到计算结果返回,异构计算单元一直被该硬件任务独占,其他任务无法获得该异构计算单元的使用权。

优选的,上述硬件任务之间不具备直接通信的能力,硬件任务的直接通信需要平台的硬件支持,异构计算单元之间需要有直接的硬件通路,从而完成信号和数据的传输。

优选的,上述平台还包括一内存管理模块,通过页表结构完成虚拟地址空间到物理地址空间的转换;当异构计算核心或者数据传输总线需要片外板载内存时,所述页表结构提供一个地址给内存管理部件。

优选的,上述平台的异构任务运行流程如下:

创建任务后分别绑定软件任务单元和硬件任务单元,将任务分为软件任务负载和硬件任务负载,所述软件任务负载通过软件执行并完成检查,所述硬件任务负载分别完成硬件任务创建、硬件执行,并通过控制和写回操作后完成检查,其中通过调度来完成硬件任务创建和硬件执行。

优选的,上述硬件任务负载可以通过异构计算单元来完成硬件执行的控制,也可以直接实施硬件执行后的控制。

相对于现有技术,本发明基于人工智能实现了异构计算,采用双冗余交换开关式互连体系架构设计,支持动态扩展和并行处理的系统体系架构,包含硬件系统架构、软件平台设计和内部总线设计。通过增加冗余链路和故障检测电路,可以在单个计算模块或数据链路出现故障时,通过重新配置交换模块的节点转发表,对并行系统进行拓扑重构,使系统具备较强的容错性和故障隔离能力。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明基于人工智能的异构计算平台的框架示意图;

图2示出了本发明单点任务管理与资源调度子系统结构图;

图3示出了本发明异构任务运行流程示意图;

图4示出了本发明数据处理模块硬件架构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

如图1所示,本发明提供一种基于人工智能的异构计算平台的实施例,包括底层异构硬件平台、系统软件层以及应用软件层,系统软件层运行在底层异构硬件平台上,应用软件层在系统软件层上开发应用,所述底层异构硬件平台由数据处理模块、异构互联传输模块、温度检测调节控制模块、电磁兼容碰撞设计模块、功耗管理能耗控制模块、星载环境主机适配模块、CPU主控单元、FPGA加速单元、IPU、DSP处理单元以及容错与故障恢复模块组成;

所述系统软件层包括智能算法库和中间件,设置任务调度策略和软硬件划分机制,支持并行处理与异构计算,采用并行编程框架适配;

所述应用软件层提供人工智能应用计算过程的建模与分析以及人工智能应用的特征刻画及数据流分析接口。

如图4所示,本实施例数据处理模块由基础模块子系统、温度管理子系统和功耗控制接口子系统组成,其中基础模块子系统包括存储模块、时钟模块、智能芯片、IO模块和电源模块组成,智能芯片分别与存储模块、时钟模块、IO模块和电源模块连接,基础模块子系统分别与温度管理子系统和功耗控制接口子系统连接。IO模块包括PCIE和SPI。

如图2所示,本发明提供一种基于人工智能的异构计算平台的实施例,平台系统软件层通过任务调度模块完成任务调度和分配任务,通过负载均衡模块完成设备缓存、板载内存管理和Docker实例-应用映射任务。在硬件层包括多个智能板卡,包括智能板卡1、智能板卡2、智能板卡3、……智能板卡n,对应的是平台系统软件层的管理模块中的设备1、设备2、设备3、……设备n,每个设备都设置有缓存队列,包括板载内存管理子模块以及Docker实例-应用映射表,对应Docker实例库

在一些实施例中,平台上任务包括软件任务和硬件任务,软件任务定义为运行在通用处理器上的任务,硬件任务定义为运行在异构计算单元上的任务。

在一些实施例中,每个硬件任务的执行时间基本固定,执行过程包括输入数据传输、任务执行、输出数据传输三个阶段。

在一些实施例中,硬件任务通常不支持任务抢占,一个硬件任务一旦开始执行,从该任务发送数据开始,一直到计算结果返回,异构计算单元一直被该硬件任务独占,其他任务无法获得该异构计算单元的使用权。

在一些实施例中,所述硬件任务之间不具备直接通信的能力,硬件任务的直接通信需要平台的硬件支持,异构计算单元之间需要有直接的硬件通路,从而完成信号和数据的传输。

在一些实施例中,平台还包括一内存管理模块,通过页表结构完成虚拟地址空间到物理地址空间的转换;当异构计算核心或者数据传输总线需要片外板载内存时,所述页表结构提供一个地址给内存管理部件。

如图3所示,本发明提供一种基于人工智能的异构计算平台异构任务运行流程的实施例,创建任务后分别绑定软件任务单元和硬件任务单元,将任务分为软件任务负载和硬件任务负载,所述软件任务负载通过软件执行并完成检查,所述硬件任务负载分别完成硬件任务创建、硬件执行,并通过控制和写回操作后完成检查,其中通过调度来完成硬件任务创建和硬件执行。硬件任务负载可以通过异构计算单元来完成硬件执行的控制,也可以直接实施硬件执行后的控制。

本发明还提供一种基于人工智能的异构计算平台的实施例,人工智能异构计算平台方案采用双冗余交换开关式互连体系架构设计,支持动态扩展和并行处理的系统体系架构,包含硬件系统架构、软件平台设计和内部总线设计。

通用化高速数据处理设备采用并行处理技术以满足系统快速增长的高速数据处理需求。在并行架构硬件和并行算法编程两个方面实现数据的高速并行处理。

并行架构硬件是实现高速并行处理的基础。通用化高速数据处理设备采用多级并行结构:在设备级使用多个计算模块构成分布存储多指令多数据流(MIMD)并行架构;在模块级使用多个处理器和FPGA组成异构并行计算节点;在处理器芯片级使用多核处理器,利用片上多核结构提升单个处理器运算能力。

为获得最大化通用性和可扩展性,在设备级采用分布存储MIMD并行架构。设备中各个计算模块具有独立的地址空间,模块间通过互联网络实现数据交互和通信。为实现对并行系统拓扑结构的灵活拓展,使用高速串行总线(SRIO)和高速交换模块组成互联网络。通过配置交换模块的节点转发表,可以灵活的配置并行系统的拓扑结构,以适应不同并行算法的要求。同时,通过增加冗余链路和故障检测电路,可以在单个计算模块或数据链路出现故障时,通过重新配置交换模块的节点转发表,对并行系统进行拓扑重构,使系统具备较强的容错性和故障隔离能力。

在本实施例中,面向异构计算资源抽象的任务抽象,整体上来看,本案的异构计算平台上包括通用CPU和各类异构计算单元,相应的,任务根据其类型可以分为软件任务和硬件任务,软件任务定义为运行在通用处理器上的任务,而硬件任务定义为运行在异构计算单元上的任务。一个完整的应用程序是由一系列任务组成的,包括软件任务以及硬件任务,任务之间可以存在调用关系。异构平台上的硬件任务与普通的软件任务相比具有如下特点:

1)每个硬件任务的执行时间基本固定。硬件任务的执行过程可以分为三个阶段:输入数据传输、任务执行、输出数据传输。其中,任务执行阶段是周期精确的,而输入数据传输和输出数据传输的时间取决于实际的数据传输量和数据带宽。异构计算单元上适合加速的应用一般满足两个条件之一:<1>流式数据应用;<2>数据量小计算复杂的应用。流式数据应用通常采用边传输边执行的方式,数据传输开销隐藏在任务的执行过程中。而对于第二类任务而言,通常任务执行阶段需要的时间要远大于数据传输时间,尤其是在松耦合的异构平台架构中。因此可以认为每个硬件任务的执行时间是基本固定的。对流式应用,这种结论可以做一个简单的推广,可以认为每处理一定量的数据是一个任务,而整个流式应用是由连续不断的同种类型的任务组成,从而每个硬件任务都可以看作执行时间是基本固定的。

2)为保证性能和可调度性,硬件任务通常不支持任务抢占。对软件任务而言,软件任务的抢占实际上是任务调度的概念,不同的任务根据调度算法在不同的时间片使用处理器资源,在每次发生任务调度时需要保存其上下文,包括寄存器值、堆栈等信息。而硬件任务的抢占需要保存硬件上下文,例如异构计算单元内部寄存器的值、执行状态等信息,保存硬件上下文的开销通常比软件上下文要大得多,具体依赖于异构计算单元的复杂程度。而且,由于硬件上下文与软件上下文的格式不统一,在抢占过后恢复任务执行时也需要采用不同的机制。由于以上诸多因素,硬件任务支持抢占的成本高昂,因此通常硬件任务不支持任务抢占,即一个硬件任务一旦开始执行,从该任务发送数据开始,一直到计算结果返回,异构计算单元一直被该硬件任务独占,其他任务无法获得该异构计算单元的使用权。

3)硬件任务之间不具备直接通信的能力。硬件任务的直接通信需要平台的硬件支持,异构计算单元之间需要有直接的硬件通路,从而完成信号和数据的传输。满足该条件的平台上的计算模型通常采用数据流计算(Dataflow Computing)或者流式计算(StreamingComputing)。这两种计算模型目前已经形成相对完整的体系,通常适用于对某一特定功能的大型应用进行开发。

与现有技术相比,本发明基于人工智能实现了异构计算,采用双冗余交换开关式互连体系架构设计,支持动态扩展和并行处理的系统体系架构,包含硬件系统架构、软件平台设计和内部总线设计。通过增加冗余链路和故障检测电路,可以在单个计算模块或数据链路出现故障时,通过重新配置交换模块的节点转发表,对并行系统进行拓扑重构,使系统具备较强的容错性和故障隔离能力。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种可定制化嵌入式AI模型落地硬件架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!