昇腾
昇腾为基于华为昇腾处理器和软件的行业应用及服务提供全栈AI计算基础设施。
昇腾社区https://www.hiascend.com/zh/developer/courses/detail/155909638631714816
开源代码gitee仓库https://gitee.com/ascend
昇腾软硬件技术栈
昇腾Ascend C编程语言
Ascend C原生支持C/C++编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发效率,帮助AI
参考文章
手把手教你在昇腾平台上搭建PyTorch训练环境 - 哔哩哔哩 (bilibili.com)https://www.bilibili.com/read/cv23917714/
华为昇腾具有完整的生态
Ascend 910 性能相当于Nvidia A100
昇腾的核心问题:
1,昇腾只能用于华为自身生态中的大模型业务,比如昇腾不能做GPT-3,因为910不支持32位浮点,而目前大模型训练几乎都要使用32位的浮点,所以昇腾芯片只能利用华为开发的框架(如MindSpore),再加上优化好的大模型,比如盘古CV。
2,生态依然需要完善。英伟达最强大的护城河在于它的生态系统CUDA。目前CANN还有差距。
3,先进制程的卡脖子问题得到了一定解决,但依然需要担忧产能问题。
CANN
CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。对开发人员来说就是使用CANN提供的一些库、C++/C语言的扩展和编译器、流行的AI框架迁移插件(Frame Adapter)。下面黑色部分为CANN所包含的内容。
CANN商业版与社区版区别
社区版可以直接下载,但不能用于商业用途,如果用户需要用于商业用途,请下载商用版软件,但是需要申请,【普通注册用户】网站角色的用户不能下载和使用商业版。
昇腾与NVIDIA的类比
- CANN +firmware/driver-- CUDA toolkit+CUDA drvier:
- Mindspore -- pytorch/tensorflow
MindSpore框架
MindSpore是华为推出的开源AI计算框架。支持深度学习算法的开发、训练和推理。MindSpore框架旨在提供一种简单易用的方式来构建和部署AI模型,同时充分发挥昇腾AI加速器的性能优势。
Ascend Extension for PyTorch插件
名为torch_npu的Ascend Extension for PyTorch插件,使昇腾NPU可以适配PyTorch框架,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力。
模型迁移(pytorch适配到昇腾-pytorch adapter)
PyTorch是业界流行的深度学习框架,用于开发深度学习训练脚本,默认运行在CPU/GPU上。为了使这些脚本能够利用昇腾AI处理器的强大算力执行训练,需要对PyTorch的训练脚本进行迁移。
自动迁移
- 在训练脚本中导入脚本转换库,
- 然后拉起脚本执行训练。训练脚本在运行的同时,会自动将脚本中的CUDA接口调用替换为昇腾AI处理器支持的NPU接口。整体过程为边训练边转换。
Professional Developer Community
利用pytorch的dispatch机制(算子注册与分发)
如何将PyTorch模型迁移到昇腾平台
模型转换与模型脚本迁移
模型转换与模型脚本迁移的概念不同。
- 模型转换和调优:是将Caffe/TensorFlow等框架训练好的模型,通过ATC或者AOE工具将其转换为昇腾AI处理器支持的离线模型。
- 模型脚本迁移:是把采用tensorflow/pytorch AI framework实现的AI模型脚本,通过tensorflow/pytorch adapter,迁移为运行在CANN软件之上的模型脚本。
执行转换-模型转换和调优-用户指南-...-文档首页-昇腾社区 (hiascend.com)
Ascned compute language
CANN对外(上层应用)提供的API。应用程序调用ACL层提供的API就能够通过CANN来使用昇腾的各种能力。
通过AscendCL(Ascend Computing Language)对外提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,帮助开发者实现在昇腾CANN平台上进行深度学习推理计算、图像预处理、单算子加速计算。
原文链接:https://blog.csdn.net/m0_37605642/article/details/127174204
Mindx DL-昇腾深度学习组件
产品简介-产品描述-5.0.0-MindX DL-文档首页-昇腾社区 (hiascend.com)
了解MindX DL的产品定位与特点,有助于您快速构建自己的深度学习平台。
随着人工智能产业的快速发展,业界越来越多的企业发布了深度学习平台,提供数据集管理、模型训练、模型管理、模型部署推理等功能满足模型开发训练推理的全流程业务,能够加速企业和开发者交付人工智能业务所需的模型。
MindX DL(昇腾深度学习组件)是支持基于昇腾AI处理器(下文出现的NPU表示昇腾AI处理器)的数据中心训练和推理硬件的深度学习组件参考设计,提供昇腾AI处理器调度、集群性能测试等基础功能,为上层模型训练、模型评估、模型部署、模型推理等应用提供底层软件支持。深度学习平台开发厂商可以减少底层资源调度相关软件开发工作量,快速使能合作伙伴基于MindX DL开发深度学习平台。
华为资源
什么是 MindStudio
MindStudio是华为面向昇腾AI开发者提供的一站式开发环境和工具集。MindStudio致力于提供端到端的昇腾AI应用开发解决方案。支持模型开发、算子开发以及应用开发三个主流程中的开发任务。
使开发者能够在一个工具上高效完成算子开发、训练开发和推理开发
开发环境部署方式:
- mindstudio可以部署在windows或者linux系统上。如果部署在linux上,需要使用X server的ssh客户端(远程桌面)来使用mindstudio
- CANN只能部署在linux系统上。
- 支持交叉编译。如在x86系统上编译,在arm系统山运行。
- 支持多种编程语言和框架,如Python、C++、TensorFlow、PyTorch等,开发者可以根据自己的需求选择最适合自己的编程方式。
- 支持Linux和Windows操作系统
成长地图-6.0.0-MindStudio-文档首页-昇腾社区 (hiascend.com)
昇腾镜像仓库
昇腾开放Docker镜像仓库,提供昇腾软件Docker镜像,支持用户快速部署昇腾基础软件和应用软件
ascend-tensorflow镜像(包含TFPULGIN插件)
Ascend-tensorflow基础镜像,基于centos7,debian9.9,ubuntu18.04制作,内部集成训练通用的第三方库(系统包、pip)、Tensorflow框架,TOOLKIT引擎和TFPULGIN插件。用户根据实际需要,基于该基础镜像安装训练业务程序特定依赖,即可运行相应训练业务程序。
在昇腾处理其上如何运行基于tensorflow,pytorch AI框架的训练业务应用程序
需要安装TFPlugin,PTPlugin
什么是深度学习平台
深度学习平台,提供数据集管理、模型训练、模型管理、模型部署推理等功能满足模型开发训练推理的全流程业务,能够加速企业和开发者交付人工智能业务所需的模型。
开发者低成本完成算子开发和模型调优部署。