编译并安装自定义算子包
由于AMCT存在基于ONNX Runtime的自定义算子包,而自定义算子包编译时依赖ONNX Runtime提供的头文件,该头文件需要用户自行下载后,然后编译并安装自定义算子包。方法如下(该步骤为必选操作,否则可能会导致AMCT无法使用):
- 解压自定义算子包。
tar -zvxf amct_onnx_op.tar.gz
解压后文件目录组织如下:
amct_onnx_op # 自定义算子根目录 ├── inc # 自定义算子编译头文件目录 ├── src # 自定义算子实现源文件,请参见ONNX Runtime官方API说明 └── setup.py # 编译脚本,编译自定义算子,并且拷贝生成动态库至AMCT软件包内
编译基于ONNX Runtime的自定义算子需要依赖ONNX Runtime提供的头文件,该文件需要在线从GitHub上下载。如果用户AMCT所在服务器能链接网络,并且能连通GitHub,则可以直接进行2;如果无法连接网络,则请自行下载如下文件,然后上传到AMCT所在服务器amct_onnx_op/inc目录:
https://github.com/microsoft/onnxruntime/tree/v1.8.0/include/onnxruntime/core/session目录下的如下四个文件:
- onnxruntime_cxx_api.h
- onnxruntime_cxx_inline.h
- onnxruntime_c_api.h
- onnxruntime_session_options_config_keys.h
下载的头文件版本必须和ONNX Runtime版本一致,如果import amct_onnx时出现“segmentation fault”,建议删除头文件,卸载amct_onnx后下载正确版本的头文件后重新安装。
- 进入amct_onnx_op目录,编译并安装自定义算子包。
cd amct_onnx_op && python3 setup.py build
出现以下信息表示编译并安装自定义算子包成功,若编译失败,请参见编译并安装自定义算子包时提示"AttributeError: module ‘onnxruntime’ has no attribute ‘SessionOption’"信息进行处理。
1 2
[INFO] Build amct_onnx_op success! [INFO] Install amct_onnx_op success!
父主题: 安装后处理