算子交付件开发完成后,需要对算子工程进行编译,生成自定义算子安装包custom_opp_Linux_Arch.run,详细的编译操作包括:

...
set(AICPU_SOC_VERSION $ENV{AICPU_SOC_VERSION})
message(STATUS "AICPU_SOC_VERSION=${AICPU_SOC_VERSION}")
# 添加如下代码
if(EXISTS "${ASCEND_AICPU_PATH}/opp/built-in/op_impl/aicpu/aicpu_kernel/lib/${AICPU_SOC_VERSION}/libascend_protobuf.a")
target_link_options(${AICPU_KERNEL_TARGET} PRIVATE
-s
-Wl,-Bsymbolic
-Wl,--exclude-libs=libascend_protobuf.a
)
target_link_libraries(${AICPU_KERNEL_TARGET} PRIVATE
-Wl,--whole-archive
${ASCEND_AICPU_PATH}/opp/built-in/op_impl/aicpu/aicpu_kernel/lib/${AICPU_SOC_VERSION}/libascend_protobuf.a
-Wl,--no-whole-archive
)
endif()
if(EXISTS "${ASCEND_AICPU_PATH}/opp/built-in/op_impl/aicpu/aicpu_kernel/lib/${AICPU_SOC_VERSION}/libcpu_kernels_context.a")
...
添加新增配置,默认添加编译类型“Release(default)”,请参考表1进行编译配置。
|
参数 |
说明 |
|---|---|
|
Name |
配置名称自定义,默认为Release。 |
|
Build type |
配置类型,可选,默认为Release。 |
|
Toolchain |
工具链配置器,根据已安装的CANN包预置架构一致的自定义Toolchain,支持本地和远程编译功能。 可单击“Manage toolchains...”自定义配置Toolchain,配置详情请参见Toolchains。 |
|
CMake options |
CMake选项,默认:“-DCMAKE_BUILD_TYPE=Release”。 |
|
Build directory |
编译目录相对路径,该路径是相对于工程目录的路径。 |
|
Build options |
编译加速选项。 |
|
Environment variables |
环境变量配置:支持编译前配置环境变量。 可直接手动配置或单击 |
|
Environment from path |
输入路径或单击右侧 APATH=/usr/local/xxx X_PATH=/xxx/xxx |
若选用远程Toolchain,将默认添加一个Deployment,用户需要配置环境变量。
在Environment Variables输入框中输入环境变量。
ASCEND_TENSOR_COMPILER_INCLUDE=Ascend-cann-toolkit安装目录/ascend-toolkit/latest/includeASCEND_OPP_PATH=Ascend-cann-toolkit安装目录/ascend-toolkit/latest/opp;ASCEND_AICPU_PATH=Ascend-cann-toolkit安装目录/ascend-toolkit/latestAICPU_KERNEL_TARGET=cust_aicpu_kernels_3.3.0
建议用户配置AICPU_KERNEL_TARGET环境变量,并添加软件版本号的后缀,避免后续由于AI CPU软件升级造成自定义AI CPU动态库文件的冲突。
若不配置此环境变量,使用默认值:cust_aicpu_kernels。
export ASCEND_AICPU_PATH=Ascend-cann-toolkit安装目录/ascend-toolkit/latest
export AICPU_KERNEL_TARGET=cust_aicpu_kernels_3.3.0(建议配置)
或进行工程编译。其中Arch的取值根据安装的CANN包和Toolchain的信息获取。