在Gartner提供的新兴技术发展周期报告中,边缘AI(Edge AI)只不过是发展还不到5年时间的一个点,拥有巨大的光明前景。因此,为边缘应用打造AI芯片正成为众多半导体公司的“新宠”,从英伟达(NVIDIA) GPU到赛灵思(Xilinx)特定领域架构(DSA)处理器,再到莱迪思(Lattice)超低功耗FPGA;从内存处理器(PIM)技术(如Mythic、Syntiant、Gyrfalcon)到近内存运算(如Hailo),再到可编程逻辑(Flex Logix)和RISC-V内核(Esperanto、GreenWaves),可谓“百舸争流”。
Edge AI要“达到生产力成熟期”大约还需要2-5年的时间(来源:Gartner)
但Flex Logix联合创始人王成诚博士日前在接受《电子工程专辑》独家专访时表示,客户在意的其实并不是架构,而是性能、功耗和成本这三要素,所谓“最好的产品”,其实就是能够在最低的价位和功耗基础上满足吞吐量需求。他预测,未来几年内AI加速器领域会出现比较明显的洗牌过程,由于跨度比较大,这些公司不会全部都是直接竞争关系,但如果有公司被淘汰乃至消失不见,也不是什么令人感到意外的事情。
直接对标英伟达
他是在为公司最新推出的InferX X1芯片进行宣讲时做出上述论述的。InferX X1芯片被王成诚称作“AI边缘系统领域迄今为止性能最高的芯片”,但他认为有必要事先做出澄清的是,这里所指的“性能最高”,并非指绝对的算力,而是指在某一价位/某一市场中绝对是最高的。
NVIDIA Jetson Xavier处理器是InferX X1的主要竞争目标。从王成诚在今年Linley Processor Conference上展示的数据看,尽管与Xavier相比,InferX X1只有8.5TOPS的算力,但其乘积累加(MAC)利用率却高达70%,这意味着可使用较小面积和较低成本处理高清图像和较大模型。例如在处理YOLOv3目标检测识别模型时,InferX X1在batch=1的情况下,可以对1Megapixel图像达到25.4帧每秒(fps)的吞吐量,对2Megapixel高清图像达到12.7帧每秒(fps),性能相比Xavier提升了30%。如果处理其他多个用户模型方面,InferX X1的性能更是高达Xavier的10倍。
InferX X1与NVIDIA Jetson Xavier处理器性能对比(图片来源:Flex Logix)
即便与Tesla T4相比,X1在性能和效率上也不落下风。
(图片来源:Flex Logix)
但采用16nm制程工艺的InferX X1芯片面积仅为54mm2,是1美分硬币的1/5,远远小于Xavier芯片350mm2的面积,批量价格也只有Xavier NX的1/10,而且达到这样的高吞吐量只需要用到一个x32 LPDDR4X DRAM。
之所以强调YOLOv3模型,王成诚解释说是因为相比于其他各类目标检测与识别的神经网络模型,YOLOv3的准确率是最高的。如果将ResNet-50和YOLOv3进行对比就会发现,两者之间最大的区别还在于典型基准的图像大小:ResNet-50使用224×224像素(实际上无人使用该尺寸);而YOLOv3使用608×608,甚至1440×1440像素,属于高清处理,这对自动驾驶、机器人、银行安全及零售分析领域的客户来说十分重要。
以自动驾驶为例,未来,每辆车都将配有多个推理引擎,可以实时检测到行人、公共汽车和小轿车从而避开他们,而所有小细节只有在大尺寸图像(比如在YOLOv3)中才能被捕捉到。设想一下用肉眼看图像的情况,也是如此,我们在一张小图片上会错过很多细节,甚至还可能曲解图片。
上述示例中,对于使用ResNet-50的每张图像,需要20亿个MAC,但是对于YOLOv3,则需要超过2000亿个MAC,增加了100倍。很显然,YOLOv3的计算负载要大得多。但X1主要应用于AI边缘推理应用,而此类应用最强调超低延迟的即时响应,这是否意味着YOLOv3运行速度要慢100倍呢?
发起挑战的秘密
在XFLX可编程互联网络架构、可重配置张量处理器和重新设计的内存子系统面前,答案显然是否定的。
- XFLX可编程互联网络架构
该架构属于Flex Logix的专有技术,此前被应用于嵌入式FPGA中,并在过去数年内被国内外多家知名公司所使用,包括Dialog半导体、波音、桑迪亚国家实验室、以及大唐电信旗下的辰芯科技。
“在准备设计AI芯片的时候,我们发现其实业内没有一个很出色的方案,能够将处理器、MAC、加法器、乘法器和内存有机的连接在一起,而且设计边缘神经网络推理芯片的一个难题是如何降低大量的数据交换及降低功耗,所以我们就创新性的将这一架构应用在X1中,并取得了不错的效果。”王成诚说。
因此,在运算一层网络的时候,设计人员利用可编程互连将X1的MAC根据该层网络的数据流(dataflow)来连接,相当于专为这一层运算配置了一颗ASIC芯片。在处理当前层级的同时,下一层神经网络模型的配置及权重可在后台从DRAM中被预加载(pre-load),每一次重配置只需要几微秒的时间,极大减少了由DRAM带宽限制所带来的计算的停顿。此外,Layer fusion功能还可通过将一个以上的配置文件进行合并来降低DRAM延时。
基于同样的原理,可编程互连也可与片上SRAM连接,将这一层的输出快速配置成下一层的输入,从而避免了大量的数据交换。所以InferX X1只需要一颗x32 DRAM就够了,从而将芯片设计得更小,大大降低了功耗和成本。
- 一维张量处理器(1D TPU)
每颗X1芯片中的可重配置张量处理器由64个1D TPU组成,而每个1D TPU包括64B输入张量、64 INT8 MACs、32 BF16 MACs和64Bx256B权重矩阵,每64个时钟周期可完成4096次乘加运算。
TPU与SRAM间的数据通路竞争问题交由可编程互联网络架构加以解决,可以达到非常高的数据交互速度。eFPGA可编程逻辑则用于实现包括控制TPU运行的高性能状态机,以及各种运算符的控制逻辑。
面对不断衍生的诸如3D卷积等新型神经网络架构模型,王成诚表示,很多AI加速器芯片内部采用了ASIC架构,现有神经网络模型在这些固定架构上运行时性能非常高,但只要模型发生了变化,性能就会出现大幅下滑。究其原因,很大程度是因为神经网络模型中的某些层次对传统乘法器和加法器布局难以支持,编译器(Compiler)也无法对ASIC中固化的结构进行修改。
但对可编程逻辑来说,设计人员可以将多个TPU配置成串联或者并联结构,以实现多种不同的张量运算,并保持较高性能。InferX编译器可以将TensorFlow Lite或者ONNX的模型直接转换为可以在InferX X1上运行的程序。
- 重新设计的内存子系统
Flex Logix公司首席执行官Geoff Tate此前曾撰文将MAC比喻为AI芯片的“引擎”,并称如果没有正确的燃料传输系统(内存和互联),引擎就会熄火。因此,为了让内存更接近MAC,从而缩短延迟时间,提高MAC分布式并行处理能力,Flex Logix采用了分布式的内存架构,也就是把MAC分成块,然后用本地化SRAM来分配这些块。
X1中使用了最少的内存资源以降低成本,包括LPDDR4x DRAM和总共14MB的SRAM,相比之下,Xavier则需要4-8个GDDR6 DRAM。也就是说,要达到同样的性能,Xavier需要X1 5倍的DRAM频宽才能实现。
“DRAM的类型选择是非常重要的一环。”王成诚说之所以选择LPDDR4,是考虑到它具有更宽的总线配置,可以从单个DRAM中获得更多的带宽。相比之下,高带宽内存(HBM)极其昂贵,对于成本预算严格的边缘应用不太适用;DRAM芯片不便宜,需要考虑PHY、I/O接口、封装等选项,而且对热非常敏感,对于在室外工作的汽车和监控摄像机来说,可能是个问题。因此,考虑到成本和散热问题,最好尽量少用DRAM。
InferX X1的批量生产芯片和配套软件将于2021年第二季度开始全面出货,用户样品及早期软件工具则计划于2021年第一季度开始对用户进行供货。
相关文章阅读: