打开微信,使用扫一扫进入页面后,点击右上角菜单,
点击“发送给朋友”或“分享到朋友圈”完成分享
根据文档走自定义算子遇上问题,越看文档越困惑,找不出问题,恳请官方支持。
以添加自定义激活函数SiLU为例子,流程如下,
CNPlugin_root = /workspace/volume/private/sdk/Cambricon-CNPlugin-MLU270
neuware_root = /workspace/volume/private/sdk/cambricon_pytorch/neuware
pytorch_root = /workspace/volume/private/sdk/cambricon_pytorch/pytorch
(1) 按照文档添加SiLU的cpu/mlu实现,plugin_silu.cc plugin_silu_cpu.cc plugin_silu_cpu.h plugin_silu_kernel.h plugin_silu_kernel.mlu,添加路径在{CNPlugin_root}/pluginops/plugin_silu_op文件夹,运行{CNPlugin_root}/build_cnplugin.sh编译脚本,能够在Makefile里面看到以下字段,表示能找到并编译源码
@echo "... pluginops/plugin_silu_op/plugin_silu.o"
@echo "... pluginops/plugin_silu_op/plugin_silu.i"
@echo "... pluginops/plugin_silu_op/plugin_silu.s"
@echo "... pluginops/plugin_silu_op/plugin_silu_cpu.o"
@echo "... pluginops/plugin_silu_op/plugin_silu_cpu.i"
echo "... pluginops/plugin_silu_op/plugin_silu_cpu.s"
(2) 因为CNPlugin编译完不知道怎么install,所以手动复制头文件和.so
cp {CNPlugin_root}/common/include/cnplugin.h {neuware_root}/include
cp {CNPlugin_root}/build/libcnplugin.so {neuware_root}/lib64
(3) 参考yolov5的教程,在{pytorch_root}/src/catch/torch_mlu/tools/mlu_functions.yaml声明算子,在{pytorch_root}/src/catch/torch_mlu/csrc/aten/operators更新op_methods.cpp op_methods.h添加cpu实现,添加warpper和kernel
(4) 编译pytorch,运行bash {pytorch_root}/../configure_pytorch.sh
(5) 重新启动虚拟环境
在python3里面运行torch.ops.torch_mlu.SiLU会报错RuntimeError: No such operator torch_mlu::SiLU
热门帖子
精华帖子