朱明
(天翼物联科技有限公司 江苏省南京市 210006)
根据国际电信联盟电信标准分局ITU-T 的研究结果表明,在2020年,平均每人每秒将会产生1.7MB 的数据。由此可见,边缘计算已经成为海量数据分析与存储背景下解决网络带宽问题的最佳方案。
在靠近用户端的网络边缘节点进行计算,成为技术革新的重点。想要实现边缘计算,需要在网络边缘端植入小型嵌入式信息采集处理设备,当用户使用的智能设备(如智能手机、电脑等)将数据传送到网关后,通过边缘设备对数据进行计算、分析、处理、过滤及反馈。如此一来,很多原始数据在边缘端已经得到了完善的处理,不必传送到云端,进而节省了大量的网络传输成本,有效降低了带宽的压力。
目前常见的边缘计算设备如下:
(1)EDGE TPU 计算板。作为最新出现在市场上的专用集成电路芯片(ASIC),此设备主要用于计算神经网络产生的相关数据,在运行过程中,具有极快的数据处理速度,并且无需消耗大量外部能源。
(2)NVIDIA Jetson TX2,作为一种应用于人工智能的超级计算机信息处理模块,其采用了Maxwell(NVIDIA 第十代GPU 架构),结合流式多处理器,不仅支持16 位的半精度运算,还能够满足部分设备对32 位单精度的计算要求。
(3)Jetson NANO,在传统的TX1 数据处理模块的基础上,实现了数据流的提升,并且其电源性能得到了增强。其主要构成是将CUDA 核心的数量提高到了128 个,并且支持16 位半精度计算和32 位单精度计算,与其他设备不同的是,NANO 的16 位计算数据容纳量超过了32 位计算的一倍。
边缘计算设备性能功耗实验过程采用Roofline 性能分析模型作为判定工具。该模型将神经网络部署在上述几种边缘计算设备上,组成相关平台,根据其运行时的帧数(帧率)对维持期正常运转的必要功耗进行推算,从而绘制出Roofline 模型,进而通过直接的观测,对数据结果进行分析。此外,结合试验结果,可以对部署在边缘计算设备之上的神经网络进行针对性优化,目的是提高数据运算、处理速度。
Roofline 性能分析模型是一种视觉上的直观性能模型,经常绑定在多核或者加速器处理架构上,在运行过程中对出现的数值进行分析,印证相关设备的可操作性。与传统的峰值百分比测算方式不同,Roofline 模型能够将局部性、带宽和不同的并行化范例组合到统一的性能数据中,从而客观判定设备性能。目前较为成熟的实验流程如下:首先通过外置的功耗测量设备,对不同边缘计平台待机以及无神经网络负载时的功耗进行测算;其次,结合模型的整体运
行速度,通过系列运算制作出“性能-功耗比”模型;最后,根据结果将各个边缘计算平台的待机功率与负载神经网络时的运转性能及功耗比进行对照,为进一步的分析提供准确数据。为了充分说明边缘计算的先进性及潜在的发展商机,本实验进行过程中,添加了K40、K80 等服务器级别的图形处理器(GPU)对照组。
EDGE TPU 计算板本身具备4T/s 的峰值计算量,且其最大带宽能够达到50GB/s,此外,EDGE TPU 计算板的固定数据处理方式为量化产生的8 位整型数据运算,其中8 位整型处理器不仅面积小、能量消耗低,仅仅为IEEE 二进制浮点数算术标准(IEEE 754)定义下FP46 处理器的六分之一。基于此,EDGE TPU 计算板本身性能极强,在保持高速运算的同时无需消耗大量外部能源。通常情况下,TPU 运行前的重要准备工作是量化数据处理步骤,尽管此举会导致数据精度有所降低,但神经网络模型的泛化能力会有效淡化这一问题。为了确保量化不会对实验造成影响,实验人员采用32 位单精度和8 位定点权重参数对移动网络V2 和卷积神经网络结构V4 进行了测试,其中移动网络V2 模型的精度浮点为0.792,精确度-int8 为0.779;卷积神经网络结构V4 的精度浮点为0.78,精确度-int8 为0.771,可见准确性非常高,符合实验要求。此外,本实验采用四种常见神经网络,将之作为实验对象,其中Mobile Net SSD V1 和Mobile Net SSD V12 的卷积均为36(13dw),数据集为Coco,唯一不同的是重量大小,前者为4.27M、后者为3.4M;而Inception V1 和Inception V4 的卷积分别为53 和59,数据集均为Image net ,重量大小分别为6.8M 及4.3M[1]。
根据上文介绍,通过Roofline 性能分析模型,能够将边缘计算设备的性能、密度和存储性等重要数据关联在一起,通过二元直角坐标系清晰显示。基于Roofline 模型本身的限制,即网络模型中的数据无法进行高速缓存,因此模型中的位置会受到测算力与内存宽带的制约。一般来说,二元直角坐标系中的纵向轴(Y 轴)代表的意义为浮点的每秒运算次数,Roofline 模型曲线中较为“平滑”的部分代表峰值计算速率;横向轴(X 轴)代表的意义为计算的强度,记录访问DRAM 自己的浮点运算,此外,内存宽带以每秒字节数的形式展现。根据数学运算:(操作/s)÷(操作/字节)=字节/s,因此其代表Roofline 模型曲线中呈现“倾斜”的部分。经过大量实验数据分析可知,如果计算强度不足,Roofline 网络模型会受到内存带宽较为严重的制约,其在二元直角坐标系中的位置常常处于曲线倾斜部分靠下的位置。
绘制Roofline 模型曲线之前,必须将计算平台理论上可以达到的峰值以及内存带宽计算出来。
(1)峰值算力计算公式如下:PROnum×OpePerSecnum= OPSpeak,其中OPS 即为算力,Pro 代表处理器的数量,OpePerSec则表明不同处理器每秒钟可以操作的数量,将上述三种边缘计算设备(TX2、NANO 及EDGE TPU)通过该公式计算,得出的8 位算力分别是1.3TOPS、471GTOPS 以及4TOPS。将两种服务器级别的图形处理器(K80、K40)的峰值带入该公式计算,可以得出其32位算力峰值分别为8.75T 以及4.3T。
(2)内存带宽计算公式如下:ClockRatememory×2BitW= BWtheory,公式中的BW 即为带宽,ClockRate 的含义为时钟频率,而BitW 表示位宽。将边缘计算板与服务器级别的图形处理器分别带入计算,得出理论上的峰值带宽分比为:TX2-85.5GB/s、NANO-25.7GB/s、EDGE TPU-50GB/s、K80-480GB/s、K40-290GB/s。
根据三种边缘计算板的算力及内存带宽数据绘制成Roofline 模型曲线图并通过对数变换显示,经过分析可知,EDGE TPU 的算力超出TX2 两倍、超出NANO 7 倍。造成如此大差距的根本原因在于EDGE TPU 计算板进行了结构改进,与部署在其上的神经网络高度契合,同时采用8 位顶点数据量化的方式,极大地提升了运算速率,因而其性能效果已经远远超过其他两种边缘计算板。
除了受到网络带宽限制以外,计算板自身的内存带宽还容易受到硬件自身的性能限制,连接线路在运行过程中产生的电磁干扰信号以及其他各种各样无法避免的物理干扰因素都会影响内存带宽的计算。面对此种情况,EDGE TPU 自带的Bandwidth 带宽测试模块能够发挥巨大作用,经过实际应用,得出TX2 的实际内存带宽为33.5GB/s、NANO 的实际内存带宽为15GB/s。而EDGE TPU 自身的实际内存带宽为30GB/s。对Roofline 模型内存带宽曲线图进行分析,可知TX2 的计算强度达到40 操作(算力)/字节时,即为峰值,与X 轴保持平行且无限延伸。一般来说,边缘计算板在实际运行中还会收到诸多影响,导致神经网络的位置无法与Roofline 模型曲线产生交集,但其与曲线峰值的距离恰恰证明了后续调整计算强度的可行性。Roofline 模型曲线与Y 轴的距离差值,一般情况下代表数据缓存的障碍。当神经网络分布在曲线的斜线部分是,表明收到了网络带宽制约,无法达到计算峰值。当NANO 的计算强度达到32操作(算力)/字节时,算力达到峰值,与X 轴保持平行且无限延伸。与上述两种边缘计算板不同,建立EDGE TPU 计算板Roofline模型时,必须量化神经网络,为了避免受到原有权重的影响,应该将浮点型的参数转变为整型参数,并对计算强度进行重新定义,此时计算强度应该以“计算数/字节”进行计量。根据Roofline 模型曲线可知,当EDGE TPU 的计算强度达到140 操作(算力)/字节时,处于巅峰状态,与X 轴保持平行且无限延伸。将三种计算板的Roofline 模型曲线放在一起比较克制,EDGE TPU 曲线的倾斜上升过程最长,且峰值最高,造成此种现象的原因在于:
(1)EDGE TPU 中经过量化处理的神经网络计算强度较大,受限于网络带宽进而调整的幅度也较大。
(2)EDGE TPU 计算板由于自身高度集成,性能更佳[2]。
运行过程中消耗的能源也是边缘计算设备性能的一部分。结合实验过程中产生的相关数据,本文将边缘计算设备的性能与做功单位瓦特(w)组合在一起,构建出“性能(算力)/w”的评判指标,与上文所述一样,结合K40 与K80 两种服务器级别的图形处理器进行比较分析。
本实验选用的测量边缘计算设备功耗的设备型号为EXTECH- 380803,其误差范围上下不超过0.9%,其输入电压为标准家庭电压,即220V 的交流电。经过对相关资料的研究可知,嵌入式边缘计算设备的主要能耗数据产生于计算板的整体能耗,而K40 与K80 的能耗数据产生于内部寄存器。
为了保证功耗测算的精确性,必须在计算没有负载神经网络的情况下,首先确定其空载运行消耗,即空闲能耗。经过实际测算的结果显示,NANO、TX2、EDGE TPU 为整个开发计算板功效,其中NANO 的能耗最低,仅为1.5w;TX2 的空闲能耗为7.5w;EDGE TPU 的空闲能耗为3.5w;K40 的空闲能耗达到23w;而K80的空闲能耗最高,达到58w。经过数据对比可知,TX2 的待机功率是边缘开发计算板中最高的。
确定空闲能耗之后,应该在负载神经网络的情况下测量各个边缘计算平台的工作能耗。经过实际测量,得出每种计算板的性能(算力)与消耗功比之如下:NANO 为47.5、EDGE TPU 为585.3、TX2 为89.8、K40 为18.7、K80 为30。经过对比可知,两种服务器级别的图形处理器算力与带宽虽然非常高,但性能与功耗比数值偏低,即在运行过程中,虽然对数据的计算、处理速度较快,但却必须消耗大量外部能源。而EDGE TPU 的性能功耗比远远超过其他两种边缘计算板,超出NANO 11 倍,超出TX2 6 倍。由此可知,在执行相同计算任务量的情况下,EDGE TPU 计算板不仅性能最佳,消耗的能源最低,因此在日常工作中,采用此种计算板的性价比最高。
VGG 卷积神经网络结构由牛津大学于2014年首先提出。基于其简洁性和实用性,成为了当时最流行的卷积神经网络模型,具有良好的图像分类和目标检测任务功能。在2014年的ILSVRC比赛中,VGG 在Top-5 中取得了92.3%的正确率[3]。本实验将VGG16 网络结构部署在TX2 边缘计算板上,通过记录可知,其平均每秒钟处理图片数量为30 张,绘制出Roofline 模型之后,可知VGG16 模型的附着点位于斜线附近且距离较近。此种现象说明当VGG16 网络结构运行在TX2 时,其接受访问的数据存量极为有限。为了使该结构提升运行效率,在带宽允许范围内进一步提升TX2 的利用率,应该对其进行修改,原则是大幅度削减卷积和维度,削减数量至少为三分之二,目的是较少计算量和方存量,但在整体上保留其原本的网络架构。经过修改后的模型,运行准确度下降了5%,但是每秒钟能够处理的图片数量提升了8.5 倍,而TX2 的每秒操作数也得到了显著提高。
边缘计算需要结合神经网络才能有效开展工作。通过Roofline性能分析模型开展实验与分析,采用合理的量化方法,得出了较为严谨的神经网络的带宽容纳能力和访问存储空间大小。