万 朵,胡谋法,肖山竹,张 焱
国防科技大学 电子科学学院 自动目标识别重点实验室,长沙 410073
随着物联网+的普及,边缘计算得到快速发展,以深度学习为代表的智能算法越来越多地被部署到边缘计算设备上,构成万物互联重要的端侧算力。然而,深度学习类算法的网络结构千变万化、层数和参数异常庞大,对算力资源的需求也日益复杂多元。边缘智能计算面临算力、功耗、体积、成本等诸多现实挑战,其中最主要的是算力与功耗的矛盾[1]。近年来,在边缘智能计算应用于实际场景的研究中,涌现了网络剪枝[2]、参数量化[3]、模型蒸馏[4]等一系列网络轻量化技术,同时也特别强调依靠硬件加速技术实现算力与功耗的平衡。硬件适配是硬件加速技术中的代表性实现手段,其中异构并行计算平台(下文中简称“异构平台”,含两种及以上传统计算平台)的硬件实现受到广泛关注。本文针对边缘智能计算的实现问题,对传统计算平台和异构并行计算平台两种硬件适配方案进行分析,旨在从算力、功耗的适配以及开发的便利等角度,为智能算法模型在端侧落地提供硬件平台选择参考。同时,通过梳理关键技术的发展脉络,对关键技术的发展成果进行总结,提出异构并行计算平台所面临的挑战。
本文首先对比分析了传统计算平台的优缺点,并梳理了异构平台中各个核心处理器(传统计算平台)在指令模型、通讯机制和存储体系三个方面的技术发展脉络。然后,调研了近年来的典型异构平台代表性产品,并对比分析运算速度和功耗等关键技术指标,介绍其在边缘智能计算中的典型应用。重点从算力和功耗的适配角度,对典型异构平台以及传统计算平台进行对比分析,给出不同应用约束条件下异构平台的选择建议,最后总结了异构并行计算平台面临的关键技术挑战。
传统计算平台的核心处理器主要有CPU、GPU、FPGA和ASIC。其中,CPU包括ARM和DSP,而ASIC还包含了以RISC-V为基础的专用集成芯片等。异构计算平台至少包含两种核心。下面将围绕每一类核心处理器在边缘计算方面的优缺点进行对比分析,指出传统计算平台在边缘智能计算中的优势与局限性,说明不同类型处理器之间存在互补性。然后从指令模型、通讯机制与存储体系三个方面梳理核心处理器的关键技术发展脉络,得益于这些关键技术的突破,传统计算平台的能力得到飞速提升,也使得综合了多核心优势的异构计算平台大量涌现。
在计算芯片的发展过程中,每一类核心处理器均形成了各自的独特优势,分别在不同领域中起到了不可代替的作用,不能笼统地下结论去判定孰强孰弱。而在同一领域中,以各处理器为核心的传统计算平台的优缺点是具有可比性的[5],因此本文以边缘计算和深度学习智能算法的应用为牵引,对传统计算平台进行对比,结果如表1所示。
各类传统计算平台对于边缘智能计算的优势侧重明显,且算力与功耗的矛盾突出。ARM采用单指令多数据技术、高级微控制器总线架构和存储层次系统,DSP采用超长指令集、直接存储访问和便笺式存储器,使得多核间通信速率大幅提升,侧重于不同网络层之间的信息交互,诸如串行递归、分支等操作能够高效实现,但是在功耗方面开销较大。ARM和DSP在多核实现上优势明显,能应用于小型网络部署,但对网络结构复杂的中大型网络支持不足,多用于神经网络的编解码过程。GPU采用单指令多线程技术、共享内存通讯和共享存储器,实现密集数据的高精度并行计算,侧重于大量浮点矩阵乘加计算的加速,但能耗大,且不利于数据传输频繁、多次少量情况下的计算加速。FPGA片上内存丰富,采用脉动阵列技术通讯,节省外部内存读取所需的功耗,同时实现了数据搬运计算过程中的低群时延,侧重于数据吞吐量大的计算密集型任务的部署。ASIC采用针对神经网络的专用指令集、特殊定制的数据通信机制和分布式片上内存,RISC-V人工智能芯片采用其同名精简指令集,是ASIC的一个特例,二者在提升边缘智能计算算力的同时保持了低功耗,局限性在于关键技术经过定制化地裁剪后芯片的通用程度受限。GPU[6-7]、FPGA[8]和ASIC[9-10]在并行实现上优势明显,能够应用于边缘侧的推理,对于中大型网络部署有很大优势。在功耗方面,FPGA、ASIC和RISC-V定制化程度较高,能量损耗经过优化,功耗相较ARM、DSP和GPU处理器小。
表1传统计算平台对比分析Table 1 Comparison and analysis of traditional computing platforms
由此可见,不论是在对边缘智能算法的适应性方面、算力方面,还是功耗方面,传统计算平台在边缘智能计算中的优势各有侧重,且局限性明显,一味地针对某种单一传统计算平台进行优化,并不能达到算力与功耗的最佳效果,二者的矛盾问题依旧突出。因此,为了消除“木桶效应”,更好地适配深度学习智能算法,同时考虑边侧设备对功耗的约束,平衡算力与功耗,在面向边缘智能计算时,计算平台的核心处理器芯片往往采用多种类型组合的方式,即异构形式,许多单芯片往往也是采用定制化的异构方式实现,进一步提升能耗比[11],缓和算力与功耗之间的矛盾。
以深度学习为代表的智能计算具有网络结构多样、网络层数和参数庞大,以及对硬件资源的需求复杂多元等特点,而边缘智能计算面临的主要问题是算力与功耗的矛盾。传统计算平台的能/耗平衡与晶体管工艺、处理器核数量、指令模型、通讯机制和存储体系等因素均有直接关系,其往往通过提升晶体管工艺、增加处理器核数量、优化指令模型、优化通讯机制以及优化存储体系等方法来提升能耗比,以适应边缘智能计算的需求。其中,提升晶体管工艺和增加处理器核数量的方式大多针对单核或多核同构架构处理器,而指令模型、通讯机制与存储体系的发展不仅在传统计算平台能力提升中发挥了巨大的作用,在异构平台的技术发展脉络中同样具有代表性。因此,下面将从指令模型、通讯机制与存储体系这三个方面,阐述技术发展过程,总结这三个方面的发展成果与存在的不足。
1.2.1 指令模型
指令模型关键技术如表2所示[12-22]。指令模型的发展主要体现在指令模型方面的进步主要体现在指令并行度、数据并行度以及代码密度的提高,有利于减少神经网络中一个神经元操作需要用到的指令数量,提高计算速度。同时,各指令模型在其对应平台上的优势逐渐突出。然而,每一种指令模型均存在其局限性,影响算力的稳定。例如:SIMD的计算受算术逻辑单元的位宽限制,并且要求计算量尽可能是向量维数的整数倍,否则会造成算力的浪费;VLIW不能确定指令执行时延且代码密度低,在寄存器连接和译码/控制方面开销大;SIMT在线程数量多时对分支计算的加速效率低下等,这些问题依旧是边缘智能计算的底层优化加速的挑战。
表2 指令模型关键技术Table 2 Key technologies of instruction model
1.2.2 通讯机制
通讯机制关键技术如表3所示[23-29]。通讯机制的优化主要体现在数据的传输速率和重用率得到有效提高,从而降低了智能算法在边缘计算时的数据通讯时间,节约了功耗,传统计算平台上的数据通信控制变得轻量化,有利于加速神经网络中的数据传递。但现有通讯机制仍存在部分缺点,会降低通讯速率,从而对计算平台的算力造成影响。例如:AXI4总线技术写数据通道不支持乱序发送,DMA与处理器仍然存在竞争访问总线的情况,传统脉动阵列无法处理多周期操作等,片内通讯机制仍具有改进空间。
表3 通讯机制关键技术Table 3 Key technologies of communication mechanism
1.2.3 存储体系
存储体系关键技术如表4所示[30-35]。存储体系的发展主要体现在访存速度的提升,访存时延的降低以及访存功率的减小,有利于降低神经网络相关算法中数据读写对整个计算过程的影响,降低数据读写功耗占整个网络计算功耗的比重。但是,存储层次系统在功耗方面,Cache的面积和功耗一般会占到整个芯片的四分之一至一半,在端侧设备中更甚;在算力方面,其命中率不易预测精确,难以满足边缘智能计算中硬实时处理系统的要求。而便笺式存储器存在动态数据分配问题[36],数据分配方案有待优化。
表4 存储体系关键技术Table 4 Key technologies of storage system
以上三类关键技术的发展过程,正是各个传统计算平台为了适应边缘智能计算应用需求,即为了提高算力、降低功耗而不断优化的过程,同时这些关键技术在异构平台中也得到了广泛的应用,对异构平台速度/能耗比的提升产生了很大的影响。
异构平台是指不同种类计算单元的组织形式、资源配置、通信机制以及互联关系的整体性描述,是承载异构计算[37]的硬件平台系统规范性表达。异构并行计算平台是传统计算平台的组合,主要包括CPU+FPGA组合、CPU+GPU组合,以及基于ASIC和RICS-V的人工智能芯片。相对于单一处理器计算平台(即单核或同构多核[38]计算平台)而言,它包含两种及两种以上的控制/计算单元,使用不同类型的指令集,在计算处理过程中,需要运用并行的编程方法,使多种类型的处理器同时进行控制/计算,从而有效发挥每一种处理器的优势,提高计算能力、增强可扩展性和减少计算资源浪费,达到计算性能和资源消耗最优化的目的。由此,异构并行计算平台在要求高性能、低功耗的实时处理应用中展现出了优越性,更加适合智能算法的边缘实现。目前,国内外已经有相当可观数量的研究将深度学习算法,特别是深度学习中的推断部分,移植至异构平台完成[39-43]。
下面将分别列举异构并行计算平台的典型代表,对比分析运算速度和功耗等技术指标,介绍它们在边缘智能计算中的典型应用。
基于CPU+FPGA的异构平台包括ARM与FPGA的组合和DSP与FPGA的组合。其中,ARM与FPGA的组合对应的代表芯片为赛灵思公司的Zynq7000系列,而DSP与FPGA的组合的代表产品为创龙科技的TL6678FEasyEVM评估板。
(1)ARM与FPGA组合
ARM+FPGA组合以赛灵思Zynq7000系列为例,其由两个ARM Cortex-A9核心与Artix-7/Kintex-7型号的FPGA组合而成。为使两种处理器紧密结合,该芯片提供了三种通讯机制,分别是DMA、AXI技术和内存共享。关于DMA,赛灵思为其FPGA封装了DMA逻辑IP核,使得原本只能在ARM或DSP一类同构处理器上使用的DMA通讯技术,也能用于ARM+FPGA异构平台,有利于实现ARM与FPGA之间的快速数据交换,进而充分发挥二者在算力和功耗上的优势。此外,赛灵思致力于将ARM和FPGA集成于一个芯片内,减小芯片面积,并且提供Vivado Design Suite/Xilinx Vitis系列完整开发套件,为开发人员提供高性能、低功耗的同时保障设计编程的灵活性。Zynq7000系列中XC7Z020型号芯片的技术指标如表5所示。
表5 赛灵思XC7Z020系列技术规格Table 5 Specific of Xilinx XC7Z020 series technology
ARM+FPGA组合适用于深度学习图像分类识别、目标检测与跟踪和视频监测等相关算法的实时实现[44],支持VGG、YOLOv3、CNN和剪枝后的DNN网络的部署[45]。ARM与FPGA分工明确,高效配合,FPGA负责神经网络中卷积操作等并行计算部分的部署,ARM负责权重的更新、网络训练的控制算法[46]以及其他简单的分支、迭代算法,其应用方向为高级驾驶员辅助系统、专业相机和机器视觉系统等。
(2)DSP与FPGA组合
DSP+FPGA组合以创龙科技TL6678F-EasyEVM评估板为例,其是基于FPGA+多核DSP平台的高端异构多核开发板,两种处理器分别位于独立的芯片内,然后集成在一块电路板上,芯片之间的通讯机制为SRIO、EMIF16以及I2C总线。在该异构平台上,虽然两类处理器之间的联系没有赛灵思系列芯片密切,通讯效率较低,但是灵活性强,可扩展性好。每个DSP核心的主频为1.0 GHz/1.25 GHz,工作在1.25 GHz时单核定点运算速度为40 GMACS,单核浮点运算速度为20 GFLOPS。Kintex-7的运算速度为2 845 GMACS。整体功耗控制在20 W以下,能耗比略高于XC7Z020芯片。其技术规格如表6所示。
表6 创龙科技TL6678F-EasyEVM技术规格Table 6 Specific of Tronlong TL6678F-EasyEVM technology
DSP+FPGA组合所适用的智能算法与所支持的神经网络与ARM+FPGA组合类似,二者不同之处在于DSP不仅可以负责网络中的控制算法,还能够应用于系统中非神经网络部分的信号与信息处理相关任务,FPGA依旧负责网络中以数据计算为主的作业。其主要应用方向为复杂信号处理,如雷达探测、软件无线电、光电探测、视频追踪和定位导航系统等。
在基于CPU+GPU的异构平台中CPU也可分为ARM和DSP。由于仅由DSP与GPU搭配的组合不多见,故此处仅介绍由ARM和GPU组成的异构平台,其主要生产厂商为英伟达公司。下面以Nvidia Jetson TX2为例展开介绍。
Nvidia Jetson TX2中集成了一颗A57应用处理器,一颗丹佛微处理器,以及一颗嵌入式的Pascal架构图形处理器。在指令架构方面,Pascal图形处理器升级了流处理器簇中的调度器,一个调度器在单周期内能够发起两条指令,提高指令并行度。在通讯机制方面,为平衡软硬件设计难度和数据传输效率,同构的ARM核之间、GPU内部以及异构的ARM与GPU之间所采用的数据交换方式主要为内存共享:两个ARM处理器分别私有2 MB大小的二级缓存;GPU内包含执行引擎和拷贝引擎,其中,执行引擎由两个流处理器簇构成,每个流处理器簇有128个流处理单元核,共享512 KB的二级缓存;ARM与GPU共享8 GB动态随机存储器。这一机制有利于保证数据的传输速率和重用率,降低智能算法在边缘计算时的数据通讯时间,进而节约功耗。Nvidia Jetson TX2的具体技术指标如表7所示。
表7 Nvidia Jetson TX2技术规格Table 7 Specific of Nvidia Jetson TX2 technology
ARM和GPU的组合适用于SVM、k-NN、k-Means和决策树等机器学习算法的加速,可实现SSD、YOLO、Tiny-YOLO和CNN等神经网络的部署[47]。在实现Tiny-YOLO网络时,可将该网络预处理、推断和后处理等步骤流水线化,ARM与GPU处理器紧密配合,把预处理和后处理操作部署于ARM上,把推断运算部署于GPU上,完成异构平台对神经网络的协同处理[48]。其应用方向为智能机器人、自动化物流车辆、智能城市和水下无人机等。
由于ASIC不同于其他传统计算平台,其计算单元根据特定的应用场景而专门设计,往往不会是单一架构,不能够简单地划分为某一特定类,故此处将ASIC作为异构并行架构再一次进行介绍。下面列举了三个典型的ASIC芯片或搭载ASIC芯片的加速卡,以及一个RISC-V人工智能芯片,并对其性能和应用方向进行说明和概括。
(1)英特尔Movidius Myriad X VPU
Movidius Myriad X VPU中包含一个“神经计算引擎”,该神经计算引擎内嵌大量乘加单元,而且在存储体系方面,将内存结构进行专门优化,乘加单元与内存直接相连,实现神经网络的快速计算,缓解内存墙的瓶颈。该处理器在推理阶段的神经网络计算能力提高到9 160亿次/s,且支持浮点16位和定点8位数据计算,能够在深度神经网络推理上达到超过1 TOPS的计算性能,提供超过40 000亿次/s运算的总体性能,其技术规格表如表8所示。
表8 英特尔Movidius Myriad X视觉处理单元技术规格Table 8 Specific of Intel Movidius Myriad X visual processing unit technology
Movidius Myriad X VPU适用于CNN等常用深度神经网络的加速,支持基于Caffe和TensorFlow机器学习框架的移植和部署,可用于深度神经网络推理阶段的硬件加速,其应用方向为无人机、智能相机、智能家居、安全和VR/AR头戴式耳机等设备[49]。
(2)寒武纪思元220 M.2人工智能加速卡
MLU220是寒武纪研发的一款专门用于边缘计算应用场景的人工智能加速产品,在指令模型方面,其采用针对智能算法定制的指令集,从而具有较高的能耗比。该加速卡理论峰值性能为8 TOPS,功耗仅为8.25 W,具有处理延时低和带宽利用率高等优势,可用于边缘端设备的AI方案实现。思元220-M.2规格参数如表9所示。
表9 思元220-M.2参数规格Table 9 Specific of Cambricon MLU220-M.2 parameters
MLU220-M.2加速卡支持CNN、RMM和SOM等网络,可用于决策树、SVM、k-NN等算法的加速,并可广泛应用于视觉、语音、自然语言处理和传统机器学习的边缘计算场景。
(3)华为海思昇腾310
昇腾310采用华为自研的Da Vinci架构,使用特殊的CISC指令集,这种指令集经过了自定义和优化,具有良好的可编程性,可灵活应对深度学习算法的迭代更新。同时,其集成大量、多类型的计算单元,例如标量、矢量和张量等,单个核心在单个指令周期内可以实现4 096次乘加计算,并且支持多种混合精度计算,既可用于神经网络的训练阶段,也可用于推理应用中,在16位浮点数据类型下算力为8 TOPS,在8位定点数据类型下算力为16 TOPS,且最大功耗仅为8 W,是一款高能效、灵活可编程的AI处理器,适用领域广泛。关键特性如表10所示。
表10 海思昇腾310关键特性Table 10 Key specific of Hisilicon Ascend 310
昇腾310可用于统计学习、深度学习和强化学习等典型机器学习算法的加速,支持CNN和DNN网络,以及TensorFlow、MindSpore机器学习框架[50],其应用方向平安城市、自动驾驶、云业务和IT智能、智能制造、机器人、便携机、智能手机、智能手表等应用。
(4)嘉楠科技勘智K210芯片
勘智K210的中央处理器为带有浮点运算单元的64位双核RISC-V架构,具有轻量化的指令集结构以及配套工具链,其芯片功耗为0.3 W,典型设备功耗1 W,算力1 TOPS,灵活适配边缘测场景需求,芯片自带SRAM和离线数据库,可在设备本地完成数据的处理和存储。其参数规格如表11所示。
表11 勘智K210参数规格Table 11 Specific of Canaan Kendryte K210 parameters
此外,勘智K210支持TensorFlow、Keras和Darknet等深度学习框架,可用于剪枝后的TinyYOLO系列神经网络的部署[51],以及机器视觉与机器听觉多模态识别等算法的加速,其应用方向为智能家居,如人脸门锁系统;智能园区,如无感门禁系统和智能考勤机;智能能耗,如智能抄表系统,以及智能农业等。
本章首先从算力和功耗适配等角度,对典型异构平台进行对比分析,并针对不同条件给出了异构平台的选择建议。然后,从速度/能耗比、并行效率、体积/面积和开发生态的角度,对异构平台与传统计算平台进行对比分析,进一步阐述异构相对于传统平台的优势。最后,提出了异构并行计算平台在指令模型、通讯机制、存储体系以及开发生态四个方面的关键技术挑战。
为了更直观地比较各平台的运算速度、功耗等性能指标,将第2章中列举的各平台典型代表的技术参数汇总如表12所示。
表12 异构平台的对比分析汇总Table 12 Summary of comparative analysis on heterogeneous platform
在运算速度方面,华为海思昇腾Ascend 310芯片最快,其运算速度高达16 TOPS;其次是寒武纪MLU220-M.2边缘人工智能加速卡、英特尔Movidius Myriad X、创龙科技TL6678F-EasyEVM、英伟达Nvidia Jetson TX2和勘智K210;赛灵思XC7Z020的运算速度最慢,仅为230 GOPS。在功耗方面,勘智K210最低,仅需0.3 W;其次是英特尔Movidius Myriad X、赛灵思XC7Z020、英伟达Jetson TX2、华为海思昇腾310和寒武纪MLU220-M.2;创龙科技TL6678F-EasyEVM功耗最高,全速工作时功耗为19.26 W。
速度/能耗比是判断处理器算力与功耗的平衡度的常见指标,各异构平台典型代表的速度/能耗比的比较如图1所示。
图1 速度/能耗比对比图Fig.1 Comparison illustration of speed/power ratio
在速度/能耗比的对比中,ASIC类型的处理器相较非ASIC类的异构平台明显更优,其中勘智K210排第一,速度/能耗比达到了3 000 GOPS/W以上,其次才是CPU+GPU异构平台NvidiaJetson TX2,速度/能耗比最低的是CPU+FPGA异构平台创龙科技TL6678FEasyEVM和XilinxXC7Z020。其中原因为ASIC在指令模型、通讯机制以及存储体系等方面专门针对边缘智能计算的特点进行优化设计,总是倾向于将速度/能耗比做到极致,其缺点是通用性不高。后两者优势在于通用性强,可编程性强,研发周期较短。由于在性能差不多的前提下,FPGA功耗小于GPU功耗,故CPU+FPGA的平台的速度/能耗比应该要比CPU+GPU的平台更高,本文结果与该结论相反,是因为在选取对应平台的典型代表时,CPU+GPU异构平台选取的是英伟达的高级人工智能终端计算解决方案,为了令其产品适用于边缘智能计算,对GPU进行了CUDA核数量的删减以及其他优化手段,而CPU+FPGA异构平台选取的是赛灵思XC7Z020芯片,这款芯片搭载的FPGA并非性能最高级别,且没有针对智能算法做过专门优化,导致最后的计算结果偏低。
然而,在边缘部署智能算法之前,不能一味地追求高算力或低功耗,需要综合性地考虑多个指标参数,大多数时候需要寻求算力与功耗的平衡。此外,处理器的体积/面积和开发的便利(如软件开发生态等)有时也需要纳入考虑范围,其相关参数在表12中也有对应体现。处理器的体积/面积在某些对重量、面积敏感的应用领域会有较大影响,如无人机等,这些应用领域要求处理器体积和重量越小越轻越好;软件开发生态是否完善关系到整个开发过程中的难易程度和开发周期,非AISC类异构平台的软件开发生态一般比ASIC类异构平台的软件开发生态要成熟。
综上分析,在一般情况下建议使用CPU+FPGA和CPU+GPU这类组合式架构来进行边缘智能计算的加速,它们的通用性强,可重构性强,若涉及到信号或信息处理相关任务,其中CPU选择为DSP会更加合适;若应用领域对计算平台的功耗要求比较严格,则建议适用FPGA相关的异构平台;若相关算法要求开发周期短、更新迭代速度快,则建议使用GPU相关的异构平台。当应用环境对算力和功耗要求都很高时,优先考虑ASIC计算平台,与此同时,如果待部署的智能算法已经比较成熟,则可以直接选用市面上已有的ASIC处理器,其开发套件中一般包含典型智能算法的例程,可以缩短开发时间,否则研发周期长会大幅拉长。
总而言之,不论是在运算速度方面还是功耗方面,ASIC芯片均更胜一筹,但该类芯片设计难度高,研发周期长,通用程度不高,故目前在边缘智能计算中使用更为广泛的仍然是CPU+FPGA和CPU+GPU这类组合式平台。此外,RISC-V作为新兴的精简指令集架构,以其开源的绝对优势吸引了全球范围内大批芯片厂商投入其中,并且已经取得了显著成果。建议一般情况下优先选取CPU+FPGA和CPU+GPU类型的异构平台,再全面考虑运算速度、功耗、体积/面积、软件开发生态和应用领域等综合条件,选择具体处理器的组合形式。
为进一步说明异构平台相对于传统平台的优势,本小节从速度/能耗比、并行效率、体积/面积和开发生态四个角度,将异构平台与传统计算平台进行了对比分析。对比结果如表13所示。异构平台在满足边缘智能计算多元需求时相对于传统计算平台更具优势。
表13 异构平台与传统计算平台对比Table 13 Comparison of heterogeneous and traditional computing platforms
在速度/能耗比方面,异构平台优于传统计算平台。异构平台结合多类处理器的在算力与功耗上的优势,极大程度地缓和了传统计算平台上算力与功耗的矛盾,提高了速度/能耗比。在并行效率方面,异构平台高于传统计算平台。相对于传统单一处理器而言,异构平台包含两种或两种以上的控制/计算单元,需要使用并行的编程方法进行异构计算,使得多种类型的处理器同时参与程序控制和数据计算,有效地提升了并行效率。在体积/面积方面,异构平台对应的产品大小一般情况下大于传统计算平台。对于组合类型的异构平台而言两种异构类型,一种是分立式的异构,即将两种及以上单独制造的处理器芯片集成在一块印刷电路板上(以创龙科技的TL6678F-EasyEVM核心板为例);另一种是联合封装式的异构,即在一颗芯片内集成多种处理单元(以赛灵思XC7Z020芯片为例)。虽然这两种异构方式实现难易程度不同,但本质上都是传统处理器的组合相加,因此产品的体积/面积更大。而ASIC类型的异构平台,为满足特殊边缘智能计算场景的需求,能够通过定制化的工艺将芯片面积缩小,部分产品体积/面积甚至能够做到比传统单一处理器芯片更小。在开发生态方面,传统计算平台的软件开发生态已基本成熟,而对于异构平台,虽然每个半导体芯片厂商为其产品均配有相应的开发套件,但是这些开发套件对智能计算支持的完备程度不一,使用的难易程度也不同。例如,赛灵思的Vitis开发套件有固定频率的维护更新,正不断提高对开发人员的友好程度,趋于完善,而新兴ASIC类异构芯片的开发生态还只是初具雏形,需要不断发展。
为了解决边缘智能计算中算力与功耗的矛盾问题,应对以深度学习为代表的智能算法在边侧实现时对算力资源复杂多元的需求,传统计算平台经过指令模型、通讯机制和存储体系方面的优化,提升了运算速度,减少了能量损耗,增强了对深度学习算法的适应性。然而,比起传统计算平台,异构并行计算平台不仅需要持续在指令模型方面提高指令、数据并行度以及代码密度;在通讯机制方面增加数据的传输速率和重用率;在存储体系方面提升访存速度,减小访存时延的降低以及访存功率等,还呈现出了一系列新的问题与挑战。
指令模型问题。目前,尽管不同架构的处理器已经能够被集成到同一块芯片中,但它们所使用的指令模型却仍然不同,没有从根本上解决执行模型的兼容问题,异构并行计算过程中任务管理困难,开发难度增加。专用指令集的发展有助于解决这一问题,但其通用程度不高,应用范围受限。如何设计一个统一且通用的指令模型,实现片上异构处理器的深度融合,为异核任务管理提供支撑,为研发人员进一步提供开发的便利是异构并行计算平台在技术发展中的重大挑战。
通讯机制问题。深度学习相关算法多为数据密集型算法,要求访存带宽大、延迟小,否则易面临存储墙的问题。而边缘计算受到功耗的严苛约束,对片内通讯机制则提出了更高的要求:数据通信机制必须足够轻量化。除了通过提高片上数据的重用率和减少运算中的访存需求等方式降低系统的能耗外,还要考虑如何利用异构处理器之间的互补性,实现数据的均衡负载,最小化通信量,以及考虑如何保证不同处理器在执行过程中密切协同,以低延迟高带宽的数据交换将整体芯片计算性能最大化。因此,通讯机制的轻量化是边缘智能计算中的关键研究问题。
存储体系问题。不同于云计算,边缘计算受集成电路板面积的限制,所使用的存储芯片通常不会很大,片上存储更是如此,这意味着在边缘计算中存储资源非常有限,所以,优秀的存储体系需要最大化片上存储的使用率,其中如何持续提高高速缓存的命中率是存储体系设计中的挑战之一。此外,在异构并行计算平台中,由于不同架构的处理器可能使用不同的高速缓存结构、高速缓存一致性协议以及访存方式,所以需要一种灵活的存储体系对异构处理器之间的访存干涉进行管理。其中,加强对多级存储层次分配的软硬件协同管理的研究至关重要,使软件与硬件两种存储管理方式相互配合,充分发挥软件管理的灵活性和硬件管理的高效性是存储体系设计中的另一个挑战。
开发生态问题。研发人员在使用异构并行计算平台进行智能算法实现过程中可以很明显地察觉到,不同类型的处理器其应用程序接口、库和操作系统服务不是统一的,而且目前没有一种编程模型能够适用于所有异构系统。不统一的开发生态增加了研发人员的学习成本,给异构并行计算平台的应用和普及带来了困难,尤其是以ASIC为主的专用芯片。因此,为保证研发出来的芯片能够落地使用,芯片厂商不仅需要在芯片算力和功耗上下功夫,还需要不断完善自己的软件生态系统,研发相应的编译工具链、操作系统以及智能计算相关的核心软件库,拥有完备的开发环境的芯片才具有核心竞争力,未来开发生态的设计将对异构平台的应用产生深远的影响。
边缘智能计算是学术界与工业界的研究热点。异构并行计算平台充分利用不同类型处理器的特点,在要求高算力低功耗的嵌入式领域中表现出绝对的优势,成为边缘智能计算落地的端侧算力的首选。在开展某一智能算法的端侧实现前,硬件方案的选择非常重要,需要充分考虑算力、功耗、面积/体积、软件开发生态以及应用领域等因素,适配硬件计算平台。本文对目前典型异构平台的代表计算平台进行了对比分析,旨在为开发人员提供选择参考,加速算法的部署。此外,本文还从指令模型、通讯机制和存储体系三个关键技术入手,对其发展脉络进行了全面的调查和总结,提出了面向边缘智能计算的异构并行计算平台在今后的发展过程中所需要面临的关键技术挑战,旨在为该领域的研究人员带来一定的启发。
将异构并行计算平台应用于边缘化智能计算时间尚较短,其虽然是从传统计算平台中继承发展而来的,但不能将其简单视为传统计算平台的排列组合。不论是异核的架构的多样性,还是边缘智能计算问题的复杂性,都蕴含了巨大的挑战。如何选用且用好异构平台,如何攻克关键技术难题,需要更多专家学者的参与和研究。