10.3.6 混合异构算力
人工智能算法的强势崛起,意味着武器装备智能化将是决定未来战场胜负的重要砝码。随着算法复杂度的提升,航天装备引入了智能化芯片作为计算的扩展资源,“CPU+通用计算资源(DSP、GPU等)+专用计算资源(NPU、TPU以及对算法进行硬件加速并封装成IP核加载在FPGA上使用等)”的异构多核计算平台已经成为高性能算法设计的一项行之有效的方式;同时针对神经网络算法,我国已经形成了专用硬件加速芯片,并具有了一定的自主可控能力。因此,为了提高对智能计算平台的利用效率,对异构多核智能芯片的研制模式和应用方式开展研究,充分挖掘硬件性能,为系统的智能算法提供混合异构算力支撑,需要开展混合异构算力平台技术研究。
1)基于高级语言的硬件IP核设计技术
针对智能芯片的设计,由应用需求决定软件需求,由软件需求分解硬件需求。在这种开发思路中,FPGA作为软件的一种计算加速资源而存在,通过软件功能划分选择一个模块是由硬件实现还是由软件实现。在硬件重构过程中,首先通过高层次综合的方法,以可视化模型或C/C++等高层次方式对算法进行顶层设计,然后利用HLS工具将其转换成RTL级的HDL描述,进而分配逻辑资源,重新布局布线,最后进行IP核封装,达到算法快速实现并应用的目的。
2)面向异构嵌入式分布式计算系统的混合编程
针对目前异构系统存在的可编程性问题,参考现有异构并行编程技术,从降低编程复杂度、有效发挥系统软件功能出发,设计一个平台无关的异构硬件并行编程模型,为异构多核协同开发应用程序提供支持,提高异构系统上应用开发的效率。该模型共包含三个部分,即硬件无关抽象编程接口(软件编程)、硬件相关执行接口(硬件驱动)、软硬件动态绑定(运行时库),配合完成编程阶段的软硬件松耦合和运行时的软硬件依赖快速建立,利用层次化的负载均衡方法,实现整个系统上的负载均衡。
平台无关的异构硬件并行编程模型的具体内容包括:
(1)硬件无关抽象编程接口。以创建和管理抽象设备对象为核心,围绕计算过程中不同阶段的需求,提供与具体硬件无关的编程接口,供软件开发人员调用。编程接口包括抽象设备创建、设备上下文管理、平台参数查询、命令队列管理、计算数据传递、内存资源管理和执行结果获取等。
(2)软硬件分离。要求软件不再参与具体的硬件控制,取而代之的是一种硬件抽象定义,或者是硬件的地址化或指令化的操作和访问,使得软件不直接面向硬件,从而提高软件的独立性和自主性,实现软硬件分离的重要手段是利用FPGA中间件技术,由FPGA并行高效的管理硬件设备,同时实现硬件和软件之间的规范化定义和桥接。
(3)软硬件动态绑定运行库。拟综合派生/连接编程模型和流式编程模型,针对不同硬件特性,提供硬件注册、设备发现、任务划分、任务加载、任务映射、数据分布、执行序列优化、同步与通信运行时库,完成硬件无关编程与硬件相关执行之间的动态转换、高效映射、计算加速和负载均衡。
(4)硬件执行接口。提供一系列与各具体硬件密切相关的底层操作接口,即硬件驱动,执行实际的计算任务。通过统一的硬件注册进入系统,可由操作系统运行库进行设备的综合管理与调度。
3)面向RISC-V的异构计算架构
RISC-V是美国加州大学伯克利分校设计的一种开源指令集架构,自2014年正式发布以来,受到了包括谷歌、IBM、Oracle等在内的众多企业,以及包括剑桥大学、苏黎世联邦理工大学、印度理工学院、中国科学院在内的众多知名学府与研究机构的关注和参与。围绕RISC-V的生态环境逐渐完善,并涌现出了众多开源处理器和采用RISC-V架构的SoC,这些处理器既有标量处理器,也有超标量处理器;既有单核处理器,也有多核处理器,可以作为多元异构智能计算架构技术的基础。主要研究内容包括:
(1)支持基于RISC-V指令架构的AI加速算法。
(2)异构处理器之间高速通信技术、共享内存技术。
(3)异构多核硬件虚拟化技术。
(4)RISC-V指令集设计与分析能力,支持开展基于RISC-V指令架构的深度学习算法研究。
(5)基于FPGA的RISC-V指令架构CPU原理验证能力,支持完成基于DSP6678/SOPC(Xilinx的Z7系列)/ARM/RISC-V的多核异构硬件平台研究,完成异构多核核间高速通信技术、异构多核核间共享内存技术研究。
(6)基于RISC-V/DSP/SOPC的异构多核智能计算架构SoC流片设计与试验能力。
4)在轨编程与自主刷新技术
在轨编程与自主刷新技术可解决星载混合异构处理器平台中的FPGA软件故障,包括在配置寄存器、用户存储器/触发器中发生的单粒子翻转故障,在上电复位状态机、配置状态机、硬件乘法器中发生的单粒子功能中断故障和单粒子瞬态脉冲故障。同时可解决DSP软件系统受到外部空间环境影响而产生的各种问题。
智能芯片的软件设计与应用技术能够应用于弹/箭等装备系统的异构多核多处理器平台,混合异构算力技术能够有效提高软硬件协同工作效率,推动高性能计算架构设计技术在航天系统中的应用。