顺的网站建设报价,新网站收录多少关键词,建设网站必备的开发工具,爱最好网站建设昇腾异构计算架构 CANN
本文将介绍昇腾 AI 异构计算架构 CANN#xff08;Compute Architecture for Neural Networks#xff09;#xff0c;这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达芬奇架构和软件层面的全栈支持#xff0c;旨在提供…昇腾异构计算架构 CANN
本文将介绍昇腾 AI 异构计算架构 CANNCompute Architecture for Neural Networks这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达·芬奇架构和软件层面的全栈支持旨在提供强大的硬件基础和管理网络模型、计算流及数据流的软件栈以支撑神经网络在异构处理器上的执行。
通过本文内容的学习读者将能够理解 CANN 如何为深度学习提供全面的硬件和软件支持以及如何通过其多层级架构实现高效的 AI 应用开发和性能优化。
总体架构
本节参考文献《Ascend C 异构并行程序设计》——苏统华杜鹏闫长江2024
昇腾 AI 异构计算架构Compute Architecture for Neural NetworksCANN是专门为高性能神经网络计算需求所设计和优化的一套架构。在硬件层面昇腾 AI 处理器所包含的达·芬奇架构在硬件设计上进行计算资源的定制化设计在功能实现上进行深度适配为神经网络计算性能的提升提供了强大的硬件基础。在软件层面CANN 所包含的软件栈则提供了管理网络模型、计算流以及数据流的功能支撑起神经网络在异构处理器上的执行流程。
如下图所示CANN 作为昇腾 AI 处理器的异构计算架构支持业界多种主流的 AI 框架包括 MindSpore、TensorFlow、PyTorch、Jittor 等。Ascend C 算子开发语言开放全量低阶 API 接口使能开发者完成高性能自定义算子开发开放高阶 API 接口降低开发难度开发者可快速实现复杂自定义算子开发。GE 图引擎Graph Engine包括图优化、图编译、图执行等便于开发者使用优化整网性能。HCCL 集合通信库Huawei Collective Communication Library可供开发者直接调用改善网络拥塞提升网络资源利用率和运维效率。AOL 算子加速库Ascend Operator Library提供基础算子和大模型融合算子 API 接口对外开放供开发者直接调用使能大模型极致性能优化。Runtime 运行时将硬件资源计算、通信、内存管理等的 API 接口对外开放满足开发者对模型开发、系统优化、第三方 AI 框架对接等不同场景诉求。 CANN 提供了功能强大、适配性好、可自定义开发的 AI 异构计算架构自顶向下分为 5 部分。 昇腾计算语言Ascend Computing Language简称 AscendCLAscendCL 接口是昇腾计算开放编程框架是对底层昇腾计算服务接口的封装。它提供设备Device管理、上下文Context管理、流Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、图Graph管理等 API 库供用户开发 AI 应用。
昇腾计算服务层Ascend Computing Service Layer 主要提供昇腾算子库 AOLAscend Operator Library通用神经网络Neural NetworkNN库、线性代数计算库Basic Linear Algebra SubprogramsBLAS等高性能算子加速计算昇腾调优引擎 AOEAscend Optimization Engine通过算子调优 OPAT、子图调优 SGAT、梯度调优 GDAT、模型压缩 AMCT 提升模型端到端运行速度。同时提供 AI 框架适配器 Framework Adaptor 用于兼容 TensorFlow、PyTorch 等主流 AI 框架。
昇腾计算编译层Ascend Computing Compilation Layer昇腾计算编译层通过图编译器Graph Compiler将用户输入中间表达Intermediate RepresentationIR的计算图编译成昇腾硬件可执行模型同时借助张量加速引擎 TBETensor Boost Engine的自动调度机制高效编译算子。
昇腾计算执行层Ascend Computing Execution Layer负责模型和算子的执行提供运行时库Runtime、图执行器Graph Executor、数字视觉预处理Digital Vision Pre-ProcessingDVPP、 AI 预处理Artificial Intelligence Pre-ProcessingAIPP、华为集合通信库Huawei Collective Communication LibraryHCCL等功能单元。
昇腾计算基础层Ascend Computing Base Layer主要为其上各层提供基础服务如共享虚拟内存Shared Virtual MemorySVM、设备虚拟化Virtual MachineVM、主机-设备通信Host Device CommunicationHDC等。
关键功能特性
推理应用开发
CANN 提供了在昇腾平台上开发神经网络应用的昇腾计算语言 AscendCLAscend Computing Language提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等 API实现利用昇腾硬件计算资源、在昇腾 CANN 平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说就是统一的 API 框架实现对所有资源的调用。
模型训练
CANN 针对训练任务提供了完备的支持针对 PyTorch、TensorFlow 等开源框架网络模型CANN 提供了模型迁移工具支持将其快速迁移到昇腾平台。此外CANN 还提供了多种自动化调测工具支持数据异常检测、融合异常检测、整网数据比对等帮助开发者高效问题定位。
算子开发
CANN 提供了超过 1400 个硬件亲和的高性能算子可覆盖主流 AI 框架的算子加速需求同时为满足开发者的算法创新需求CANN 开放了自定义算子开发的能力开发者可根据自身需求选择不同的算子开发方式。
特性与优点 统一 APP 编程语言提供一套标准的 AscendCL 编程接口对应用程序开发者屏蔽底层多种芯片差异提升用户 APP 编程易用性。 统一的网络构图接口提供了标准的昇腾计算 AIR支持多宽广支持用户在昇腾处理器上快速部署神经网络业务。 高性能计算引擎及算子库通过高性能编程引擎/执行引擎/调优引擎和预置高性能算子库支持用户快速部署神经网络业务降低部署成本并最大程度发挥昇腾计算能力。 基础业务驱动、虚拟化、媒体、集合通信等能力。
CANN 各层面能力
CANN 包含许多硬件无关的优化但是到 Low Level 优化层面由于各家厂商芯片特点不同每家芯片都存在一些硬件耦合的 Low Level 优化CANN 也如此通过 CANN对上层保持用户使用界面的兼容和统一尽可能让用户较少感知硬件差异对下则根据不同代际芯片的特点提升能力。 昇腾计算语言
昇腾计算开放了编程框架封装底层昇腾计算服务接口提升编程易用性该开放编程框架名字叫做 AscendCLAscendCL Computing Language。其中包含了三个部分
应用开发接口
该系列接口提供深度学习推理计算、图形图像预处理以及单算子调用及加速能力通过这些能力实现对昇腾硬件计算的调用。该系列接口通常用于开发离线推理应用或供第三方框架调用以及供第三方系统开发 lib 调用。
图开发接口
该系列接口提供了统一的网络构图接口支持多种框架调用支持用户在昇腾 AI 处理器上快速部署神经网络业务。通过该系列接口可以支持基于算子原型进行构图也可以利用 Parsar 进行神经网络解析输出 IR。
算子开发接口
该系列接口有一个单独的名称——Ascend C。Ascend C 是 CANN 在算子开发场景为开发者提供的编程语言原生支持 CC标准规范最大化匹配用户的开发习惯。Ascend C 支持结构化的核函数编程自动流水并行调度以及 CPU/NPU 孪生调试等特性。 昇腾计算服务层
昇腾计算服务层是基于底层框架封装出来的一些能力集合包含一套完善的昇腾算子库Ascend Operator LibraryAOL以及调优工具的集合——昇腾调优引擎Ascend Optimize EngineAOE。算子库中包含了 NNNeural Network算子库BLASBasic Linear Algebra Subprograms算子库DVPPDigital Vision Pre-Processing算子库AIPPAI Pre-Processing算子库HCCLHuawei Collective Communication Library算子库以及融合算子库等支持单个算子直接调用也支持将算子集成到框架中进行调用。
昇腾调优引擎用于在推理、训练等场景对模型、算子、子图等进行调优充分利用硬件资源不断提升网络的性能。支持整图调优调度调优以及分布式场景下通信梯度的调优。调优是门槛相对较高的一项开发活动以算子调优为例需要开发者了解诸如片内高速缓存大小、数据搬运逻辑、调度策略等人工调优是一项耗时耗力的工作昇腾调优引擎通过将一些常见调优手段、分析方法固化到工具中使开发者只需通过调优工具对模型进行分析生成知识库再运行模型时性能将有一定程度的提升。 昇腾计算编译层
昇腾计算编译层包含对计算图的编译和对算子的编译。向上可以与各类 AI 框架对接为其提供构图接口并通过提供各类解析器解析框架的计算图比如 TensorFlow Parser。解析好的 IR 在图编译阶段做一些计算无关的优化如图准备形状推导常量折叠死边消除等等图优化图融合、图切分、流水执行、缓存复用、算子引擎选择、cost model 建立等、图编译整图内存复用、连续内存分配、Task 生成等。算子编译阶段负责 UBUnified Buffer融合CCE-C 代码生成等。 昇腾计算执行层
包括 DVPP、Graph Executor、HCCL、AIPP 以及 Runtime 等组件。其中 Runtime 包含了对执行流管理、上下文管理、事件管理、任务管理以及其他资源申请及管理等能力。Graph Executor 中包含对计算图的加载和执行能力。HCCL 则包含对子通信域的管理Rank 管理、梯度切分、集合通信等能力。DVPP 和 AIPP 则在两种不同维度上对数据做预处理操作。 昇腾计算基础层
昇腾计算基础层包含于驱动和 OS 相关的基础能力包括资源管理Resource Management ServiceRMS、通信管理Communication Management ServiceCMS、设备管理Device Management ServiceDMS、驱动DriverDRV、公共服务Utility等组件。
其中 RMS 负责管理与调度昇腾设备的计算、Device 内存等关键资源CMS 负责提供片内、片间高效通信DMS 负责对昇腾设备进行配置、切分、升级、故障检测等管理DRV 负责使能硬件UTILITY 负责提供基础库和系统维测能力。
昇腾计算基础层提供的关键竞争力包括 高性能微秒级确定性调度数据零拷贝登记书打造高性能数据面 高可信五道安全防线构建昇腾解决方案可信底座 归一化一套架构-接口-代码支持多芯、多板、多场景 弹性端/边/云灵活适应虚机/容器/裸金属快速部署算力细粒度按需切分。
如果您想了解更多AI知识与AI专业人士交流请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统原理与架构》一书这里汇聚了海量的AI学习资源和实践课程为您的AI技术成长提供强劲动力。不仅如此您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事发现AI世界的无限奥秘~