近日,坊间传闻许久的比特大陆第二代人工智能芯片BM1682,正式出现在其官网页面。根据比特大陆一贯神秘务实的风格,相信基于BM1682的板卡、服务器也已经备好了。笔者在芯片行业浸淫十多年,尝试根据比特大陆官网公布的产品白皮书,来分析一下这两代人工智能芯片之间的异同,尝试谈一谈比特大陆在人工智能领域的意图和野心。
2017年第4季度,比特大陆正式推出了其人工智能品牌算丰(SOPHON),发布了全球首款公开发售的TPU(Tensor Processing Unit张量计算单元)芯片BM1680,专门用于人工智能中的深度学习加速。时隔不足一年,2018年3月,比特大陆又推出其第二款TPU芯片BM1682,根据初步披露的资料显示,BM1682是一块专门用于图像/视频处理方向的人工智能芯片。
BM1682与BM1680使用了相同的深度学习算法的硬件加速模块,但相比BM1680而言,BM1682具有更强大的深度学习算法执行能力,此外BM1682还增加了视频处理子模块,以及适用于具体应用场景的诸多功能模块。
下面我们对其两者进行一个具体的对比评测:
顶层架构——BM1682定位更细分
从顶层架构可以看出,BM1680和BM1682均集成了深度学习算法所用到的核心模块NPUs。NPU是比特大陆自行研发的深度学习算法硬件加速器,用于加速深度学习算法的执行速度。
从顶层架构图上可以看到,BM1680比BM1682额外集成了高度定制的BMDNN Chip Link Subsystem。该子模块可以在高速SerDes上提供稳定、灵活、低延迟的链路。用户可以通过该链路将多个BM1680芯片连接成一个统一的整体,使其协同工作,大大提高系统的运算能力。BM1682并没有集成此模块,这大概是基于BM1682专一化的市场应用定位,以及处理速度足够满足用户对图像/视频处理需求而考虑的。
从顶层架构图上可以看到与BM1680相比,BM1682芯片的整体架构发生了不小的变化,其定位则更加细分明确。从右上角增加的Video Subsystem模块可以明确看出,该款芯片定位于图像/视频处理方向。
(数据来自比特大陆官网)
模块细节——BM1682设计更丰富
BM1682的深度学习加速的核心功能模块与BM1680是相同的。两款芯片均包含了深度学习的核心单元—硬件加速器NPU Subsystem。两者的NPU Subsystem均各自集成了64个NPU单元,统一由NPU Schedule Engine进行调度(BM1682架构图中未体现),最大化的提高了NPUs的效率,加快了深度学习算法inference (推演)与training (训练)的速度。根据初步资料显示,两者在MCU的配置上是有些许差异的,但由于资料不全面,故无法评断出两者的MCU处理能力的差别。
除了深度学习算法硬件加速模块(NPUs)、用于高速连接其余BM1680的Chip Link模块之外,BM1680还提供了4个独立的DDR4通道,最高支持16GB的DDR3 或 DDR4 DRAM拓展,用于高速数据缓存读取,以提高系统的执行速度。BM1680还加入了Global DMA模块。DMA用于提供数据搬移功能,这可以在大块数据进行读写搬移时不占用MCU的资源,如在DDR4 的RAM中搬移数据时。对于大数据量的深度学习系统,DMA可以极大的提高效率。BM1680的Peripheral Subsystem 提供了UART、SPI、IIC与GPIO等接口,用于外接传感器,或与外界进行通讯、记录、控制等操作。这些接口都属于通用接口,可见BM1680的定位就是通用深度学习芯片,在外设上没有给与太多支持。
从架构图看,BM1682明显复杂了很多。其额外增加了AP (Application Processor) Subsystem和Video Subsystem(视频处理系统)。Video Subsystem(视频子系统)则主要专注于视频预处理的相关任务。
BM1682的Video Subsystem提供了2个H.264视频解码器,1个H.265解码器。H.264 /H.265均为视频编码方式,也是比较流行的视频编码的两种方式。相对而言,H.265视频编码比H.264具有更高的压缩比、更强的网络纠错适应能力,但考虑到现阶段在安防、智能家居和互联网视频领域中仍然还是以H.264编码的视频和视频设备为主,两者2:1的译码器数量在视频支持类型和解码带宽做了一个合适的权衡。比较贴心的是,BM1682提供了Video Post-Processing功能,该子模块用于对采用H.264或H.265编码的视频进行渲染处理,这些渲染处理主要包括颜色空间转换、视频剪裁、缩放操作、仿射变换、多帧拼接等常规操作。经过Video Post-Processing对外界进入的视频数据进行硬件加速预处理后,Video Subsystem会将处理后数据通过总线传输给NPUs、DRAM、AP System或外接存储设备,然后进行后续的深度学习处理等操作。
BM1682提供了丰富的外界交互接口,如高速接口PCIE、以太网、SDIO3.0、WIFI等。BM1682将数据处理完毕后可以很方便的通过PCIE接口、以太网接口、或者WIFI接口将数据传输到总服务器。若是条件限制没有网络接入点,用户可以选择通过接入SDIO3.0的eMMC存储器或是PCIE式存储器将数据存储到本地存储装置。可见,BM1682对其可能的应用场景做了充分的考虑并给予了硬件支持,用户可以根据需求,灵活方便的进行配置。
Peripheral Subsystem方面,BM1682比BM1680要丰富的多,这大大方便了用户进行系统拓展,如添加额外传感器等。BM1682的外设包括2个SPI接口、4个UART接口、4个IIC、4路PWM生成器、一块内嵌式SPI Flash、WDG、Timer、GPIO、PVT Sensor、Top Reg、Efuse、ROM。由给出的外设可以看到,BM1682的设计考虑了配置、存储、对外界系统实时控制、以及加密保护等功能,极大提高了系统的灵活性、安全性,省却了用户额外添加相关功能的开发成本。