目录

算子工程编译

算子kernel侧和host侧实现开发完成后,需要对算子工程进行编译,将自定义算子部署到omg工具中,详细的编译操作包括:

上述编译过程示意图如下。

图1 算子工程编译示意图

编译步骤

  1. 完成工程编译相关配置。

    修改工程目录下的CMakePresets.json cacheVariables的配置项。CMakePresets.json文件内容如下。

    {
        "version": 1,
        "cmakeMinimumRequired": {
            "major": 3,
            "minor": 19,
            "patch": 0
        },
        "configurePresets": [
            {
                "name": "default",
                "displayName": "Default Config",
                "description": "Default build using Unix Makefiles generator",
                "generator": "Unix Makefiles",
                "binaryDir": "${sourceDir}/build_out",
                "cacheVariables": {
                    "CMAKE_BUILD_TYPE": {
                        "type": "STRING",
                        "value": "Release"
                    },
                    "ASCEND_COMPUTE_UNIT": {
                        "type": "STRING",
                        "value": "kirin9020"
                    },
                    "vendor_name": {
                        "type": "STRING",
                        "value": "customize"
                    },
                    "ASCEND_PYTHON_EXECUTABLE": {
                        "type": "STRING",
                        "value": "python3"
                    },
                    "CMAKE_INSTALL_PREFIX": {
                        "type": "PATH",
                        "value": "${sourceDir}/build_out"
                    }
                }
            }
        ]
    }

    表1 需要开发者配置的常用参数列表

    参数名称 参数描述 默认值
    CMAKE_BUILD_TYPE

    编译模式选项,可配置为:

    - “Release”,Release版本,不包含调试信息,编译最终发布的版本。

    - “Debug”,“Debug”版本,包含调试信息,便于开发者开发和调试。

    Release
  2. 在算子工程目录下执行如下命令,进行算子工程编译。

    ./build.sh

    编译成功后,会在当前目录下创建build_out目录,并将build_out目录下生成的自定义算子交付件安装到tools_omg中。

    如果想单独编译算子kernel,可以在算子工程下执行如下命令:

    ./build_devices.sh

    开发者如果需要该编译过程日志存盘,可以使用环境变量ASCENDC_BUILD_LOG_DIR来控制存储路径。

    # 如希望编译日志存储在/home/build_log/,则可以按照如下设置,默认不打开日志存储
    export ASCENDC_BUILD_LOG_DIR=/home/build_log/