开发者
资源
[object Object][object Object]

概述

展示如何使用msDebug工具来上板调试一个Vector算子,该Vector算子可实现两个向量相加并输出结果的功能。

前期准备

  • 单击获取样例工程,为进行算子调试做准备。
  • 完成相关环境变量配置,请参见

操作步骤

  1. 基于样例工程编译算子,获取可执行文件add.fatbin。

    1. 修改sample/normal_sample/vec_only/Makefile中的COMPILER_FLAG编译选项,将[object Object]修改为[object Object],使能编译器调试功能。

      [object Object]
    2. 执行以下命令完成算子编译。

      [object Object]
      [object Object]
  2. 设置断点。

    1. 启动msDebug工具拉起算子程序,进入调试界面。

      [object Object]
    2. 该sample中核函数的代码实现位于add_kernel.cpp中,在此文件中,为需要的代码行设置NPU断点。

      [object Object]
  3. 运行算子程序。

    程序会开始运行直到命中第一个断点(add_kernel.cpp:69)后停下,msDebug检测到NPU核函数add_custom开始运行,运行在Device 0。

    [object Object]
  4. 检视信息。

    • 使用ascend info cores命令查询NPU核信息。

      [object Object]
    • 使用print命令直接打印变量信息。

      [object Object]
    • 使用print命令与memory read命令配合可打印出Tensor变量中存放的值。

      • 打印位于UB内存上的LocalTensor中存放的数据。

        [object Object]
        [object Object]
      • 打印位于GM内存上的GlobalTensor中存放的数据。

        [object Object]
        [object Object]
    • 进行核切换,切换至另一个aiv核,并打印需要的信息。

      [object Object]
  5. 查询并删除断点,恢复程序运行。

    [object Object]
  6. 调试完以后,执行q命令并输入Y或y结束调试。

    [object Object]
[object Object]

前期准备

单击获取算子样例工程,为进行算子调试做准备。

[object Object]

操作步骤

  1. 切换到msOpGen脚本install.sh所在目录。

    [object Object]
  2. 执行以下命令,生成自定义算子工程,并进行Host侧和Kernel侧的算子实现。

    [object Object]
  3. 在${git_clone_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp目录下修改CMakePresets.json文件的cacheVariables的配置项,将[object Object]修改为[object Object]

    [object Object]
  4. 参考完成算子的编译部署。[object Object][object Object]

  5. 切换到msOpGen脚本install.sh所在目录,并参考编译单算子调用应用并得到可执行文件execute_add_op。[object Object][object Object]

    [object Object]
  6. 导入算子动态加载路径。

    将自定义算子工程编译后输出在build_out目录下Kernel侧的[object Object]文件路径导入环境变量。

    [object Object]
    [object Object]
  7. 使用msDebug工具加载中得到的单算子可执行文件execute_add_op。

    [object Object]
  8. 断点设置。

    [object Object]
  9. 运行算子程序,等待直到命中断点。

    [object Object]
    [object Object]
[object Object]

概述

展示如何使用msDebug工具来上板调试一个PyTorch接口调用的add算子,该add算子可实现两个向量相加并输出结果的功能。

前期准备

  • 单击获取样例工程,为进行算子调试做准备。

    [object Object]
[object Object]
[object Object]
  • 已参考《》,完成PyTorch框架和torch_npu插件的安装。
  • 完成相关环境变量配置,请参见

操作步骤

  1. 执行以下命令,可生成自定义算子工程,并进行Host侧和Kernel侧的算子实现。

    [object Object]
  2. 在${git_clone_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp目录下修改CMakePresets.json文件的cacheVariables的配置项,将[object Object]修改为[object Object]

    [object Object]
  3. 参考,完成算子的编译部署。

  4. 进入到样例目录,以命令行方式下载样例代码。参考使用PyTorch调用方式调用AddCustom算子工程,并按照指导完成编译。

    [object Object]
    [object Object]
[object Object]
[object Object]
  1. 执行样例,样例执行过程中会自动生成测试数据,然后运行PyTorch样例,最后检验运行结果。

    [object Object]
  2. 手动导入算子调试信息,示例如下。

    [object Object]
    [object Object]
  3. 启动msDebug工具拉起Python程序,进入调试界面。

    [object Object]
  4. 设置断点。

    根据指定源码文件与对应行号,在核函数中设置NPU断点。

    [object Object]
  5. 运行程序,等待直到命中断点。

    [object Object]
    [object Object]
  6. 删除断点,具体操作请参见

  7. 调试完以后,执行q命令并输入Y或y结束调试。

    [object Object]
[object Object]

概述

展示如何使用msDebug工具来上板调试一个模板库算子(matmul),该算子可实现两个矩阵相乘并输出结果的功能。

前期准备[object Object][object Object]

  • 单击获取样例工程,为进行算子调试做准备。
  • 完成相关环境变量配置,请参见

操作步骤

  1. 基于中的样例工程编译算子,获取可执行文件00_basic_matmul。

    执行以下命令完成算子编译,编译完成后,在build/bin目录下生成可执行文件00_basic_matmul。

    [object Object]
  2. 启动msDebug工具拉起算子程序,进入调试界面。

    [object Object]
  3. 设置断点。

    该用例中核函数的代码实现位于basic_matmul.hpp中,在此文件中,为需要的代码行设置NPU断点。

    [object Object]
  4. 运行算子程序,等待直到命中断点。

    程序会开始运行直到命中第一个断点(basic_matmul.hpp:127)后停下,msDebug检测到NPU核函数开始运行,运行在Device 0。

    [object Object]
    [object Object]
  5. 检视信息。

    • 使用ascend info cores命令查询NPU核信息。

      [object Object]
    • 使用print命令直接打印gmA变量信息。

      [object Object]
    • 继续使用memory read命令可打印出gmA变量中存放的值。

      • 打印位于GM内存上的gmA中存放的数据。

        [object Object]
    • 进行核切换,切换至另一个aic核,并打印需要的信息。

      [object Object]
    [object Object]
  6. 查询并删除断点,恢复程序运行。

    [object Object]
  7. 调试完以后,执行q命令并输入Y或y结束调试。

    [object Object]