本文基于CANN开源社区的asc-tools仓库进行技术解读

  • CANN组织链接:https://atomgit.com/cann
  • 仓库链接:https://atomgit.com/cann/asc-tools

前言

开发NPU算子,光有编程语言还不够。你还需要各种辅助工具——分析代码、调试问题、优化效果…

asc-tools就是CANN提供的一套工具集。tools嘛,顾名思义,就是各种工具的集合。

包含哪些工具

从项目信息来看,asc-tools提供了多种实用工具:

1. 性能分析工具

帮你找到代码的瓶颈在哪:

你的算子代码

性能分析工具

分析报告

哪里慢\n哪里有问题

2. 代码检查工具

检查代码是否符合规范:

  • 语法检查
  • 风格检查
  • 潜在问题警告

3. 调试工具

帮助定位运行时问题:

  • 断点调试
  • 变量查看
  • 执行跟踪

4. 代码生成工具

自动生成一些模板代码,减少手写。

工具使用场景

场景一:新算子开发

开发新算子时的工作流:

写代码

代码检查工具\n发现语法问题

修复问题

编译运行

结果不对?

调试工具\n找原因

性能分析工具\n看效率

需要优化?

完成

场景二:优化现有算子

1. 用性能分析工具找瓶颈
2. 根据分析结果修改代码
3. 再次分析确认效果
4. 重复直到满意

场景三:排查问题

线上出了问题,需要排查:

1. 复现问题
2. 开启调试模式
3. 用工具收集信息
4. 分析日志和数据
5. 定位根因

命令行示例

asc-tools通常通过命令行使用:

# 检查代码
asc-tools check my_operator.cpp

# 分析性能
asc-tools profile ./my_app

# 生成模板
asc-tools template create -n MyNewOp

# 查看帮助
asc-tools --help

具体命令以官方文档为准。

和IDE的配合

asc-tools可以配合IDE使用:

VS Code

CANN插件

asc-tools

代码提示

问题标记

一键调试

通过IDE集成,可以获得更好的开发体验。

为什么需要专门的工具

NPU编程和普通编程不太一样:

  1. 异构计算:代码跑在两个地方(Host + Device)
  2. 硬件特殊:NPU有独特的架构和限制
  3. 调试困难:不能简单地打断点

所以需要专门的工具来辅助开发。

学习建议

对于刚开始学Ascend C的同学:

  1. 先用基本功能:代码检查、简单调试
  2. 遇到问题再深入:根据具体问题学对应工具
  3. 参考官方文档:工具更新快,以官方为准

总结

asc-tools是CANN提供的开发工具集,包括:

  • 性能分析工具
  • 代码检查工具
  • 调试工具
  • 代码生成工具

是Ascend C开发的好帮手。

相关链接

  • asc-tools仓库:https://atomgit.com/cann/asc-tools
  • asc-devkit仓库:https://atomgit.com/cann/asc-devkit
  • CANN开发工具文档

这篇是我学习CANN开发工具时的简单笔记,如有错误欢迎指正。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐