随着华为海思芯片供货的日益紧张,越来越多的开发者开始咨询NVIDIA Jetson系列产品,尤其关心NVIDIA与华为产品的差异,本文将从产品定位、平台生态、应用迁移几个方面对华为海思、华为Atlas、NVIDIA Jetson三个平台进行一个综合的对比,希望能对有需要的朋友有所帮助。
产品性能对比
海思Hi3559A以及Atlas 200/500作为华为在边缘计算方向的主流产品,一直有着不错的表现。作为本次评估的对标产品,联宝科技(联想集团子公司)的EA-B200和EA-B310在AI算力,视频编解码性能上与华为产品综合对比究竟谁更胜一筹?通过下图可以有一个更加直观的了解。
海思Hi3559A自发布以来,作为国产安防方案的代表不断走强,与其突出的视频处理能力不无关系。视频编解码支持8K高分辨率,内置ISP可以支持图像全景拼接、数字防抖等功能,4TOPS的AI算力在该级别也算是佼佼者。
对标产品联宝EA-B200采用了Jetson TX2 NX核心模组,作为TX2的cost down版本,其成本大幅下降性能却基本持平。AI算力方面,虽然FP16浮点运算能力不能直接与INT8整形运算能力对比,但基于实际用户体验,TX2 NX的整体算力还是弱于Hi3559A。CPU性能方面得益于高性能的Denver2架构,比ARMv7和ARMv8更宽的指令解码宽度,性能更为强劲。视觉编程方面与海思独立ISP相比,TX2 NX使用了NVIDIA的VPI框架,在运动相机的场景中应用还不够广泛。不过在视频编解码并行能力上TX2 NX占据优势,可以同时支持14路的1080p@30fps的编解码,Hi3559A没有明确的官方数据。
Atlas 200/500系列,以加速模块和终端产品的形态存在,均采用了华为自研的达芬奇架构昇腾310 SOC。对于CPU及NPU细节,官方没有公布,其AI算力,高达22TOPS。视频编解码能力也达到1·1080p@30fps和16·1080p@30fps,可以广泛应用于智慧城市、零售、制造、机器人、无人机等领域。
对标产品联宝EA-B310采用了Jetson Xavier NX核心模组,INT8算力以微弱劣势稍逊于Atlas 200/500,不过在FP16的算力加持下,综合算力强于Atlas。CPU性能方面采用了Denver2的改进版Carmel最新框架,其指令解码达到了惊人的10宽度,性能极为强劲,Atlas的CPU由于未透露更多细节,对于其整体表现还不了解,期待后续的实际测试对比中来给出更多细节。在视频解码能力上也与Atlas持平,不过视频编码方面,并行能力大幅领先,在多路摄像头录像这样需要用到编码的场景下占据优势。在应用领域方面,Xavier NX与Atlas基本重合。可以说,对标的两个产品应用场景都基本一致,但综合性能联宝EA-B310更胜一筹。
框架/生态全面解析
在方案的硬件框架和基本性能之外,软件框架和生态的完善程度影响着产品开发和维护的效率、成本和体验,甚至决定着产品的成败。
Hi3559A采用了海思的统一软件框架,媒体软件处理平台(Media Process Platform,简称MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 MPI(MPP Program Interface)接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理(包括去噪、增强、锐化)、图像拼接、图像几何矫正、智能、音频捕获及输出、音频编解码等功能。SVP(Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台。该平台包含CPU、DSP、NNIE(Neural Network Inference Engine)等多个硬件处理单元和运行在这些硬件上的SDK开发环境,以及配套的工具链开发环境。
Atlas系列产品,采用了CANN(Compute Architecture for Neural Networks)异构计算架构,支持用户快速构建基于昇腾平台的AI应用和业务,主要包含AscendCL、DVPP、HCCL等组件:昇腾统一编程接口AscendCL实现软硬件解耦;华为通信集合库HCCL在分布式训练中为不同昇腾AI处理器之间提供高效的数据传输能力;DVPP实现硬件加速,提升图像预处理并行能力。AI框架兼容主流的TensorFlow、Caffe、Pytorch,同时支持华为的开源AI框架MindSpore,更好地匹配昇腾处理器的算力和全场景深度学习框架。
同时,昇腾还在以下几个方面提升开发的效率和体验:预训练模型:提供大量预训练模型和脚本工具,让开发者能够最高效完成AI模型开发;
算子调优:提高开发效率;
性能调优:发挥芯片极致性能;
行业应用开发套件:使能开发者以极少代码快速开发行业AI应用;
昇腾社区:使开发者获得更多更快的支持。
在生态建设方面,昇腾有以下几个措施:硬件开放、软件开源,使能合作伙伴, ISV合作伙伴发展计划、初创伙伴加速计划,高校教学合作、论文+模型开发激励、开发人员成长计划。
而NVIDIA作为早期入场AI并且其平台和生态也日趋成熟的厂商,体系更显完善。在软件框架方面,CUDA作为最早推出的CPU+GPU并行运算平台,性能强大系统成熟,并且支持跨平台(X86、ARM),有着丰富的开发和系统资源。AI框架支持TensorFlow、PyTorch、Caffe2、Keras、MXNet等主流框架,并且可以通过TensorRT对模型优化,极致利用GPU性能。DeepStream框架将深度神经网络和其它复杂任务引入到流处理管道,对视频流和传感器数据流进行实时分析。
NVIDIA Jetson还在以下几个方面全面加速或简化系统的开发和部署:
TAO & FLEET工具集:基于Transfer Learning Toolkit,内置大量预训练模型,对模型进行迁移学习,可视化微调,将一个通用模型以极低成本调整为适合当前业务的高准确度的定制模型,并且通过Fleet command快速部署。
Could Native:提供容器和多种镜像,快速部署各种应用和服务;
ISAAC:为机器人量身定制的数字孪生系统,让训练在虚拟世界中快速低成本地进行;
VPI:NVIDIA视觉编程接口,统一NVIDIA所有的硬件平台接口,忽略底层差异,内置多种算法,加速应用开发;
Jetson官方及第三方社区:高活跃度,大量的业务和技术信息持续流通;
生态建设方面,NVIDIA开展了全球规模的GTC大会,各行业顶尖玩家的精彩案例和演讲不断分享。NVIDIA Partner Network核心伙伴案例交流,营销和产品的定期培训,持续进行能力提升。
总体来说,海思Hi3559A的AI框架支持较弱,仅支持Caffe框架,但提供整套的SDK包,内置较多的应用Demo,做少量修改即可完成一个产品原型。Atlas技术框架和生态建设均很完善,也提供了各种快速开发和部署的组件和工具,但兼容性和成熟度还没有经过市场检验。Jetson依赖最成熟的CUDA平台,程序可从X86平台移植且无缝衔接,提供了快速开发和部署的工具集,并且建设了ISAAC数字孪生平台为机器人开发加速,拥有最完善和成熟的生态。
应用迁移探讨
那么从Hi3559A和Atlas将系统应用迁移到Jetson的可行性和难度如何呢?笔者也没有过这样的经验,所以无法评估难度,只能从所需要关注的内容和可行性方面来探讨。
模型迁移:需要将优化之前的原始模型,部署到Jetson,使用TLT工具来进行迁移和适配;
业务程序迁移:业务逻辑的代码迁移和编译,其中对外设的控制部分需要重新适配;
运维部署环境迁移:需要迁移到Jetson的Cloud Native。
总结
联宝科技的EA-B200在性能上弱于Hi3559A,在运动相机的场景中应用较少。而联宝EA-B310不管是在AI综合算力,还是在视频编码性能上,都要强于Atlas 200/500。虽然Jetson的生态更为成熟,但Atlas与Jetson均有着完善的生态,能带来良好的开发和维护体验。