随着世界向智能化、数字化转型,AI+云将成为构建未来智联世界的核心,在AIoT领域出现了更多应用场景的落地。在应用开发方面,开发者在对跨场景一致开发和调试上,往往需要经过多次应用开发和部署,才能确保应用在端、边、云上的全场景适配,进一步增加了AI开发门槛。同时,这些应用也带来了低延时和巨量数据的计算要求,这对芯片性能和算力部署提出了新的挑战。
为了帮助开发者降低开发难度和运营成本,同时承载端、边、云全场景AI计算需求,华为发布了全栈全场景AI解决方案。12月28日「AtlasTechNow|昇腾学院——华为昇腾AI技术沙龙」苏州站,邀请了多位华为AI技术专家,通过基于昇腾AI处理器的Atlas人工智能计算平台、MindStudio一站式集成开发环境与MindSpore全场景AI计算框架的实践案例,助力开发者从容应对全场景AI开发带来的挑战。
如何基于Atlas进行推理业务开发?
在华为提出的全栈全场景AI解决方案中,全栈指的是技术功能视角,包含了昇腾AI处理器、CANN芯片使能、MindSporeAI框架、应用使能四个层次。昇腾AI处理器拥有Max,Mini,Lite,Tiny和Nano等五个系列,通过在不同场景下的合理应用,来提供最优的性价比服务。
Atlas人工智能计算平台,基于昇腾AI处理器,通过模块、板卡、小站、服务器、集群等丰富的产品形态,打造面向端、边、云的全场景AI基础设施方案。目前这些产品,已广泛应用于平安城市、智慧交通、智慧医疗、AI训练和推理等领域。
以Atlas300业务开发为例,分为开发前准备、业务迁移、集成调优、测试验收4个阶段。
开发前准备:对OS类型及版本是否兼容,框架、模型、算子的支持度,视频/图像编解码功能,进行需求评估。然后进行环境搭建,安装Atlas300固件和驱动和MindStudio集成开发环境。
业务迁移:基于Matrix框架将待处理数据从Host侧发送到Device(昇腾310芯片)在Device完成所有处理,通过DVPP子系统实现crop/resize。
集成调优:对系统总体性能调优,包括模型选型、算子性能优化,软件流程调优等。
测试验收:最后进行功能测试、可靠性测试、性能测试,确定不同硬件配置下的性能规格。
Matrix是一个通用业务流程执行引擎,主要包含Agent(运行在Host侧)和Manger(运行在Device侧)两个部分。Engine作为流程的基本功能单元,允许用户自定义,实现数据输入、图片视频分类处理、结果输出等,即engine的处理程序是由开发者实现的。对于服务器+Atlas300来说,Host侧为服务器侧CPU的操作系统,Device侧为Atlas300侧的操作系统。
DVPP子系统,数字视觉预处理(DigitalVisionPre-Process),提供对特定格式的视频和图像进行解码、缩放等预处理操作,同时具有对处理后的视频、图像进行编码再输出的能力。
应用MindStudio,降低AI开发门槛
MindStudio是面向昇腾AI处理器的AI全栈开发工具链,提供面向AI算子开发、模型开发、应用开发的全栈全场景支持。可以让用户的算子、模型和应用最大限度的发挥出芯片的计算能力,通过场景化的工具体验,降低算子、模型、AI应用的开发门槛。
算子开发:支持TBE自定义算子的开发,集成开发环境IDE的代码编辑器,支持语法的智能纠错和代码自动补全。并支持算子的仿真调试,如果开发者有开发板的硬件设备,可以直接通过MindStudio工具进行配置,上板运行。
模型开发:支持当前业界主流框架Tensorflow,caffe等,通过转换工具将模型转换成昇腾AI处理器支持的格式,发挥出芯片的加速能力。通过配置输入输出节点,图像预处理的参数,可以生成用户所需要的模型。模型的整网运行profiling功能,可以帮助用户快速定位出模型的性能瓶颈并定位优化。
IDE提供的应用开发:为用户提供了多个典型AI应用的模板,用户基于模块做一些定制化的配置,就可以构建出属于自己的AI应用。
其中模型转换是当前很多开发者最常用的功能之一。通过转换工具,可以把开源的tensorflow、caffe模型转换成昇腾AI处理器支持的格式om格式。转换过程中,用户可以配置模型中的输入和输入节点,量化参数,图像预处理的参数,生成满足用户输入要求的更高效om模型。
算子比对工具可以对已经生成的模型或基准的模型(如caffe模型)进行算子的比对,比对的方式可以选择不同的算法,如LowerBound等。通过算子比对的结果,可以发现模型中各个算子计算结果的偏差,通过对偏差的大小设置,开发者可以快速定位出偏差较大的算子并进行优化。
在模型整网调优中,对应用中的各个引擎,如数据预处理、模型推理等进行profiling,发现整个应用中的引擎性能瓶颈再进行优化。整网运行过程中除了获取到软件栈的Timeline数据,还能获取AI芯片设备上的硬件数据。
解读MindSpore三大技术创新点
MindSpore是华为推出的统一训练和推理框架,可以在全场景保持一致的开发体验。目前市面上的计算框架存在着开发门槛高、运行成本高、部署难度大等亟待解决的问题。对于这种问题,MindSpore的工程师进行了三项技术创新:新编程范式,执行模式及协作方式。
新编程范式:编程范式的决定性因素之一,就是AI框架采用的自动微分技术。其中,MindSpore采用源码转换的机制生成抽象语法树,基于IR编译优化,在易用性和性能上都具有很强的先进性。
执行模式:基于AI运行态的挑战,提出on-device的执行模式。
协作方式:端、边、云三类应用场景具有不同需求与目标,通过统一的框架来实现按需协同。
基于开发态友好、运行态高效、部署态灵活的三个设计理念。MindSpore核心架构分为四层:端-边-云按需协作分布式架构(部署、调度、通讯等)在同一层,再往下是执行高效层。另外是并行的Pipeline执行层和深度图的优化、算子的融合,再上层有MindSporeIR计算图表达。支持了自动微分、自动并行、自动调优的特性,为全场景统一API提供支撑:开发算法即代码、运行高效、部署态灵活形成一体化。
新编程范式,采用源码转换的机制生成抽象语法树,首先在接口层支持原生的python编程和控制流的表达,增强可编程性。在中间编译层复用编译器优化能力进行代码优化,实现更高性能。在算子层利用高效能优化器、多面体优化器以及软硬协同优化,就可以自动化生成高性能算子。
新执行模式上,MindSpore使用了四项关键技术。第一项是通过深度图优化技术,最大化“数据-计算-通信”的并行度。第二项是通过梯度数据驱动的自适应图切分优化,实现去中心化的自主AllReduce。第三项是自动整图切分,按算子输入输出数据维度切分整图,融合数据并行与模型并行。第四项是集群拓扑感知调度,感知集群拓扑,自动调度子图执行,实现通信开销最小。
昇腾AI计算解决方案及应用
据某机构的预测,中国视觉计算行业2020年市场规模超过700亿。届时,安防影像、广告营销、泛金融身份认证、互联网娱乐等领域将会产生大规模AI批量计算需求。华为AI技术专家,也向开发者们展示了,昇腾AI计算在视觉计算行业的应用。目前,昇腾AI计算解决方案技术栈分为AscendServing服务框架、AscendGraph开发框架、Ascend算子开发三个层次。通过解决方案的整合,可以让开发者充分利用华为云昇腾算力的高性能,高弹性和端边云全网融合能力。
AscendServing服务框架:昇腾服务组件标准化,支持对接OBS,SFS-Turbo,支持容器化部署,边缘部署。
AscendGraph开发框架:成熟的昇腾组件、业务流程社区和市场,让开发者可以基于昇腾算力快速构建应用,加速业务模型部署,提供行业内最佳实践。
Ascend算子开发:支持客户自行开发调优,全栈自研,全流程开放。
昇腾AI计算解决方案在视觉相关计算行业的应用
点个在看少个bug