昇腾基于atals相关硬件产品,在底层创建CANN异构计算架构,支持Mindspore、tensorflow、pytorch、onnx、PP飞桨、计图等第三方框架,在应用使能层提供modelarts、HiAi service等平台来供开发者进行AI操作,来应用于智慧城市、制造、能源、医疗等行业。
CANN异构计算架构
在底层适配昇腾AI处理器,在上层对接昇腾AI应用和深度学习框架。自下而上它分为昇腾计算基础层、昇腾计算执行层、昇腾计算编译层、昇腾计算服务层,还提出了昇腾计算语言AscendCL,包括算子开发、图开发和应用开发。
在昇腾计算基础层(Ascend Computing Base Layer),主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC)等。
昇腾计算执行层(Ascend Computing Execution Layer):负责模型和算子的执行,提供运行时库(Runtime)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。
昇腾计算编译层(Ascend Computing Compilation Layer):昇腾计算编译层通过图编译器(Graph Compiler)将用户输入中间表达(Intermediate Representation,IR)的计算图编译成昇腾硬件可执行模型;同时借助张量加速引擎TBE(Tensor Boost Engine)的自动调度机制,高效编译算子。
昇腾计算服务层(Ascend Computing Service Layer): 主要提供昇腾算子库AOL(Ascend Operator Library),通过神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等高性能算子加速计算;昇腾调优引擎AOE(Ascend Optimization Engine),通过算子调优OPAT、子图调优SGAT、梯度调优GDAT、模型压缩AMCT提升模型端到端运行速度。同时提供AI框架适配器Framework Adaptor用于兼容TensorFlow、PyTorch等主流AI框架。
昇腾计算语言(Ascend Computing Language,简称AscendCL):AscendCL接口是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。它提供设备(Device)管理、上下文(Context)管理、流(Stream)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、图(Graph)管理等API库,供用户开发人工智能应用。
推理应用开发
CANN提供了在昇腾平台上开发神经网络应用的昇腾计算语言AscendCL(Ascend Computing Language),提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,实现利用昇腾硬件计算资源、在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,就是统一的API框架,实现对所有资源的调用。
模型训练
CANN针对训练任务提供了完备的支持,针对PyTorch、TensorFlow等开源框架网络模型,CANN提供了模型迁移工具,支持将其快速迁移到昇腾平台。此外,CANN还提供了多种自动化调测工具,支持数据异常检测、融合异常检测、整网数据比对等,帮助开发者高效问题定位。
算子开发领域
CANN提供了超过1400个硬件亲和的高性能算子,可覆盖主流AI框架的算子加速需求,同时,为满足开发者的算法创新需求,CANN开放了自定义算子开发的能力,开发者可根据自身需求选择不同的算子开发方式,算子开发方式分为TBE和AscendC算子。