【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——第一章学习笔记
昇腾AI基础知识
华为AI全栈解决方案
华为AI全栈解决方案是一整套以人工智能为核心的技术架构,覆盖数据采集、算力加速、端侧推理、云端训练、模型应用等方面,旨在为企业客户快速构建智能化业务,提升业务效率和用户体验。具体包括华为云最新一代AI计算平台Atlas,全场景AI加速器Ascend,丰富的AI应用开发工具包和开发套件,以及AI相关的各种服务和解决方案。
华为AI全栈解决方案分为四个层面,应用使能层、AI框架层、芯片使能层以及芯片层,每个层面提供了不同的功能。
- 应用使能层: 提供了完善的AI应用开发环境,如提供了ModelArts训练资源平台,方便企业和开发者快速构建AI应用,包括图像识别、自然语言处理、语音识别等。该层的功能是使应用开发更加简单易用,提高生产效率。
- AI框架层: 这一层提供了丰富的AI算法库和深度学习框架,包括MindSpore、TensorFlow、Caffe、PyTorch等,可以帮助科研人员和开发人员快速实现AI应用。该层的功能是提供AI算法和框架支持,促进AI技术的发展。
- 芯片使能层: 这一层提供针对AI任务优化的芯片架构和指令集扩展,例如华为自主研发的昇腾芯片,可以为AI应用提供更高的性能和效率。该层的功能是提供硬件支持,为AI应用提供更高的性能和效率。
- 芯片层: 这一层提供硬件实现,包括芯片设计、制造和测试等,旨在为AI应用提供更加高效的计算能力和更优秀的性能表现。该层的功能是实现硬件支持,为其他层提供更好的性能和效率。
昇腾AI计算平台CANN逻辑架构
CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。CANN架构自上而下可以分为以下五层:
- 昇腾计算语言接口,是昇腾计算开放编程框架,对开发者屏蔽底层多种处理器差异,提供算子开发接口TBE、标准图开发接口AIR、应用开发接口,支持用户快速构建基于Ascend平台的AI应用和业务。
- 昇腾计算服务层,主要提供昇腾算子库AOL,通过神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等高性能算子加速计算;昇腾调优引擎AOE,通过算子调优OPAT、子图调优SGAT、梯度调优GDAT、模型压缩AMCT提升模型端到端运行速度。同时提供AI框架适配器Framework Adaptor用于兼容Tensorflow、Pytorch等主流AI框架。
- 昇腾计算编译层,可以通过图编译器(Graph Compiler)将用户输入中间表达(Intermediate Representation,IR)的计算图编译成昇腾硬件可执行模型;同时借助张量加速引擎TBE(Tensor Boost Engine)的自动调度机制,高效编译算子。
- 昇腾计算执行层,负责模型和算子的执行,提供运行时库(Runtime)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。
- 昇腾计算基础层,主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC)等。
昇腾计算语言接口AscendCL
AscendCL(Ascend Computing Language,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装,它提供运行时资源(例如设备、内存等)管理、模型加载与执行、算子加载与执行、图片数据编解码/裁剪/缩放处理等API库,实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,就是统一的API框架,实现对所有资源的调用
AscendCL 的优势如下:
1.高度抽象:算子编译、加载、执行的 API 归一,相比每个算子一个 API , AscendCL 大幅减少 AP 数量,降低复杂度。
2.向后兼容: AscendCL 具备向后兼容,确保软件升级后,基于旧版本编译的程序依然可以在新版本上运行。
3.零感知芯片:一套 AscendCL 接口可以实现应用代码统一,多款昇腾处理器无差异。
AscendCL 的主要应用场景如下:
1.开发应用:用户可以直接调用 AscendCL 提供的接口开发图片分类应用、目标识别应用等。
2.供第三方框架调用:用户可以通过第三方框架调用 AscendCL 接口,以便使用昇腾 AI 处理器的计算能力。
3.供第三方开发 lib 库:用户还可以使用 AscendCL 封装实现第三方 lib 库,以便提供昇腾 AI 处理器的运行管理、资源管理等能力。
- 点赞
- 收藏
- 关注作者
评论(0)