昇腾 MindStudio 中好用的工具 - 开发昇腾应用

前言

作者写过很多篇关于昇腾推理的文章:

其中,有一个 IDE (编辑器)可以不仅可以编写相应代码,还可以用于代码的前期准备,以及后期调试。实属是充分发挥了图形化界面的优势。

观前提示:本文主要围绕昇腾离线模型(OM)推理所用到的工具链。虽然昇腾确实可以用于 PyTorch 模型等训练、推理,但是至少现在还是推理用的更多。

部分常用工具详细介绍

Model Converter (昇腾模型转换器)

ATC 作为 OM 模型必不可少的工具,重要性不言自明。Model Converter 就是用于将 ONNX 模型等转换为昇腾离线模型,是 ATC 的可视化界面版。

Model Converter 界面

小提示:如果昇腾设备的内存不够大,建议搭建一个开发环境用于转换模型。
小小的吐槽一下,在命令行使用 ATC 工具时,由于参数是使用等于号添加的,所以没有办法使用补全,有点毛糙。

Model Visualizer (昇腾离线模型查看器)

相信碰过网络模型的都对 Netron 这款模型可视化软件不陌生,这个小工具就是相似的。只要传入离线模型路径,就可以获得模型的可视化图。

Model Visualizer 图源:昇腾社区

Log (昇腾日志查看器)

运行昇腾离线模型时,并不会直接显示报错,而是会产生日志。使用 Log 工具时免去了定位文件夹的麻烦,直接在一个界面解决。

Log

View Supported Operators (昇腾算子支持查看器)

涉及到张量的计算,支持并行计算的昇腾处理器当然要比用 CPU 计算更好。昇腾处理器支持单算子调用,只需构造推理结构,即可成功调用。编写程序时可以查看该目录,查看输入节点、输入限制等信息。

View Supported Operators

关于单算子调用,请参见昇腾文档: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 中改了个名字,我们也介绍一下:可以在两边创造一个同步文件夹,可以方便同步其中的程序以便两侧运行

使用这个功能,可以保证两端的代码相同,不会因为一端代码有误导致无法运行,或者因为手贱清空环境导致代码丢失。

Ascend Deployment

AscendCL C++ 程序模板

创建一个 C 语言的 AscendCL 程序要比 Python 的要麻烦,所以 MindStudio 中新建一个 AscendCL C++ 项目时就会设置好 CMakeLists.txt 还带一个 set_env.cmake,方便后续开发。

set_env.cmake

还有……完整的 JetBrains IDE 支持

扩展

MindStudio 还继承了 IDEA 的插件生态,可以安装 GitHub Copilot 等插件。

扩展市场

调试

作者根据自己的使用习惯来看,还是 PyCharm 的调试功能相比 VS Code 的更好用。在 MindStudio 中也是保留了下来。

总结

华为昇腾开发的这款 IDE 集成了许多便捷的工具,有效减少了昇腾开发时中断查资料、需要使用命令行的情况,作者本人表示使用 MindStudio 开发昇腾应用确实便捷不少。

链接

MindStudio 文档 - 昇腾社区

图像: MindStudio 工具链

MindStudio 工具链

Logo

昇腾万里,让智能无所不及

更多推荐