🌀Jarson Cai's Blog
头脑是日用品,不是装饰品
昇腾计算开发环境配置
介绍昇腾计算平台的开发环境,相关平台环境部署安装。

华为部署生态

  • CANN:华为昇腾的异构计算架构

  • Ascend:基于达芬奇架构的计算卡,昇腾310,昇腾910等。

  • MindSpore:基于昇腾架构研发的计算框架,类似于nvidia的TensorRT。

  • AscendCL:基于昇腾架构的计算语言,类似于nvidia的CUDA语言。

华为昇腾开发环境

首先有了硬件之后,需要先装驱动。驱动装完之后往上需要装用于推理的软件包,叫nnrt(Nerual Network RunTime)。这样我们就已经装完了运行的环境。为了我们开发方便,我们还需要在其之上装一个Toolkit。这些和nvidia都是非常像的,驱动 -> nvcc -> toolkit。

完成上述步骤,就可以在命令行编译运行我们的程序了。如果为了方便开发,还可以再安装一个MindStudio的软件。

驱动安装

首先关注一下华为昇腾社区的官网:https://www.hiascend.com

点击产品中的固件和驱动,选择加速卡的产品系列,由于此次公司的计算卡是昇腾910处理器,这里选择Atlas 300T Pro训练卡(型号:9000)。选择.run格式的驱动包,自行选择ARMX86_64架构的包。需要注意的是这里选择的CANN版本与后面要安装的nnrt版本有关联。

CANN架构包下载

点击产品中的CANN,选择社区版下载,选择与驱动安装时相同的架构的选项,选择nnrttoolkit的包进行下载。

nnrt是推理包,nnae是面向训练的包。

MindStudio下载

MindStudio提供您在AI开发所需的一站式开发环境,支持模型开发算子开发以及应用开发三个主流程中的开发任务。 依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助您在一个工具上就能高效便捷地完成AI应用开发 MindStudio采用了插件化扩展机制,开发者可以通过开发插件来扩展已有功能。

选择产品中的全流程开发工具链MindStudio,选择对应操作系统的软件包进行下载。

开发者文档

点击右上角的文档选项,进入昇腾文档,下滑,找到如下页面:

点击CANN软件安装,选择安装开发环境,按照文档进行对应系统的依赖。

然后按照安装驱动(包含重启)->安装nnrt(包含配置环境变量)->安装toolkit->安装MindStudio

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ ./你的驱动安装包(.run包) --full
# 重启之后进行nnrt安装
$ ./你的nnrt安装包(.run包) --install
# 在.bashrc中配置一下环境变量(按照提示来),并source一下.bashrc
$ ./你的toolkit安装包(.run包) --install
# 这里会提示很多的环境变量配置(都是命令行开发所必须的)
# 可以使用env.txt保存一下
$ vim env.txt # 复制并保存
# 环境变量分组:第一组是推理离线应用所需要的环境变量;第二组是推理在线应用所需要的环境变量;第三组是模型转换所需要的环境变量
$ tar zxvf ./你的MindStudio(.tar.gz包)
# 进入源码运行sh脚本
$ cd MindStudio/bin
$ ./MindStudio.sh
# 按照提示安装依赖然后再次运行sh脚本

安装完软件之后,为软件配置一下toolkit源文件,界面类似于PyCharm,比较重要的就是模型转化的过程了。

MindStudio模型推理

  • 模型转换:点击软件的Ascend,再选择Model Converter,选择模型文件,然后选择精度为FP16,等待转换完成。

在工程目录下,点击右键,Add model,选择转换好的.om文件。.om文件的地址一般在你的用户名的文件夹下的modelzoo文件夹。

  • 图片转换:对准备好的图片放入data文件夹下,并进行转换:
1
$ python3.7.5 ../script/transferPic.py
  • 编译:点击Build目录下的Edit Configurations,然后直接点击build。
  • 运行:build成功之后在out文件夹下会出现一个main的可执行文件。点击Run目录下的Edit Configurations,选择Local Run,并选择可执行文件main。然后再次点击Run目录下Run MyApp(你的工程名),就开始执行了。

最后修改于 2023-08-09

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。