第4章嵌入式A|软件开发平台 CANN异构计算架构 CANN5.0概述 MindStudio:3集成开发环境
第4章 嵌入式AI软件开发平台 CANN异构计算架构 CANN5.0概述 MindStudio3集成开发环境
CANN异构计算架构
CANN异构计算架构
CANN异构计算架构 异构计算 CANN的引入 软件栈 通常做Al模型分两步,先选用一种框架来搭建AI模型,像常见的Cafe、 Tensorflow、PyTorch、MindSpore等;再选用合适的a硬件(CPU、GPU等) ACL子系统 来训练A模型。但是在A训练框架和硬件之间,其实还有一层不可或缺的“中 GE子系统 间架构”,用来优化AI模型在处理器上的运行性能,这就是A异构计算架构。 FE子系统 CANN (Compute Architecture for Neural Networks)是华为公司针对昇 TBE子系统 腾AI应用场景推出的异构计算架构,通过提供多层次的编程接口,支持用户 快速构建基于昇腾平台的AI应用和业务。 TS子系统 主要包括昇腾硬件的统一编程接口一一AscendCL(Ascend Computing AI CPU Language)、算子开发工具,以及深度协同优化的高性能算子库。 DVPP子系统
CANN异构计算架构 CANN的引入 通常做AI模型分两步,先选用一种框架来搭建AI模型,像常见的Caffe、 Tensorflow、PyTorch、MindSpore等;再选用合适的硬件(CPU、GPU等) 来训练AI模型。但是在AI训练框架和硬件之间,其实还有一层不可或缺的“中 间架构” ,用来优化AI模型在处理器上的运行性能,这就是AI异构计算架构。 CANN (Compute Architecture for Neural Networks)是华为公司针对昇 腾AI应用场景推出的异构计算架构,通过提供多层次的编程接口,支持用户 快速构建基于昇腾平台的AI应用和业务。 主要包括昇腾硬件的统一编程接口——AscendCL(Ascend Computing Language)、算子开发工具,以及深度协同优化的高性能算子库。 异构计算 软件栈 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 CANN的理解: 软件栈 ● 昇腾A芯片的达芬奇架构在硬件设计上采用了计算资源的定制化设计,功能 ACL子系统 执行与硬件高度适配,为卷积神经网络计算性能的提升提供了强大的硬件基 GE子系统 础。 ● 对于一个神经网络的算法,从各种开源框架,到神经网络模型的实现,再到 FE子系统 实际芯片上的运行,中间需要多层次的软件结构来管理网络模型、计算流以 TBE子系统 及数据流。 ●神经网络软件流为从神经网络到异腾A芯片的落地实现过程提供了有力支撑 TS子系统 同时开发工具链为基于异腾A芯片的神经网络应用开发带了诸多便利,而神 AI CPU 经网络软件流和开发工具链构成了异腾AI芯片的基础软件栈CANN,从上而 下支撑起整个芯片的执行流程。 DVPP子系统
CANN异构计算架构 CANN的理解: 昇腾AI芯片的达芬奇架构在硬件设计上采用了计算资源的定制化设计,功能 执行与硬件高度适配,为卷积神经网络计算性能的提升提供了强大的硬件基 础。 对于一个神经网络的算法,从各种开源框架,到神经网络模型的实现,再到 实际芯片上的运行,中间需要多层次的软件结构来管理网络模型、计算流以 及数据流。 神经网络软件流为从神经网络到昇腾AI芯片的落地实现过程提供了有力支撑, 同时开发工具链为基于昇腾AI芯片的神经网络应用开发带了诸多便利,而神 经网络软件流和开发工具链构成了昇腾AI芯片的基础软件栈CANN ,从上而 下支撑起整个芯片的执行流程。 异构计算 软件栈 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 异构计算 软件栈 ACL子系统 区别于同构计算(同类硬件分布式计算,比如多核CPU),异构计 算指将任务高效合理地分配给不同的硬件,例如GPU做浮点运算、NPU GE子系统 做神经网络运算、FPGA做定制化编程计算。通过针对硬件特点进行分工 FE子系统 最大限度地发挥异构计算的优势,从而加速训川练/推理速度。 TBE子系统 华为发布了AI全栈硬件架构,包括底层的系列硬件、芯片,以及异构 TS子系统 计算架构,AI框架,行业应用等。华为昇腾AI全栈的核心是异构计算架 构CANN,发挥承上启下的关键作用。通过提供多层次的编程接口,支持 AI CPU 用户快速构建基于Ascend平台的AI应用和业务。 DVPP子系统
CANN异构计算架构 异构计算 区别于同构计算(同类硬件分布式计算,比如多核CPU),异构计 算指将任务高效合理地分配给不同的硬件,例如GPU做浮点运算、NPU 做神经网络运算、FPGA做定制化编程计算。通过针对硬件特点进行分工, 最大限度地发挥异构计算的优势,从而加速训练/推理速度。 华为发布了AI全栈硬件架构,包括底层的系列硬件、芯片,以及异构 计算架构,AI框架,行业应用等。华为昇腾AI全栈的核心是异构计算架 构CANN,发挥承上启下的关键作用。通过提供多层次的编程接口,支持 用户快速构建基于Ascend平台的AI应用和业务。 异构计算 软件栈 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 CANN软件栈 软件栈 今】 ACL子系统 CANN软件栈可以分为神经网络软件流、工具链以及其它软件模块。 GE子系统 神经网络软件流主要包含了流程编排器(Matrix)、框架管理器 FE子系统 (Framework)、运行管理器(Runtime)、数字视觉预处理模块 (Digital Vision Pre--Processing,DVPP)、张量加速引擎 TBE子系统 (Tensor Boost Engine,TBE)以及任务调度器(Task Scheduler, TS子系统 TS)等功能模块。 ●神经网络软件流主要用来完成神经网络模型的生成、加载和执行等功 AI CPU 能。工具链主要为神经网络实现过程提供了辅助便利。 DVPP子系统
CANN异构计算架构 CANN软件栈 CANN软件栈可以分为神经网络软件流、工具链以及其它软件模块。 神经网络软件流主要包含了流程编排器(Matrix)、框架管理器 (Framework)、运行管理器(Runtime)、数字视觉预处理模块 ( Digital Vision Pre-Processing , DVPP ) 、 张量加速引擎 (Tensor Boost Engine,TBE)以及任务调度器(Task Scheduler, TS)等功能模块。 神经网络软件流主要用来完成神经网络模型的生成、加载和执行等功 能。工具链主要为神经网络实现过程提供了辅助便利。 软件栈 异构计算 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 CANN软件栈 软件栈 AscendCL ACL子系统 图优 图華(G) 和 编译 融合和编译F日 AICPUS(AICPUE) 集合通信紫(HCCL) GE子系统 芯片便 算子编译和草子库 FE子系统 张量加速引案TB日 算子库 运行管理器(runtime) 数字视觉预处理DVPP) TBE子系统 任务调度器(Task Schedule) TS子系统 Driver os AI CPU 计算资源 计算设备 通信链路 DVPP子系统 AlCore AICPU DVPP硬件 PCle HCCS RoCE
CANN异构计算架构 CANN软件栈 软件栈 异构计算 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 计算资源层 软件栈 计算资源层主要实现系统对数据的处理和运算执行。 ACL子系统 ●计算设备主要包括: GE子系统 AI Core:执行NN类算子; FE子系统 AI CPU:执行CPU算子; DVPP:视频/图像编解码、预处理。 TBE子系统 TS子系统 ●通信链路主要包括: PCIe:芯片间或芯片与CPU间高速互联; AI CPU HCCS:实现芯片间缓存一致性功能: DVPP子系统 RoCE:实现芯片内存RDMA功能
CANN异构计算架构 计算资源层 计算资源层主要实现系统对数据的处理和运算执行。 计算设备主要包括: AI Core:执行NN类算子; AI CPU:执行CPU算子; DVPP:视频/图像编解码、预处理。 通信链路主要包括: PCIe:芯片间或芯片与CPU间高速互联; HCCS:实现芯片间缓存一致性功能; RoCE:实现芯片内存RDMA功能。 软件栈 异构计算 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 芯片使能层 软件栈 今 芯片使能层实现对外能力开放,以及基于计算图的业务流的控制和运行。 ● AscendCL昇腾计算语言库是开放编程框架,提供Device/Context./Stream/内 ACL子系统 存等的管理、模型及算子的加载与执行、媒体数据处理、Graph管理等API库, GE子系统 供用户开发深度神经网络应用: ●图优化和编译统一的IR接口对接不同前端,支持TensorFlow/Caffe FE子系统 /MindSpore表达的计算图的解析/优化/编译,提供对后端计算引擎最优化部 TBE子系统 署能力; ●数字视觉预处理实现视频编解码(VENC/WDEC)、JPEG编解码(JPEGD,/E)、PNG TS子系统 解码(PNGD)、VPC(预处理): AI CPU ●执行引擎包括两个部分,分别是运行管理器和任务调度器,Runtime?为神经 网络的任务分配提供资源管理通道,Task Scheduler主要计算Task序列的管 DVPP子系统 理和调度以及执行
CANN异构计算架构 芯片使能层 芯片使能层实现对外能力开放,以及基于计算图的业务流的控制和运行。 AscendCL昇腾计算语言库是开放编程框架,提供Device/Context/Stream/内 存等的管理、模型及算子的加载与执行、媒体数据处理、Graph管理等API库, 供用户开发深度神经网络应用; 图优化和编译统一的 IR 接 口 对接不同前端 , 支 持 TensorFlow/Caffe /MindSpore表达的计算图的解析/优化/编译,提供对后端计算引擎最优化部 署能力; 数字视觉预处理实现视频编解码(VENC/VDEC)、JPEG编解码(JPEGD/E)、PNG 解码(PNGD)、VPC(预处理); 执行引擎包括两个部分,分别是运行管理器和任务调度器,Runtime为神经 网络的任务分配提供资源管理通道,Task Scheduler主要计算Task序列的管 理和调度以及执行。 软件栈 异构计算 ACL子系统 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统
CANN异构计算架构 异构计算 ACL子系统 软件栈 ACL子系统 今 ACL,即Ascend Computing Language,昇腾计算语言库。 GE子系统 ● 提供Device管理、Context管理、Stream管理、内存管理、模型加载 FE子系统 与执行、算子加载与执行、媒体数据处理等C+API库供用户开发深 度神经网络应用,通过加载模型推理实现目标识别、图像分类等功 TBE子系统 能。 TS子系统 ●用户可以通过第三方框架调用ACL接口,以便使用昇腾AI处理器的计 算能力;用户还可以使用ACL封装实现第三方Iib库,以便提供昇腾 AI CPU AI处理器的运行管理、资源管理能力。 DVPP子系统
CANN异构计算架构 ACL子系统 ACL,即Ascend Computing Language,昇腾计算语言库。 提供Device管理、Context管理、Stream管理、内存管理、模型加载 与执行、算子加载与执行、媒体数据处理等C++ API库供用户开发深 度神经网络应用,通过加载模型推理实现目标识别、图像分类等功 能。 用户可以通过第三方框架调用ACL接口,以便使用昇腾AI处理器的计 算能力;用户还可以使用ACL封装实现第三方lib库,以便提供昇腾 AI处理器的运行管理、资源管理能力。 ACL子系统 异构计算 软件栈 GE子系统 FE子系统 TBE子系统 TS子系统 AI CPU DVPP子系统