检测PyTorch接口调用的算子
前提条件
- 单击Link获取样例工程,为进行算子检测做准备。
- 此样例工程仅支持Python3.9,若要在其他Python版本上运行,需要修改${install_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/PytorchInvocation目录下run_op_plugin.sh文件中的Python版本。
- 下载代码样例时,需执行以下命令指定分支版本。
git clone https://gitee.com/ascend/samples.git -b v0.3-8.0.0.alpha003
- 已参考《Ascend Extension for PyTorch 配置与安装》,完成PyTorch框架和torch_npu插件的安装。
操作步骤
- 执行以下命令,生成自定义算子工程,并进行host侧和kernel侧的算子实现。
bash install.sh -v Ascendxxxyy # xxxyy为用户实际使用的具体芯片类型
- 参考算子编译部署,完成算子的编译部署。
编辑样例工程目录${install_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp/op_kernel下的CMakeLists.txt文件,增加编译选项-sanitizer。
add_ops_compile_options(ALL OPTIONS -sanitizer )
- 进入PyTorch接入工程,使用PyTorch调用方式调用AddCustom算子工程,并按照指导完成插件的编译。
- 执行样例,样例执行过程中会自动生成测试数据,然后运行pytorch样例,最后检验运行结果。
bash run_op_plugin.sh -- CMAKE_CCE_COMPILER: ${INSTALL_DIR}/toolkit/tools/ccec_compiler/bin/ccec -- CMAKE_CURRENT_LIST_DIR: ${INSTALL_DIR}/AddKernelInvocation/cmake/Modules -- ASCEND_PRODUCT_TYPE: Ascendxxxyy -- ASCEND_CORE_TYPE: VectorCore -- ASCEND_INSTALL_PATH: /usr/local/Ascend/ascend-toolkit/latest -- The CXX compiler identification is GNU 10.3.1 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: ${INSTALL_DIR}/AddKernelInvocation/build Scanning dependencies of target add_npu ... [100%] Linking CCE executable ../../../add_npu [100%] Built target add_npu ${INSTALL_DIR}/AddKernelInvocation INFO: compile op on ONBOARD succeed! INFO: execute op on ONBOARD succeed! test pass
- 启动msSanitizer工具拉起Python程序,进行异常检测。
mssanitizer python3 test_ops_custom.py
- 参考内存异常报告解析、竞争异常报告解析及未初始化异常报告解析分析异常行为。
父主题: 典型案例