概述
展示如何使用msDebug工具来上板调试一个Vector算子,该Vector算子可实现两个向量相加并输出结果的功能。
前期准备
操作步骤
基于样例工程编译算子,获取可执行文件add.fatbin。
修改sample/normal_sample/vec_only/Makefile中的COMPILER_FLAG编译选项,将
[object Object]修改为[object Object],使能编译器调试功能。[object Object]执行以下命令完成算子编译。
[object Object]
[object Object]
设置断点。
启动msDebug工具拉起算子程序,进入调试界面。
[object Object]该sample中核函数的代码实现位于add_kernel.cpp中,在此文件中,为需要的代码行设置NPU断点。
[object Object]
运行算子程序。
程序会开始运行直到命中第一个断点(add_kernel.cpp:69)后停下,msDebug检测到NPU核函数add_custom开始运行,运行在Device 0。
[object Object]检视信息。
使用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]
查询并删除断点,恢复程序运行。
[object Object]调试完以后,执行q命令并输入Y或y结束调试。
[object Object]
前期准备
[object Object]
操作步骤
切换到msOpGen脚本install.sh所在目录。
[object Object]执行以下命令,生成自定义算子工程,并进行Host侧和Kernel侧的算子实现。
[object Object]在${git_clone_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp目录下修改CMakePresets.json文件的cacheVariables的配置项,将
[object Object]修改为[object Object]。[object Object]切换到msOpGen脚本install.sh所在目录,并参考编译单算子调用应用并得到可执行文件execute_add_op。[object Object][object Object]
[object Object]导入算子动态加载路径。
将自定义算子工程编译后输出在build_out目录下Kernel侧的
[object Object]文件路径导入环境变量。[object Object][object Object]
使用msDebug工具加载中得到的单算子可执行文件execute_add_op。
[object Object]断点设置。
[object Object]运行算子程序,等待直到命中断点。
[object Object][object Object]
概述
展示如何使用msDebug工具来上板调试一个PyTorch接口调用的add算子,该add算子可实现两个向量相加并输出结果的功能。
前期准备
[object Object]
操作步骤
执行以下命令,可生成自定义算子工程,并进行Host侧和Kernel侧的算子实现。
[object Object]在${git_clone_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp目录下修改CMakePresets.json文件的cacheVariables的配置项,将
[object Object]修改为[object Object]。[object Object]进入到样例目录,以命令行方式下载样例代码。参考使用PyTorch调用方式调用AddCustom算子工程,并按照指导完成编译。
[object Object][object Object]
[object Object]
执行样例,样例执行过程中会自动生成测试数据,然后运行PyTorch样例,最后检验运行结果。
[object Object]手动导入算子调试信息,示例如下。
[object Object]
[object Object]启动msDebug工具拉起Python程序,进入调试界面。
[object Object]设置断点。
根据指定源码文件与对应行号,在核函数中设置NPU断点。
[object Object]运行程序,等待直到命中断点。
[object Object][object Object]
调试完以后,执行q命令并输入Y或y结束调试。
[object Object]
概述
展示如何使用msDebug工具来上板调试一个模板库算子(matmul),该算子可实现两个矩阵相乘并输出结果的功能。
前期准备[object Object][object Object]
操作步骤
基于中的样例工程编译算子,获取可执行文件00_basic_matmul。
执行以下命令完成算子编译,编译完成后,在build/bin目录下生成可执行文件00_basic_matmul。
[object Object]启动msDebug工具拉起算子程序,进入调试界面。
[object Object]设置断点。
该用例中核函数的代码实现位于basic_matmul.hpp中,在此文件中,为需要的代码行设置NPU断点。
[object Object]运行算子程序,等待直到命中断点。
程序会开始运行直到命中第一个断点(basic_matmul.hpp:127)后停下,msDebug检测到NPU核函数开始运行,运行在Device 0。
[object Object][object Object]
检视信息。
使用ascend info cores命令查询NPU核信息。
[object Object]使用print命令直接打印gmA变量信息。
[object Object]继续使用memory read命令可打印出gmA变量中存放的值。
打印位于GM内存上的gmA中存放的数据。
[object Object]
进行核切换,切换至另一个aic核,并打印需要的信息。
[object Object]
[object Object]
查询并删除断点,恢复程序运行。
[object Object]调试完以后,执行q命令并输入Y或y结束调试。
[object Object]