CN110262996A - 一种基于高性能可重构计算的超级计算机 - Google Patents

一种基于高性能可重构计算的超级计算机 Download PDF

Info

Publication number
CN110262996A
CN110262996A CN201910406990.1A CN201910406990A CN110262996A CN 110262996 A CN110262996 A CN 110262996A CN 201910406990 A CN201910406990 A CN 201910406990A CN 110262996 A CN110262996 A CN 110262996A
Authority
CN
China
Prior art keywords
rpu
array
information
reconfigurable
machine
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
Application number
CN201910406990.1A
Other languages
English (en)
Other versions
CN110262996B (zh
Inventor
向志宏
吴君安
杨延辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Tiankuo Information Technology Co ltd
Original Assignee
Beijing Super Dimension Computing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Super Dimension Computing Technology Co Ltd filed Critical Beijing Super Dimension Computing Technology Co Ltd
Priority to CN201910406990.1A priority Critical patent/CN110262996B/zh
Publication of CN110262996A publication Critical patent/CN110262996A/zh
Application granted granted Critical
Publication of CN110262996B publication Critical patent/CN110262996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于高性能可重构计算的超级计算机,包括:机器感知机,用于获取可重构数据;RPU阵列,用于对输入的可重构数据进行计算;主控***,用于控制将可重构数据传输至RPU阵列;机器行为器,用于输出计算结果和/或执行超级计算机指令;编译***,用于将应用任务进行标记和预处理,并分解为主控***执行代码和RPU执行代码,并最终生成主控***的控制码、弹性连接控制信息和RPU阵列的各项配置信息;以便在控制码的控制下,形成机器感知机与RPU阵列的数据通路,以及形成机器行为器与RPU阵列的数据通路;以及弹性连接控制信息使得RPU阵列形成弹性的计算架构;以及RPU阵列的各项配置信息对RPU阵列中的RPU进行配置,用于对可重构数据进行计算。

Description

一种基于高性能可重构计算的超级计算机
技术领域
本发明涉及可重构计算领域,尤其是涉及一种基于高性能可重构计算的AI超级计算机。
背景技术
随着科技的进步,人工智能(artificial intelligence,AI)的发展突飞猛进。但是其运行的平台绝大部分仍然是基于中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field programmable gatearray,FPGA)和专用集成电路(application specific integrated circuit,ASIC)及其组合形成的平台。目前,上述运行平台在AI产品部署的时候给开发者和用户依旧造成了很多困扰。
例如CPU的灵活度最高,但是对于AI等需要大量并行计算的场景下,其效能比非常的低。GPU和FPGA的使用解决了一部分并行计算的问题,但是功耗和成本仍然是影响其部署的重要原因。对于ASIC来说,具有很好的效能比,但是AISC只能适应固定的算法,对算法的演进却无能为力。其次,由CPU、GPU、FPGA和ASIC的一种或多种组成的平台在***架构的复杂性、算力的可扩充性、***的功耗和成本等方面都不尽人意。
对于现有的X86架构下通过高速串行计算机扩展总线标准(peripheralcomponent interconnect express,PCIE)扩展AI算力的产品在实际应用中对快速迭代AI算法的支持,以及对算力部署的灵活性均受到较大的制约。如今运行平台已经成为限制AI部署的最大制约因素。
发明内容
本发明基于AI计算的特点,以X86架构为基础,通过主处理器的PCIE接口连接一个或多个可重构计算单元(reconfigurable processing unit,RPU)阵列,可根据产品需求和使用环境弹性部署算力,可支持边缘计算、大规模计算以及极大规模计算,还可支持无需指令驱动的各种神经网络计算、支持在线训练与在线算法迭代,并且具备极高的通用性、灵活性和能效比。
为实现上述目的,本发明一方面提供了一种基于高性能可重构计算的超级计算机,包括:至少一个机器感知机,用于获取环境感知信息和/或设备输入信息作为可重构数据;至少一个可重构计算单元RPU阵列,用于对输入的可重构数据进行计算;主控***,用于控制将可重构数据传输至至少一个RPU阵列;至少一个机器行为器,用于输出计算结果和/或执行超级计算机指令;编译***,用于将应用任务进行标记和预处理,并分解为主控***执行代码和RPU执行代码;根据至少一个RPU阵列对RPU执行代码进行代码变换和优化,最终生成主控***的控制码、弹性连接控制信息和RPU阵列的各项配置信息;以便在控制码的控制下,形成至少一个机器感知机与至少一个RPU阵列的数据通路,以及形成至少一个机器行为器与至少一个RPU阵列的数据通路;以及弹性连接控制信息使得至少一个RPU阵列形成弹性的计算架构;以及RPU阵列的各项配置信息对至少一个RPU阵列中的RPU进行配置,用于对可重构数据进行计算。
优选地,主控***包括:平台控制中心PCH和基于X86/AMD64架构的主控制器;PCH与主控制器通过直接媒体接口DMI相连接;PCH与至少一个机器感知机相连接,用于将环境感知信息和/或设备输入信息传输至基于X86/AMD64架构的主控制器;基于X86/AMD64架构的主控制器通过PCIE接口与至少一个RPU阵列相连接,用于将可重构数据传输至至少一个RPU阵列,以便进行计算;PCH与至少一个机器行为器相连接,用于将计算结果从基于X86/AMD64架构的主控制器传输至至少一个机器行为器。
优选地,RPU阵列包括:弹性连接***HEC_link;一个或多个RPU;HEC_link在弹性连接控制信息的控制下,连接一个或多个RPU;一个或多个RPU通过HEC_link获取相应的配置信息;以及一个或多个RPU通过HEC_link从主控***或其它RPU获取可重构数据;以及通过HEC_link将计算结果传输至主控***或其它RPU。
优选地,至少一个RPU阵列与主控***通过PCIE接口相连接,HEC_link包括:PCIE协议转换器,用于将PCIE接口信息与至少一个RPU阵列中的配置总线和可重构数据总线进行协议转换。
优选地,HEC_link根据弹性连接控制信息对至少一个RPU阵列中的一个或多个RPU进行计算深度和计算宽度的扩展;以及对至少一个RPU阵列中的一个或多个RPU分组,用于分别输入不同的可重构数据并执行不同任务;或分别输入不同的可重构数据并执行相同任务;或分别输入相同的可重构数据并执行不同任务;或分别输入相同的可重构数据并执行相同任务。
优选地,编译***对已经确定的至少一个RPU阵列,通过HEC_link进行宽度和/或深度的调整,以改变一个或多个RPU的连接关系。
优选地,还包括:操作***,用于管理超级计算机的软件和硬件资源以及外设资源,以及执行编译***输出的编译文件,以及获取来自机器感知机的信息,以及控制机器行为器执行计算结果,以及根据RPU阵列的各项配置信息驱动至少一个RPU阵列,以及控制编译***执行在线编译。
优选地,编译***为离线编译模式,将编译完成的编译文件传递至操作***;或编译***为在线编译模式,用于操作***实时进行编译并部署。
优选地,机器感知机包括:终端传感器,用于采集周边环境信息及自身状态信息;传感器模组,用于对终端传感器采集到的周边环境信息及自身状态信息进行二次分析计算,生成环境感知信息和/或设备输入信息作为可重构数据。
优选地,机器行为器包括:通讯单元、人机接口、伺服机构和控制单元。
优选地,终端传感器包括:图像传感器、毫米波雷达、超声波雷达、激光雷达、惯性测量单元、麦克风、全球卫星导航***、触摸屏和应力感应器;传感器模组包括:RGB-D深度相机、双目深度相机和VIO三维重建相机。
优选地,环境感知信息包括:视觉、听觉、触觉、味觉、地理位置和位置变化。
本发明实现了以X86架构为基础,通过主处理器与机器感知机、机器行为器相连,并且通过PCIE接口连接一个或多个RPU阵列,可根据产品需求和使用环境弹性地部署算力。同时还可支持边缘计算、大规模计算以及极大规模计算,可支持无需指令驱动的各种神经网络计算、支持在线训练与在线算法迭代,并且具有极高的通用性、灵活性和能效比。
附图说明
图1为本发明实施例提供的基于高性能可重构计算的超级计算机架构示意图;
图2为本发明实施例提供的一种弹性部署算力示意图;
图3为本发明实施例提供的另一种弹性部署算力示意图;
图4a为本发明实施例提供的一种弹性调节算力执行多任务示意图;
图4b为本发明实施例提供的另一种弹性调节算力执行多任务示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的基于高性能可重构计算的超级计算机架构示意图。本发明中涉及到的超级计算机可以是AI超级计算机。
如图1所示,在一个实施例中,本发明供了一种基于高性能可重构计算的超级计算机,包括:至少一个机器感知机,用于获取环境感知信息和/或设备输入信息作为可重构数据。至少一个可重构计算单元RPU阵列,用于对输入的可重构数据进行计算。主控***,用于控制将可重构数据传输至至少一个RPU阵列。至少一个机器行为器,用于输出计算结果和/或执行超级计算机指令。编译***,用于将应用任务进行标记和预处理,并分解为主控***执行代码和RPU执行代码。根据至少一个RPU阵列对RPU执行代码进行代码变换和优化,最终生成主控***的控制码、弹性连接控制信息和RPU阵列的各项配置信息。以便在控制码的控制下,形成至少一个机器感知机与至少一个RPU阵列的数据通路,以及形成至少一个机器行为器与至少一个RPU阵列的数据通路;以及弹性连接控制信息使得至少一个RPU阵列形成弹性的计算架构;以及RPU阵列的各项配置信息对至少一个RPU阵列中的RPU进行配置,用于对可重构数据进行计算。
在一个实施例中,主控***是基于X86/AMD64架构的。基于X86/AMD64架构的主控***是AI超级计算机(AI super computer,AISC)的中央处理单元,为AISC的操作***和在线编译***运行提供了硬件运行平台。同时,也是连接多个RPU阵列的控制平台。还是连接多个机器感知机和多个机器行为器的外设控制平台;是通用程序的运行平台和可重构数据计算的控制平台。
在一个例子中,基于X86/AMD64架构的主控***可以包括:平台控制中心(planform controller hub,PCH)和基于X86/AMD64架构的主控制器。
其中,PCH是基于X86/AMD64架构的主处理器与外设连接的主要接口控制器。PCH与主控制器通过直接媒体接口(direct media interface,DMI)相连接。PCH与至少一个机器感知机相连接,用于将环境感知信息和/或设备输入信息传输至基于X86/AMD64架构的主控制器。基于X86/AMD64架构的主控制器通过PCIE接口与至少一个RPU阵列相连接,用于将可重构数据传输至至少一个RPU阵列,以便进行计算。PCH与至少一个机器行为器相连接,用于将计算结果或执行AI超级计算机的指令从基于X86/AMD64架构的主控制器传输至至少一个机器行为器。
在一个例子中,基于X86/ADM64架构的主处理器可以是AI超级计算机的***级可重构控制器,同时还承担通用CPU处理器的全部功能。其中,***级可重构控制器、RPU阵列中的HEC_Link控制器以及RPU阵列中各个RPU内的可重构控制器共同构成了AI超级计算机的可重构控制器的主体。
在另一个例子中,基于X86/AMD64架构的主控***还可以包括:双倍速率同步动态随机存储器(double data rate SDRAM,简称DDR),用于基于X86/AMD64架构的主控制器可以临时将数据存储至DDR。从而节省了任务的执行实现,并提高了任务执行效率。
在一个例子中,AI超级计算机的编译***用于将应用程序进行标记与预处理,分解成主控***执行代码和RPU执行代码。然后根据RPU阵列对RPU执行代码进行代码变换与优化。例如任务时域划分、任务RPU划分、任务配置信息的生成。最终编译生成主控制器的控制码、RPU_Link的控制信息、RPU阵列的各项配置信息。
在一个实施例中,至少一个RPU阵列是AI超级计算机进行弹性计算的核心运算单元,在AI超级计算机中进行的可重构数据计算全部在RPU阵列上完成。并且根据实际的算了需求,可以增删RPU阵列中的RPU数量或者改变RPU阵列的排列方式与网络架构,从而可以实现可重构计算的算力的弹性配置。
在一个例子中,RPU阵列可以包括:弹性连接***HEC_link;一个或多个RPU。HEC_link在弹性连接控制信息的控制下,连接一个或多个RPU。一个或多个RPU通过HEC_link获取相应的配置信息,以及一个或多个RPU通过HEC_link从主控***或其它RPU获取可重构数据,同时还通过HEC_link将计算结果传输至主控***或其它RPU。本领域人员应当注意,可重构数据的输入来源和计算结构的输出目的取决于基于X86/ADM64架构的主控***以及HEC_Link的控制。
在一个实施例中,HEC_Link是AI超级计算机实现算力弹性配置的主要控制单元以及实现载体。在一个例子中,可以根据算力扩展的不同模式以及不同应用场景配置相应的HEC_Link。HEC_Link用于连接基于X86/ADM64架构的主控***和RPU阵列中的多个RPU,从而实现了RPU和RPU之间以及RPU与主控***之间的高速数据传输,以及主控***与RPU之间的配置状态与信息通信。
在一个例子中,HEC_Link可以根据需要,对已经确定了RPU个数的RPU阵列,通过改变连接关系,让各个RPU之间以不同的方式进行组合。
在一个例子中,编译***对已经确定的至少一个RPU阵列,通过HEC_link进行宽度和/或深度的调整,以改变一个或多个RPU的连接关系。例如,HEC_link根据弹性连接控制信息对至少一个RPU阵列中的一个或多个RPU进行计算深度和计算宽度的扩展,从而获得执行更大程序或更多任务的能力。HEC_link还可以根据弹性连接控制信息对至少一个RPU阵列中的一个或多个RPU分组,用于分别输入不同的可重构数据并执行不同任务;或分别输入不同的可重构数据并执行相同任务;或分别输入相同的可重构数据并执行不同任务;或分别输入相同的可重构数据并高效率地执行相同任务等等。
在一个例子中,至少一个RPU阵列与基于X86/AMD64架构的主控***通过PCIE接口相连接,HEC_link可以包括:PCIE协议转换器,用于将PCIE接口信息与至少一个RPU阵列中的配置总线和可重构数据总线进行协议转换。
本发明采用了PCIE接口连接主控***与至少一个RPU阵列,相比现有一些方案采用专用接口相比,采用标准的PCIE接口使得通用性更好,降低了硬件成本以及开发成本。
在另一个例子中,HEC_link还包括可重构数据总线控制器、可重构数据总线、可重构数据总线桥接电路、配置总线控制器以及配置总线。由可重构数据总线控制器、可重构数据总线、可重构数据总线桥接电路共同组成的可重构数据通路。以及由配置总线控制器、配置总线共同组成的RPU配置信息通路。
在一个实施例中,机器感知机包括:终端传感器,用于采集周边环境信息及自身状态信息;传感器模组,用于对终端传感器采集到的周边环境信息及自身状态信息进行二次分析计算,生成环境感知信息和/或设备输入信息作为可重构数据。
在一个例子中,机器感知机是AI超级计算机的外设装置,用于为AI超级计算机提供视觉、听觉、触觉、味觉、地理位置、位姿变化等环境感知信息或设备输入信息。在一个例子中,机器感知机包含终端传感器,用于完成终端周边环境及自身状态的信息采集;以及具备感知分析和计算能力传感器模组,用于对终端传感器采集的数据进行二次分析计算生成新的环境感知信息。其中,终端传感器可以包括:图像传感器(camera)、毫米波雷达(radar)、超声波雷达(ultrasonic)、激光雷达(lidar)、惯性测量单元(IMU)、麦克风(MIC)、全球卫星导航***(global navigation satellite system,GNSS)、触摸屏(touch panel)和应力感应器等等。传感器模组可以包括:RGB-D深度相机、双目深度相机和VIO三维重建相机等等。在另一个例子中,感知分析和计算能力可以基于CPU、GPU、FPGA或DSP,也可以基于RPU。
本领域人员应当注意,任何可以提供输入信息的设备均可以是机器感知机,本发明在此不做限定。
在一个实施例中,机器行为器是AI超级计算机的外设装置,用于输出AI超级计算机中计算或者推理的结果,以及执行AI超算的指令。其中,计算结果可以是用于训练神经网络时输出的训练好的神经网络模型;推理的结果可以是将样本数据经过神经网络模型的计算之后得到的结果。其中,机器行为器可以包括:通讯单元、人机接口、伺服机构和控制单元等。
本领域人员应当注意,任何可以提供执行输出结果的设备均可以是机器行为器,本发明在此不做限定。
在一个实施例中,AI超级计算机还包括:操作***,用于管理超级计算机的软件和硬件资源以及外设资源,以及执行编译***输出的编译文件,以及获取来自机器感知机的信息,以及控制机器行为器执行计算结果,以及根据RPU阵列的各项配置信息驱动至少一个RPU阵列,以及控制编译***执行在线编译。
在一个例子中,AI超级计算机的操作***用于管理AI超级计算机的硬件和软件资源,以及管理AI超级计算机的外设资源。用于执行编译***输出的编译文件,用于获取从机器感知机获取的信息。还用于执行控制码,并将配置信息以及可重构数据输出到相应的RPU阵列中,以便控制执行可重构计算程序并返回结果。并控制机器行为器执行AI超级计算机计算的结果,以及执行在线编译。
在另一个例子中,操作***还可以用于根据RPU阵列的信息驱动该RPU阵列。
在一个例子中,编译***的输入可以是高级编程语言编写的应用程序,如C语言、Python语言等。或者还包含高级语言依托的应用框架,如TensorFlow、Caffe等神经网络框架。编译***输出的可以是可重构计算的主控制器的控制码、RPU_Link的控制信息、RPU阵列的各项配置信息,以及主控***的通用执行程序等编译任务的处理状态信息。
在一个例子中,编译***支持在RPU阵列中无指令驱动神经网络。即无需指令驱动RPU阵列上执行神经网络任务。例如,神经网络在完成编译之后形成的编译文件,可以包括主处理器的控制码、RPU_Link的控制信息、RPU阵列中RPU的各项配置信息。在任务执行时,不需要指令控制,而是采用数据驱动,就可以实现从可重构数据的输入到输出,主控***获得的结果就是神经网络的端到端的结果。在另一个例子中,还可通过扩展编译***支持各种神经网络。神经网络的训练和推理过程中包含大量并行计算与重复计算,编译***可根据各种神经网络的特点进行适配,最终得出神经网络结构和神经网络网络参数部署到相应的RPU阵列上。
在一个例子中,编译***可在编译时,对RPU阵列的多模式弹性部署。多模式即编译***的输入可以是不限于应用程序或神经网络等不同的模式。编译***可以根据RPU阵列的特点,可以利用RPU_Link对RPU阵列进行列和行的扩展。其中,对RPU阵列的列扩展有利于支撑更多的并行计算,RPU阵列的行扩展有利于加速较长计算序列的流水线(pipeline)速度。其中,RPU_Link为开放式结构,即对RPU阵列中行和列的数量不做限定。RPU阵列的列和行的扩展主要取决于算力需求。
在另一个例子中,还可以在编译时设置,通过HEC_Link改变RPU的连接关系。对于已经确定了RPU数量的RPU阵列来说,还可以进行宽度或者深度的调整,以分别适应更多并行计算或者更长计算周期的任务。
再一个例子中,还可以在编译时设置,通过HEC_Link改变RPU的连接关系,协调RPU阵列中的一个或几个RPU形成一个独立的RPU组。一个RPU阵列中可形成多个RPU组,分别异步并行执行多任务,且相互之间不干扰,以实现多指令流多数据流(multiple instructionmultiple data,MIMD)和多指令流单数据流(multiple instruction single data,MISD)等多任务、高度并行化且高效运行的计算目标。
例如,可同时执行一个或多个不同的训练任务;或者,可同时执行一个或多个不同的推理任务;或者,可同时执行多个训练任务和多个推理任务;或者,可将同一数据同时输入到训练网络和推理网络。
再一个例子中,还可以根据实际需求,在主控***上接入多个RPU阵列,以适应更大规模的算力部署与并行计算。
在一个例子中,编译***可支持多模式编译。本领域人员应当注意,在RPU阵列发生变化时,包括但不限于RPU阵列数量的变化、RPU阵列中RPU数量变化、RPU连接方式变化等。可以通过重新编译,实现局部或者全局重新部署任务。
在一个实施例中,编译***为离线编译模式,将编译完成的编译文件传递至操作***;或编译***为在线编译模式,用于操作***实时进行编译并部署。
在一个例子中,编译***支持的多模式编译可以是离线编译模式或在线编译模式。离线编译模式是将输出的编译文件直接传递给操作***用于执行。换句话说,就是将完整的编译文件传递给操作***上执行。在线编译模式是在一部分编译完毕之后,就可以根据需要直接由操作***执行。换句话说,就是完整的编译文件可能还没编译完成,但是其中一部分已经完成了编译,此时,可以由操作***直接执行,等后续部分完成编译后,再由操作***执行。在另一个例子中,编译***可以将在线训练的网络结构通过在线编译实时部署下去,实现神经网络的在线实时更新。
本发明以X86架构为基础,通过主处理器与机器感知机、机器行为器相连,并且通过PCIE接口连接一个或多个RPU阵列,可根据产品需求和使用环境弹性地部署算力。同时还可支持边缘计算、大规模计算以及极大规模计算,可支持无需指令驱动的各种神经网络计算、支持在线训练与在线算法迭代,并且具有极高的通用性、灵活性和能效比。
图2为本发明实施例提供的一种弹性部署算力示意图。
如图2所示,为一种弹性部署的算力示意图,例如,此时需要执行的任务需要6个RPU,如图2中示出的RPU00、RPU01、RPU10、RPU11、RPU20和RPU21。上述6个RPU构成了3行2列的RPU阵列。但是若需要执行的任务从需要6个RPU变成需要12个RPU时,则可以对RPU阵列进行行或列的扩展。扩展后的算力示意图可以如图3所示。图3为本发明实施例提供的另一种弹性部署算力示意图。此时需要执行的任务由原先的6个RPU变成了12个RPU,如图3中示出的RPU00、RPU01、RPU02、RPU03、RPU10、RPU11、RPU12、RPU13、RPU20、RPU21、RPU22、RPU23、RPU30、RPU31、RPU32和RPU33。上述12个RPU构成了4行4列的RPU阵列。从而实现了RPU阵列的弹性部署,
图4a为本发明实施例提供的一种弹性调节算力执行多任务示意图。
如图4a所示提供了另一种弹性调节算力,并且执行多任务的示意图。此时可以将RPU阵列中的不同数量RPU进行分组,例如A组为RPU 0——RPU 2,B组为RPU 3——RPU 7。此时,可以针对不同的RPU分组,分别执行不同任务,例如A组执行A任务,B组执行B任务。如图4a中所示,A任务需要调用RPU阵列中的RPU 0——RPU 2;B任务需要调用RPU阵列中的RPU3——RPU7。
主控***通过配置总线将用于配置桥接模块的配置信息以及用于配置RPU阵列的配置信息传输至协议控制器。协议控制器将接收到的配置信息进行协议转换,转换成串行信号。协议控制器通过第一组通道中的第一控制总线,将转换后的串行信号传输至桥接模块。由于桥接模块中的第二控制总线与第一组通道中的第一控制总线相连,使得在第一控制总线上传输的串行信号通过第二控制总线传输至桥接模块中的桥接控制器。桥接控制器将用于配置RPU阵列的配置信息,通过第二控制总线与RPU阵列中各个RPU连接的RPU控制总线,传输至RPU阵列中相应的RPU中,以完成对RPU的配置。
桥接控制器根据用于配置桥接模块的配置信息对桥接子模块进行配置。在一个例子中,例如当前A任务需要用到4个RPU进行串行计算,分别为RPU0——RPU 3。此时A任务执行时RPU需要顺序调用,顺序可以是从RPU 0至RPU 3依次顺序调用。桥接控制器对桥接子模块中相应的通道矩阵进行桥接,如图4a中桥接模块中通道矩阵,其中黑色圆点的相交位置即进行桥接的位置,用于连接处于相交位置的RPU输入通道和RPU输出通道。对于A任务,图4a示出的桥接方式为将第二矩阵输出通道(Output_Array)桥接到RPU 0的输入通道(Input_RPU 0),RPU 0的输出通道(Output_RPU 0)桥接到RPU 1的输入通道(Input_RPU1),RPU 1的输出通道(Output_RPU 1)桥接到RPU2的输入通道(Input_RPU 2),RPU 2的输出通道(Output_RPU 2)桥接到RPU 3的输入通道(Input_RPU 3),当A任务只需要调用RPU 0至RPU 3的一个循环就可以完成的时候,则将RPU 3的输出通道(Output_RPU 3)桥接到第二矩阵输入通道(Input_Array)即可。但在另一例子中,若当A任务需要调用RPU 0至RPU 3的多个循环才能完成时,则将RPU 3的输出通道(Output_RPU 3)桥接到RPU 0的输入通道(Input_RPU 0)。本领域人员应当注意,此时需要释放第二矩阵输出通道(Output_Array)桥接到RPU 0的输入通道(Input_RPU 0)的桥接,以便完成RPU的循环调用。直至执行完最后一个循环时,释放RPU end的输出通道(Output_RPU end)与其他RPU输入通道(Input_RPU)的桥接,并将RPU end的输出通道(Output_RPU end)桥接到第二矩阵输入通道(Input_Array),用于将计算结果传输给HEC主控***。其中,RPU end表示最后一个执行完的RPU,可以是RPU 0至RPU 3中的任意一个。
对于B任务,图4a示出的桥接方式为将第二矩阵输出通道(Output_Array)桥接到RPU 4的输入通道(Input_RPU 4),RPU 4的输出通道(Output_RPU 4)桥接到RPU 5的输入通道(Input_RPU 5),RPU 5的输出通道(Output_RPU 5)桥接到RPU 6的输入通道(Input_RPU6),RPU 6的输出通道(Output_RPU 6)桥接到RPU 7的输入通道(Input_RPU 7)。当B任务只需要调用RPU 4至RPU7的一个循环就可以完成的时候,则将RPU 7的输出通道(Output_RPU7)桥接到第二矩阵输入通道(Input_Array)即可。但在另一例子中,若当B任务需要调用RPU4至RPU 7的多个循环才能完成时,则将RPU 7的输出通道(Output_RPU 7)桥接到RPU 4的输入通道(Input_RPU 4)。本领域人员应当注意,此时需要释放第二矩阵输出通道(Output_Array)桥接到RPU 4的输入通道(Input_RPU 4)的桥接,以便完成RPU的循环调用。直至执行完最后一个循环时,释放RPU end的输出通道(Output_RPU end)与其他RPU输入通道(Input_RPU)的桥接,并将RPU end的输出通道(Output_RPU end)桥接到第二矩阵输入通道(Input_Array),用于将计算结果传输给HEC主控***。其中,RPU end表示最后一个执行完的RPU,可以是RPU 0至RPU 7中的任意一个。
本领域人员应当注意,RPU数量是根据实际计算任务需求而定,本发明对应RPU数量并不做具体限定。同时,本领域人员还应当注意,对于不同任务,第二输出通道需要通过分时复用的方式,与不同RPU输入通道进行桥接,以及第二输入通道需要通过分时复用的方式,与不同RPU输出通道进行桥接,从而实现多任务的并行执行。
通过上述桥接模块对RPU阵列的桥接,当需要A任务和B任务并行执行时,用于计算的可重构数据通过数据总线传输至协议控制器,通过协议控制器将A任务和B任务的可重构数据进行协议转换,转换为串行信号。并通过第一组通道的第一矩阵输出通道传输至桥接模块的第二矩阵输出通道。桥接模块便可根据上述的桥接方式,将A任务的串行信号通过桥接从第二矩阵输出通道传输至RPU 0输入通道,以及将B任务的串行信号通过桥接从第二矩阵输出通道传输至RPU 4输入通道。
A任务通过与RPU 0连接的第二组通道中的RPU 0输入通道将串行信号传输至RPU0中进行相应计算。当RPU 0计算完成后,将计算完的数据通过与RPU 0连接的第二组通道中的RPU 0输出通道传输至桥接模块中的RPU 0输出通道。桥接模块再根据上述的桥接方式,将计算完的数据通过RPU 0输出通道传输至RPU 1输入通道,以便数据传输至RPU 1中继续进行计算。重复上述过程直至计算任务完成后,将计算完的数据通过与RPU end连接的第二组通道中的RPU end输出通道传输至桥接模块中的RPU end输出通道。桥接模块根据上述的桥接方式,将计算完的数据通过RPU end输出通道传输至第二矩阵输入通道,并通过第一组通道的第一矩阵输出通道传输至协议控制器。协议控制器将计算完的数据进行协议转换后,传输至HEC主控***,以完成计算任务。
B任务通过与RPU 4连接的第二组通道中的RPU 4输入通道将串行信号传输至RPU4中进行相应计算。当RPU 4计算完成后,将计算完的数据通过与RPU 4连接的第二组通道中的RPU 4输出通道传输至桥接模块中的RPU 4输出通道。桥接模块再根据上述的桥接方式,将计算完的数据通过RPU 4输出通道传输至RPU 5输入通道,以便数据传输至RPU 5中继续进行计算。重复上述过程直至计算任务完成后,将计算完的数据通过与RPU end连接的第二组通道中的RPU end输出通道传输至桥接模块中的RPU end输出通道。桥接模块根据上述的桥接方式,将计算完的数据通过RPU end输出通道传输至第二矩阵输入通道,并通过第一组通道的第一矩阵输出通道传输至协议控制器。协议控制器将计算完的数据进行协议转换后,传输至HEC主控***,以完成计算任务。
本领域人员应当注意,在上述任务执行过程中,RPU阵列中用于执行任务的RPU以及桥接模块还会将自身的状态信息通过各自的控制总线反馈至桥接模块的桥接控制器以及HEC主控***,以便在执行复杂任务时,可以动态调整桥接模块中的桥接通道,以及调整RPU以执行不同的计算任务。
在上述任务执行过程中,控制总线根据需求将每一个循环的配置信息传输至RPU阵列上,桥接模块根据配置信息以及RPU阵列中各个RPU的任务执行的状态信息,动态的控制输入通道与输出通道的桥接,用于RPU根据相应的配置信息以及输入通道传输的数据进行相应计算,并通过输出通道输出计算完的数据和通过相应的控制总线反馈自身的状态信息。
图4b为本发明实施例提供的另一种弹性调节算力执行多任务示意图。
如图4b所述,示出了图4a的逻辑架构图。对于图4a中多任务的并行执行,主控***可以通过配置总线,配置RPU阵列中不同任务的多个RPU的顺序调用,例如A任务为RPU 0至RPU 2依次顺序调用,B任务为RPU 3至RPU7依次顺序调用。并通过数据总线将A任务与B任务用于计算的可重构数据传输至RPU阵列中相应的RPU中,并进行计算。当计算完成时,再通过数据总线将A任务与B任务计算完的数据传输至主控***。本领域人员应当注意,在计算过程中,主控***还会根据桥接模块和RPU阵列中用到的RPU反馈的状态信息,通过配置总线发送新的配置信息,用于动态配置桥接模块中桥接子模块中的桥接和RPU阵列中的RPU。
本发明实现了以X86架构为基础,通过主处理器与机器感知机、机器行为器相连,并且通过PCIE接口连接一个或多个RPU阵列,可根据产品需求和使用环境弹性地部署算力。同时还可支持边缘计算、大规模计算以及极大规模计算,可支持无需指令驱动的各种神经网络计算、支持在线训练与在线算法迭代,并且具有极高的通用性、灵活性和能效比。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于高性能可重构计算的超级计算机,其特征在于,包括:
至少一个机器感知机,用于获取环境感知信息和/或设备输入信息作为可重构数据;
至少一个可重构计算单元RPU阵列,用于对输入的可重构数据进行计算;
主控***,用于控制将所述可重构数据传输至所述至少一个RPU阵列;
至少一个机器行为器,用于输出计算结果和/或执行超级计算机指令;
编译***,用于将应用任务进行标记和预处理,并分解为主控***执行代码和RPU执行代码;根据所述至少一个RPU阵列对所述RPU执行代码进行代码变换和优化,最终生成主控***的控制码、弹性连接控制信息和RPU阵列的各项配置信息;以便在所述控制码的控制下,形成至少一个机器感知机与所述至少一个RPU阵列的数据通路,以及形成至少一个机器行为器与所述至少一个RPU阵列的数据通路;以及所述弹性连接控制信息使得所述至少一个RPU阵列形成弹性的计算架构;以及所述RPU阵列的各项配置信息对所述至少一个RPU阵列中的RPU进行配置,用于对所述可重构数据进行计算。
2.根据权利要求1所述的超级计算机,其特征在于,所述主控***包括:平台控制中心PCH和基于X86/AMD64架构的主控制器;所述PCH与所述主控制器通过直接媒体接口DMI相连接;
所述PCH与所述至少一个机器感知机相连接,用于将所述环境感知信息和/或设备输入信息传输至所述基于X86/AMD64架构的主控制器;
所述基于X86/AMD64架构的主控制器通过所述PCIE接口与所述至少一个RPU阵列相连接,用于将所述可重构数据传输至所述至少一个RPU阵列,以便进行计算;
所述PCH与所述至少一个机器行为器相连接,用于将计算结果从所述基于X86/AMD64架构的主控制器传输至所述至少一个机器行为器。
3.根据权利要求1所述的超级计算机,其特征在于,所述RPU阵列包括:
弹性连接***HEC_link;
一个或多个RPU;
所述HEC_link在所述弹性连接控制信息的控制下,连接所述一个或多个RPU;
所述一个或多个RPU通过所述HEC_link获取相应的配置信息;以及
所述一个或多个RPU通过所述HEC_link从所述主控***或其它RPU获取所述可重构数据;以及通过所述HEC_link将计算结果传输至所述主控***或其它RPU。
4.根据权利要求3所述的超级计算机,其特征在于,所述至少一个RPU阵列与所述主控***通过PCIE接口相连接,所述HEC_link包括:
PCIE协议转换器,用于将所述PCIE接口信息与所述至少一个RPU阵列中的配置总线和可重构数据总线进行协议转换。
5.根据权利要求3所述的超级计算机,其特征在于,所述HEC_link根据弹性连接控制信息对所述至少一个RPU阵列中的一个或多个RPU进行计算深度和计算宽度的扩展;
以及对所述至少一个RPU阵列中的一个或多个RPU分组,用于
分别输入不同的可重构数据并执行不同任务;或
分别输入不同的可重构数据并执行相同任务;或
分别输入相同的可重构数据并执行不同任务;或
分别输入相同的可重构数据并执行相同任务。
6.根据权利要求3所述的超级计算机,其特征在于,所述编译***对已经确定的所述至少一个RPU阵列,通过所述HEC_link进行宽度和/或深度的调整,以改变所述一个或多个RPU的连接关系。
7.根据权利要求1所述的超级计算机,其特征在于,还包括:
操作***,用于管理所述超级计算机的软件和硬件资源以及外设资源,以及执行所述编译***输出的编译文件,以及获取来自所述机器感知机的信息,以及控制所述机器行为器执行计算结果,以及根据所述RPU阵列的各项配置信息驱动所述至少一个RPU阵列,以及控制所述编译***执行在线编译。
8.根据权利要求7所述的超级计算机,其特征在于,所述编译***为离线编译模式,将编译完成的编译文件传递至所述操作***;或
所述编译***为在线编译模式,用于所述操作***实时进行编译并部署。
9.根据权利要求1所述的超级计算机,其特征在于,所述机器感知机包括:
终端传感器,用于采集周边环境信息及自身状态信息;
传感器模组,用于对所述终端传感器采集到的周边环境信息及自身状态信息进行二次分析计算,生成所述环境感知信息和/或设备输入信息作为所述可重构数据。
10.根据权利要求1所述的超级计算机,其特征在于,所述机器行为器包括:通讯单元、人机接口、伺服机构和控制单元。
CN201910406990.1A 2019-05-15 2019-05-15 一种基于高性能可重构计算的超级计算机 Active CN110262996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910406990.1A CN110262996B (zh) 2019-05-15 2019-05-15 一种基于高性能可重构计算的超级计算机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910406990.1A CN110262996B (zh) 2019-05-15 2019-05-15 一种基于高性能可重构计算的超级计算机

Publications (2)

Publication Number Publication Date
CN110262996A true CN110262996A (zh) 2019-09-20
CN110262996B CN110262996B (zh) 2023-11-24

Family

ID=67914737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910406990.1A Active CN110262996B (zh) 2019-05-15 2019-05-15 一种基于高性能可重构计算的超级计算机

Country Status (1)

Country Link
CN (1) CN110262996B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859904A (zh) * 2020-07-31 2020-10-30 南京三百云信息科技有限公司 Nlp模型优化方法、装置以及计算机设备
CN112202243A (zh) * 2020-09-17 2021-01-08 许继集团有限公司 用于输电线路状态监测的全采集智能终端
TWI798642B (zh) * 2021-02-09 2023-04-11 寧茂企業股份有限公司 陣列式控制系統及其控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
CN108804379A (zh) * 2017-05-05 2018-11-13 清华大学 可重构处理器及其配置方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
CN108804379A (zh) * 2017-05-05 2018-11-13 清华大学 可重构处理器及其配置方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
王延升: "《粗粒度动态可重构处理器中的高能效关键配置技术研究》", 《中国博士学位论文全文数据库信息科技辑》 *
魏少军等: "可重构计算处理器技术", 《中国科学:信息科学》 *
黄石等: "粗粒度可重构并行计算的面向对象仿真研究", 《计算机工程与设计》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859904A (zh) * 2020-07-31 2020-10-30 南京三百云信息科技有限公司 Nlp模型优化方法、装置以及计算机设备
CN112202243A (zh) * 2020-09-17 2021-01-08 许继集团有限公司 用于输电线路状态监测的全采集智能终端
TWI798642B (zh) * 2021-02-09 2023-04-11 寧茂企業股份有限公司 陣列式控制系統及其控制方法

Also Published As

Publication number Publication date
CN110262996B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
Rupp et al. The NAPA adaptive processing architecture
Jin et al. Modeling spiking neural networks on SpiNNaker
CN110262996A (zh) 一种基于高性能可重构计算的超级计算机
Meng et al. Accelerating proximal policy optimization on cpu-fpga heterogeneous platforms
CN112580792B (zh) 一种神经网络多核张量处理器
CN110059050B (zh) 基于高性能可重构弹性计算的ai超级计算机
Smaragdos et al. BrainFrame: a node-level heterogeneous accelerator platform for neuron simulations
CN114035916A (zh) 计算图的编译、调度方法及相关产品
Vidal et al. Solving optimization problems using a hybrid systolic search on GPU plus CPU
Nurvitadhi et al. Scalable low-latency persistent neural machine translation on CPU server with multiple FPGAs
Chatzikonstantis et al. Multinode implementation of an extended hodgkin–huxley simulator
KR102188044B1 (ko) 뉴로모픽 아키텍처 기반 지능형 응용 개발을 위한 프레임워크 시스템
Othman et al. MPSoC design approach of FPGA-based controller for induction motor drive
Smaragdos et al. Performance analysis of accelerated biophysically-meaningful neuron simulations
CN112799603A (zh) 多数据流驱动的信号处理***的任务行为模型
Curzel et al. End-to-end synthesis of dynamically controlled machine learning accelerators
Abelson et al. The Supercomputer Toolkit and its applications
AlSelek et al. Dynamic AI-IoT: enabling updatable AI models in ultra-low-power 5G IoT devices
Fox Massively parallel neural computation
Lin et al. swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer
CN110135572B (zh) 一种基于soc的可训练柔性cnn***设计方法
Kerckhoffs et al. Speeding up backpropagation training on a hypercube computer
Manduchi et al. Integration of Simulink, MARTe and MDSplus for rapid development of real-time applications
Hielscher et al. Platform generation for edge AI devices with custom hardware accelerators
Jellum et al. fpga-tidbits: Rapid Prototyping of FPGA Accelerators in Chisel

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231030

Address after: Room 1802, Taixin Building, No. 33 Jinhua Road, Shibei District, Qingdao City, Shandong Province, 266011

Applicant after: Qingdao TianKuo Information Technology Co.,Ltd.

Address before: 100142 907, area 1, floor 9, No. 160, North West Fourth Ring Road, Haidian District, Beijing

Applicant before: BEIJING HYPERX AI COMPUTING TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant