下载
中文
注册

检测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插件的安装。

操作步骤

  1. 执行以下命令,生成自定义算子工程,并进行host侧和kernel侧的算子实现。
    bash install.sh -v Ascendxxxyy    # xxxyy为用户实际使用的具体芯片类型
  2. 参考算子编译部署,完成算子的编译部署。

    编辑样例工程目录${install_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch/CustomOp/op_kernel下的CMakeLists.txt文件,增加编译选项-sanitizer。

    add_ops_compile_options(ALL OPTIONS -sanitizer )
  3. 进入PyTorch接入工程,使用PyTorch调用方式调用AddCustom算子工程,并按照指导完成插件的编译。
    PytorchInvocation
    ├── op_plugin_patch         
    ├── run_op_plugin.sh      //  5.执行样例时,需要使用
    └── test_ops_custom.py    //  步骤6启动工具时,需要使用
  4. 执行样例,样例执行过程中会自动生成测试数据,然后运行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
  5. 启动msSanitizer工具拉起Python程序,进行异常检测。
    mssanitizer python3 test_ops_custom.py
  6. 参考内存异常报告解析竞争异常报告解析未初始化异常报告解析分析异常行为。