昇腾 MindStudio 中好用的工具 - 开发昇腾应用
文章目录
前言
作者写过很多篇关于昇腾推理的文章:
- 解决问题:将 MAN 模型在昇腾 310 设备上推理做准备
- 昇腾 CANN 入门推理全流程 - 超分辨率 (PyTorch, ONNX, AscendCL)
- 换种方式描述昇腾 AscendCL 推理流程 - 使用 Python 与 Atlas 200I DK A2 开发者套件
其中,有一个 IDE (编辑器)可以不仅可以编写相应代码,还可以用于代码的前期准备,以及后期调试。实属是充分发挥了图形化界面的优势。
观前提示:本文主要围绕昇腾离线模型(OM)推理所用到的工具链。虽然昇腾确实可以用于 PyTorch 模型等训练、推理,但是至少现在还是推理用的更多。
部分常用工具详细介绍
Model Converter (昇腾模型转换器)
ATC 作为 OM 模型必不可少的工具,重要性不言自明。Model Converter 就是用于将 ONNX 模型等转换为昇腾离线模型,是 ATC 的可视化界面版。
小提示:如果昇腾设备的内存不够大,建议搭建一个开发环境用于转换模型。
小小的吐槽一下,在命令行使用 ATC 工具时,由于参数是使用等于号添加的,所以没有办法使用补全,有点毛糙。
Model Visualizer (昇腾离线模型查看器)
相信碰过网络模型的都对 Netron 这款模型可视化软件不陌生,这个小工具就是相似的。只要传入离线模型路径,就可以获得模型的可视化图。
Log (昇腾日志查看器)
运行昇腾离线模型时,并不会直接显示报错,而是会产生日志。使用 Log 工具时免去了定位文件夹的麻烦,直接在一个界面解决。
View Supported Operators (昇腾算子支持查看器)
涉及到张量的计算,支持并行计算的昇腾处理器当然要比用 CPU 计算更好。昇腾处理器支持单算子调用,只需构造推理结构,即可成功调用。编写程序时可以查看该目录,查看输入节点、输入限制等信息。
关于单算子调用,请参见昇腾文档:CANN。
MindX SDK 可视化插件流程编排
MindX SDK 可以使用 JSON 文件编排流程(pipeline),类似:
{
“classification+detection”: {
“stream_config”: {
“deviceId”: “0”
},
“mxpi_imagedecoder0”: {
“factory”: “mxpi_imagedecoder”,
“next”: “mxpi_imageresize0”
},
…
代码来源:昇腾文档
现在,你可以使用 MindStudio 使用可视化编排流程了。使用模块框与拖拽连线结合,简单易读。
Ascend Deployment (昇腾部署)
实际上这个功能就是 PyCharm 里的 Deployment,因为在 MindStudio 中改了个名字,我们也介绍一下:可以在两边创造一个同步文件夹,可以方便同步其中的程序以便两侧运行。
使用这个功能,可以保证两端的代码相同,不会因为一端代码有误导致无法运行,或者因为手贱清空环境导致代码丢失。
AscendCL C++ 程序模板
创建一个 C 语言的 AscendCL 程序要比 Python 的要麻烦,所以 MindStudio 中新建一个 AscendCL C++ 项目时就会设置好 CMakeLists.txt
还带一个 set_env.cmake
,方便后续开发。
还有……完整的 JetBrains IDE 支持
扩展
MindStudio 还继承了 IDEA 的插件生态,可以安装 GitHub Copilot 等插件。
调试
作者根据自己的使用习惯来看,还是 PyCharm 的调试功能相比 VS Code 的更好用。在 MindStudio 中也是保留了下来。
总结
华为昇腾开发的这款 IDE 集成了许多便捷的工具,有效减少了昇腾开发时中断查资料、需要使用命令行的情况,作者本人表示使用 MindStudio 开发昇腾应用确实便捷不少。