在当今科技飞速发展的时代,汽车行业正迎来一场智能化的变革。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,为这场变革注入了强大的动力。
昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks)是华为针对 AI 场景推出的异构计算架构 ,向上支持多种 AI 框架,包括 MindSpore、PyTorch、TensorFlow 等,向下服务 AI 处理器与编程,发挥承上启下的关键作用,是提升昇腾 AI 处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。
辅助驾驶作为汽车智能化的重要组成部分,旨在借助汽车对周围环境的自动感知和分析,让驾驶员预先察觉可能发生的危险,有效增加汽车驾驶的舒适性和安全性。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,具备强大的计算能力和高效的编程接口,为实现这一目标提供了有力的支持。
在接下来的内容中,我们将深入阐述基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用的原理和优势,带您领略这一创新技术的魅力。
二、CANN 是什么
1. 异构计算与人工智能的关系
在当今人工智能高速发展的时代,异构计算在其中扮演着至关重要的角色。
近年来,人工智能广泛融入日常生活,如智能助手、人脸识别摄像头、自动驾驶汽车等。要让机器拥有人类技能,就需搭建类似人类大脑的 "神经网络",即 AI 算法或模型,并通过大量数据训练。然而,这个过程涉及高度复杂的算法和巨大的计算量,以 GPT-3 为例,参数量达 1750 亿,样本大小 45TB,单次训练时间以月为单位,如何提高计算效率成为人工智能的核心问题。
在人工智能计算中,多涉及矩阵或向量的乘法和加法,CPU 这类通用处理器处理此类计算需求效率较低。现实应用中,主要利用擅长大规模并行计算任务的 AI 加速器完成,如 NPU(昇腾 AI 处理器)等专用处理器。由于计算的多样性,在这些加速器内部存在非常多不同架构的计算单元,异构计算就是在同一计算系统集成不同类型或架构的处理单元,以更有效地执行不同类型的任务。为充分利用这些异构算力,就需要构建一套统一的编译优化和编程接口体系,实现底层多样算力与上层框架 / 算法的解耦、互通,发挥不同处理器的优势,通过协同工作提高整个系统的性能、能效和灵活性。
2. CANN 的定义和作用
CANN(Compute Architecture for Neural Networks)是华为针对 AI 场景推出的异构计算架构,对上支持 PyTorch、TensorFlow 以及昇思 MindSpore 等业界主流 AI 框架,对下使能昇腾 AI 处理器,发挥承上启下的关键作用,是提升昇腾 AI 处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。
3. CANN 的技术优势
1.极致性能:
CANN 从 2018 年的第一个版本发展至今,经过多个版本的迭代,积累了众多技术优势。
为让 AI 任务在异构硬件上加速计算,CANN 对整个计算图进行编译优化。它把计算图做加工和精简,大图变成若干子图,并根据各异构硬件上擅长处理的计算任务类型,将各计算子图下发到 CPU、NPU、甚至是 NPU 内部更小的异构单元上执行。
同时,CANN 通过类似工厂流水线的方式让计算任务自动并行起来,提高整个系统的性能。
除了针对计算图的优化,CANN 更是将计算图中的节点(即 AI 算子)适配昇腾硬件进行了深度优化,并预置到内部的加速库中。其中不仅有包含常用深度学习算法计算类型的 NN(NeuralNetwork)算子库、能够提供高性能媒体数据处理能力的 DVPP(Digital Vision Pre-Processing)算子库、分布式训练中提供卡间高效数据传输的 HCCL(Huawei Collective Communication Library)算子库,更有覆盖 Transformer 网络大模型结构泛化的高性能融合算子库。
2.极简易用:
在编程易用性方面,CANN 能够端到端使能从算子到模型算法的开发及部署,帮助开发者快速构建基于昇腾平台的 AI 应用及业务。
然后,将处理后的图像输入到已经训练好的模型中进行推理。在这个过程中,AscendCL 负责模型的加载与执行,充分发挥昇腾 AI 处理器的强大算力。
最后,对模型的输出结果进行后处理,包括非极大值抑制等操作,以得到准确的车辆及车道线检测结果。
3. 算力平台支持
昇腾 AI 基础软硬件平台提供强大算力,CANN 进行软硬件协同优化,释放硬件算力,加速模型训练。
强大算力基础:昇腾 AI 基础软硬件平台依托昇腾 AI 处理器强大的算力,为辅助驾驶 AI 应用提供了坚实的计算基础。无论是处理大规模的交通视频数据,还是进行复杂的模型训练,都能轻松应对。
CANN 协同优化:CANN 作为异构计算架构,通过软硬件协同优化,充分释放硬件算力。例如,在全新一代 CANN 5.0 版本中,通过图级和算子级的编译优化、自动调优等软硬件深度协同优化,全面释放硬件澎湃算力,达到 AI 模型训练性能的大幅提升。针对包括分类、检测、NLP、语义分割在内的常用模型训练场景,均可实现性能翻番,让整个训练过程快到 "飞" 起。
算法框架转换:AI 算法模型可以基于不同 AI 框架定义,而 CANN 能够轻松将华为开源 AI 框架昇思 MindSpore,以及 TensorFlow、PyTorch、Caffe 等其他常用 AI 框架转换成标准化的 Ascend IR (Intermediate Representation) 表达的图格式,屏蔽 AI 框架差异,让开发者快速搞定算法迁移,即刻体验昇腾 AI 处理器的澎湃算力。
AscendCL 接口在辅助驾驶 AI 应用中发挥了重要作用,使其具备快速编程的优势。AscendCL 是一套用于开发深度神经网络推理应用的 C 语言 API 库,兼具运行时资源管理、模型加载与执行、图像预处理等能力。开发者可以借助 AscendCL 轻松实现图片分类、目标检测等各类 AI 应用。例如在通用目标检测与识别一站式方案中,基于 AscendCL 接口对数据预处理、模型推理、模型后处理等 AI 核心计算逻辑进行模块化组装,实现了车辆检测和车身颜色识别基础功能,同时支持多格式输入和输出、轻松替换和串接模型等特性,为开发者提供了良好的编程选择。
4. 产业应用
西安交大团队和新生代开发者利用 CANN 解决高级辅助驾驶的关键难题,推动自动驾驶产业转型升级。此外,众多汽车企业和科技企业也竞相加入辅助驾驶这条行业赛道,力求不断突破。基于昇腾 AI 异构计算架构 CANN 的辅助驾驶 AI 应用,不仅可以实时检测路面车辆,还能计算出车距,辅助驾驶员进行决策。如华为开发的一套基于 CANN 的简易版辅助驾驶 AI 应用,具备车辆检测、车距计算等基本功能,为辅助驾驶入门级项目提供了很好的范例。同时,CANN 还为机器人产业的发展提供了强大的技术支持,昇腾 AI 全栈技术和产品构筑了人工智能的算力基座,赋能上层应用,为辅助驾驶等领域的发展带来了更多可能性。
五、部署实操
以下是基于 CANN 的辅助驾驶 AI 应用的代码示例,包括环境准备、模型下载、样例运行和结果查看等步骤。
一、环境准备
安装昇腾 AI 异构计算架构 CANN,确保版本不低于要求的版本,一般建议安装最新版本以获得更好的性能和功能支持。安装过程可以参考华为官方文档,根据不同的操作系统和硬件环境进行相应的配置。