# pybind **Repository Path**: fulltower/pybind ## Basic Information - **Project Name**: pybind - **Description**: 存放pybind脚本,用于调用算子 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-24 - **Last Updated**: 2025-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pybind ### 介绍 存放pybind脚本,用于通过python接口调用算子aclnn接口 ### 仓库结构 ``` Eye //Eye算子适配及测试代码 │ ├── common │ │ └── pytorch_npu_helper.hpp //自定义算子调用和下发框架 │ ├── extension │ │ └── custom_op.cpp //自定义算子正反向适配代码以及绑定 │ ├── get_time.py //获取执行时间 │ ├── run.sh //自定义算子wheel包编译安装并执行用例的脚本 │ ├── setup.py //wheel包编译文件 │ └── test_op.py //测试脚本,只执行用例 ├── Heaviside ├── MatMul ├── Radius └── ScatterReduce ``` ### 样例脚本run.sh关键步骤解析 - 编译适配层代码并生成wheel包 > 注意:若当前目录存在dist目录,则不会进行编译whl包动作,只执行安装动作,如需重新编译whl,需要删除dist目录 ```bash python3 setup.py build bdist_wheel ``` - 安装生成的wheel包 ```bash pip3 install dist/*.whl --force-reinstall ``` - 执行测试脚本 ```bash python3 test_op.py $1 ``` > 说明:测试脚本的参数,表示执行第几个case,如python3 test_op.py 1表示执行第一个case ### 测试执行,以Eye算子为例 #### 1.编译部署算子工程 运行此测试前,请参考[编译部署自定义算子](https://gitee.com/ascend/cann-ops/blob/master/QuickStart.md#cann-ops-%E6%98%87%E8%85%BE%E5%9F%BA%E7%A1%80%E7%AE%97%E5%AD%90%E4%BB%93%E5%BA%93%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97)完成所需执行算子的编译部署。 ```bash git clone https://gitee.com/ascend/cann-ops.git cd ${git_clone_path}/cann-ops bash build.sh -n eye_fp64 ./build_out/CANN-*.run ``` #### 2.pytorch调用的方式调用样例运行 - 进入到样例目录 以命令行方式下载样例代码,master分支为例。 ```bash cd ${git_clone_path}/pybind/Eye ``` - 首次样例执行 样例执行过程中会编译安装whl包,并执行测试脚本。测试脚本会自动生成测试数据,然后调用算子接口,最后检验运行结果。具体过程可参见run.sh脚本。 ```bash bash run.sh 1 ``` > 注意:若当前目录存在dist目录,则不会进行编译whl包动作,只执行安装动作,如需重新编译whl,需要删除dist目录 - 后续样例执行 在首次样例执行完成后,已经安装了whl包,如不需要重新编译安装whl包,可直接执行测试脚本 ```bash python3 test_op.py 1 ```