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