创建自定义算子开发工程
- 以DDK安装的普通用户ascend登录DDK所在服务器。
- 创建工作空间目录。
mkdir $HOME/tools/projects
- 创建自定义工程目录。
$ mkdir $HOME/tools/projects/customop_te
创建算子代码目录:
mkdir $HOME/tools/projects/customop_te/operator
创建算子插件代码目录:
mkdir $HOME/tools/projects/customop_te/plugin
- 拷贝DDK中的样例代码到算子开发工程目录下。
- 本示例使用ddk中内置的reduction算子代码及算子插件代码进行说明如何进行自定义算子的开发,用户可自己新建相关文件进行编辑。
- 本示例中DDK的安装路径为“$HOME/tools/che”,若实际安装路径与示例路径不一致,请自行替换示例命令中路径。
- 将ddk中的reduction算子样例代码reduction.py和算子验证的样例数据生成脚本data_gen.py拷贝到自定义工程的算子代码目录下。
cp -rf $HOME/tools/che/ddk/ddk/sample/customop/python/reduction.py $HOME/tools/projects/customop_te/operator/
cp -rf $HOME/tools/che/ddk/ddk/sample/customop/python/data_gen.py $HOME/tools/projects/customop_te/operator/
- 将ddk中的reduction算子插件样例代码文件及makefile文件拷贝到自定义工程的算子插件代码目录下。
cp -rf $HOME/tools/che/ddk/ddk/sample/customop/customop_caffe_demo/caffe_reduction_layer.cpp $HOME/tools/projects/customop_te/plugin/
cp -rf $HOME/tools/che/ddk/ddk/sample/customop/customop_caffe_demo/Makefile $HOME/tools/projects/customop_te/plugin/
- 将ddk中的本示例使用的caffe网络模型文件拷贝到自定义工程目录下。
cp -rf $HOME/tools/che/ddk/ddk/sample/customop/customop_caffe_demo/model/ $HOME/tools/projects/customop_te/
本示例所示的自定义算子开发工程目录结构如表12-2所示。
表12-2 目录结构样例目录
文件
说明
customop_te/operator
reduction.py
reduction算子样例代码
data_gen.py
reduction算子样例数据生成文件
customop_te/plugin
caffe_reduction_layer.cpp
reduction算子插件样例代码(需要用户修改)
Makefile
reduction算子插件编译规则文件(需要用户修改)
customop_te/model
deploy_mylenet-1.prototxt
mylenet网络的原始模型文件
mylenet-1.caffemodel
mylenet网络的预训练模型文件