算子包部署指执行自定义算子包的安装,算子工程的编译结果会自动部署到算子包安装目录下。
自定义算子包安装部署。
在自定义算子包所在路径下,执行如下命令,安装自定义算子包。
./custom_opp_<target os>__<target architecture>.run --install-path=<path>
--install-path为可选参数,用于指定自定义算子包的安装目录。支持指定绝对路径,运行用户需要对指定的安装路径有可读写权限。
下文描述中的_<vendor_name>_为算子工程编译时CMakePresets.json配置文件中字段“vendor_name”的取值,默认为“customize”。
默认安装场景,不配置--install-path参数,安装成功后会将编译生成的自定义算子相关文件部署到{INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
[object Object]
[object Object][object Object]指定目录安装场景,配置--install-path参数,安装成功后会将编译生成的自定义算子相关文件部署到
[object Object]目录,并在[object Object]目录下新增set_env.bash,写入当前自定义算子包相关的环境变量。[object Object]
命令执行成功后,自定义算子包中的相关文件将部署至当前环境中。
以默认安装场景为例,可查看部署后的目录结构,如下所示:
[object Object]配置自定义算子优先级。
多算子包共存的情况下,若不同的算子包目录下存在相同OpType的自定义算子,则以优先级高的算子包目录下的算子为准。下面介绍如何配置算子包优先级:
默认安装场景
当“opp/vendors”目录下存在多个厂商的自定义算子时,您可通过配置“opp/vendors”目录下的“config.ini”文件,配置自定义算子包的优先级。
“config.ini”文件的配置示例如下:
[object Object]- “load_priority”:优先级配置序列的关键字,不允许修改。
- “vendor_name1,vendor_name2,vendor_name3”:自定义算子厂商的优先级序列,按照优先级从高到低的顺序进行排列。
指定目录安装场景
指定目录安装场景下,如果需要多个自定义算子包同时生效,分别执行各算子包安装路径下的set_env.bash脚本即可。每次脚本执行都会将当前算子包的安装路径追加到ASCEND_CUSTOM_OPP_PATH环境变量的最前面。因此可以按照脚本执行顺序确定优先级:脚本执行顺序越靠后,算子包优先级越高。
比如先执行
[object Object],后执行[object Object],vendor_name2算子包的优先级高于vendor_name1。ASCEND_CUSTOM_OPP_PATH示例如下:[object Object]指定目录安装场景下安装的算子包优先级高于默认方式安装的算子包。
支持安装多平台的自定义算子包,安装时同样支持默认路径和自定义路径安装。
以默认路径安装为例,在aarch64平台上分别安装aarch64平台和x86_64平台算子包,安装成功后可查看目录结构兼容两种平台类型,如下所示: