CANN 学习——基于香橙派 KunpengPro(1)

异构计算架构CANN(Compute Architecture for Neural Networks)是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程。

1CANN 总体架构

CANN 软件架构:

CANN 向上对接各种深度学习框架,向下对接driver 驱动和 AI 处理器。

CANN 主要包含六部分:

  • GE图引擎( Graph Engine),是计算图编译和运行的控制中心 ,提供图优化、图编译管理以及图执行控制 等功能。GE通过统一的图开发接口提供多种AI框架的支持,不同AI框架的计算图可以实现到Ascend图的转换

  • Ascend C算子开发语言,是CANN针对算子开发场景推出的编程语言原生支持C和C++标准规范 ,最大化匹配用户开发习惯;通过多层接口抽象、自动并行计算、孪生调试等关键技术,极大提高算子开发效率,助力AI开发者低成本完成算子开发和模型调优部署。

  • AOL算子加速库(Ascend Operator Library),提供了丰富的深度优化、硬件亲和的高性能算子,包括神经网络(Neural Network,NN)库、**线性代数计算库(Basic Linear Algebra Subprograms,BLAS)**等,为神经网络在昇腾硬件上加速计算奠定了基础。

  • HCCL集合通信库(Huawei Collective Communication Library),是基于昇腾硬件的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行模型并行 集合通信方案。HCCL支持AllReduce、Broadcast、Allgather、ReduceScatter、AlltoAll 等通信原语,Ring、Mesh、HD等通信算法,在HCCS、RoCE和PCIe高速链路实现集合通信。

  • BiSheng Compiler毕昇编译器,提供Host-Device异构编程编译 能力,利用微架构精准编译优化释放昇腾AI处理器性能,提供完备二进制调试信息与二进制工具链,支撑AI开发者自主调试调优。

  • Runtime运行时,提供了高效的硬件资源管理媒体数据预处理单算子加载执行模型推理等开发接口,供开发者轻松构建高性能人工智能应用。

统一的API框架,实现对所有资源的调用。

CANN针对训练任务提供了完备的支持,针对PyTorchTensorFlow 等开源框架网络模型,CANN提供了模型迁移工具 ,支持将其快速迁移到昇腾平台。此外,CANN还提供了多种自动化调测工具,支持数据异常检测、融合异常检测、整网数据比对等,帮助开发者高效问题定位。

2 CANN 软件安装

安装驱动固件和CANN开发套件包Toolkit。

这里基于 香橙派 KunpengPro(310B4),在 ubuntu 物理机上安装,用来尝试 训练&推理&开发调试。安装方案如下:

由于 昇腾NPU驱动 和 NPU 固件系统中已经有了,并且香橙派也有提供喜爱能够赢得安装包,这里便不再赘述。这里主要安装Toolkit(CANN开发套件包)和Kernels(CANN二进制算子包)。

CANN开发套件包,在训练&推理&开发调试场景下安装,主要用于训练和推理业务、模型转换、算子/应用/模型的开发和编译;CANN二进制算子包,提供了静态库,并能够节省算子编译时间,在大模型推理、训练场景,使用静态库编译应用程序,和运行包含动态shape网络或单算子API(例如aclnn类API)相关业务。

2.1 下载安装包

在升腾社区下载 310b 对应的 kernels 和 Toolkit 安装包:

https://www.hiascend.com/zh/developer/download/community/result?module=cann

Kernels:

Toolkit:

2.2 安装
  • 配置最大线程数

训练场景下,OS的最大线程数可能不满足训练要求,需执行以下命令修改最大线程数为无限制:

bash 复制代码
# 配置环境变量,修改线程数为无限制,编辑"/etc/profile"文件,在文件的最后添加如下内容后保存退出:
ulimit -u unlimited

执行如下命令使环境变量生效:

bash 复制代码
source /etc/profile
  • 安装Toolkit开发套件包

增加对软件包的可执行权限,校验软件包安装文件的一致性和完整性:

bash 复制代码
chmod +x Ascend-cann-toolkit_8.0.0.alpha002_linux-aarch64.run
./Ascend-cann-toolkit_8.0.0.alpha002_linux-aarch64.run --check

出现如下回显信息,表示软件包校验成功:

bash 复制代码
Verifying archive integrity...  100%   SHA256 checksums are OK. All good.

安装软件包:

bash 复制代码
./Ascend-cann-toolkit_8.0.0.alpha002_linux-aarch64.run --install

安装完成后,若显示如下信息,则说明软件安装成功:

bash 复制代码
xxx install success

配置环境变量,根据set_env.sh的实际安装路径进行替换:

bash 复制代码
source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh

也可以将 source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh 添加到~/.bashrc里面。

安装后检查。执行如下命令查询CANN版本信息,查询结果与安装软件包的版本一致时,则验证安装成功:

bash 复制代码
cd /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux
cat ascend_toolkit_install.info
  • 安装Kernels算子包

Kernels算子包安装之前,需已安装配套版本的Toolkit并配置环境变量,请使用同一用户安装。

增加对软件包的可执行权限,校验软件包安装文件的一致性和完整性:

bash 复制代码
chmod +x Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run
./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run --check

出现如下回显信息,表示软件包校验成功:

bash 复制代码
Verifying archive integrity...  100%   SHA256 checksums are OK. All good.

安装除静态库之外的其他文件,请执行如下命令:

bash 复制代码
./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run --install

安装所有文件,包括静态库和动态库,请执行如下命令:

bash 复制代码
./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run --devel

安装完成后,若显示如下信息,则说明软件安装成功:

bash 复制代码
xxx install success
  • 安装后检查

执行如下命令查询软件版本信息,查询结果与安装软件包的版本一致时,则验证安装成功,进入软件包安装信息文件目录:

bash 复制代码
cd /home/HwHiAiUser/Ascend/ascend-toolkit/latest/opp_kernel
cat version.info
相关推荐
Jackilina_Stone1 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第五章 自然语言处理原理与应用(2 自然语言处理关键技术) | 学习笔记
人工智能·笔记·学习·自然语言处理·hcip·huawei
垂杨有暮鸦⊙_⊙1 小时前
2024年6月英语六级CET6听力原文与解析
笔记·学习·六级
济南小草根1 小时前
JavaScript学习记录10
开发语言·javascript·学习
每天题库1 小时前
特种设备安全管理人员免费题库限时练习(判断题)
学习·安全·考试·题库·考证
安全方案2 小时前
网络安全的学习与实践经验(附资料合集)
学习·安全·web安全
Spcarrydoinb2 小时前
python学习笔记—15—数据容器之列表
笔记·python·学习
Stanford_11063 小时前
关于物联网的基础知识(三)——物联网技术架构:连接万物的智慧之道!连接未来的万物之网!
c++·物联网·学习·微信小程序·架构·twitter·微信开放平台
HinsCoder4 小时前
IDEA使用Git同步教程
java·笔记·git·学习·github·intellij-idea·版本控制
小猪佩奇TONY5 小时前
Vulkan 学习(12)---- Vulkan pipeline 创建
java·学习·spring