鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

ONNX Runtime集成KONNX

ONNX Runtime集成KONNX使能鲲鹏算子加速,本章节提供ONNX Runtime集成KONNX的方法。

KONNX不提供公开开发接口,故不作接口说明。

环境要求

表1 软件要求

项目

版本

说明

下载地址

ONNX Runtime

1.19.2

ONNX Runtime官方开源代码,版本1.19.2。

获取链接

konnx.patch

1.0.0

鲲鹏BoostKit基于鲲鹏920系列处理器对ONNX Runtime的算子优化补丁文件。

获取链接

适配步骤

  1. 请参见《ONNX Runtime 移植指南》“获取源码”章节获取ONNX Runtime源码包
  2. 获取ONNX Runtime的补丁文件。
    1. 请参见表1下载ONNX Runtime补丁文件konnx.patch。
    2. 将补丁文件konnx.patch上传至服务器“/path/to/ONNX_Runtime”目录下。
  3. 进入“/path/to/ONNX_Runtime/onnxruntime-1.19.2”目录。
    1
    cd /path/to/ONNX_Runtime/onnxruntime-1.19.2
    
  4. 初始化仓库。
    1
    2
    3
    git init
    git add .
    git commit -m "code init"
    
  5. 合入konnx.patch补丁文件到仓库中。
    1
    git apply ../konnx.patch
    
  6. 查看是否有如下图所示文件内容更改,若有,则合入补丁成功。
    1
    2
    git add .
    git status
    

  7. 请参见《ONNX Runtime 移植指南》“编译安装源码”章节编译并安装ONNX Runtime。

适配后验证

ONNX Runtime编译安装完成后,为了对其进行运行和验证,请使用ONNX Runtime官方提供的单元测试执行程序onnxruntime_test_all。它会在CMake编译过程中自动构建,运行框架内部所有的自动化测试用例,用于验证核心算子、执行器、序列化/反序列化、模型加载、硬件加速器集成等多个模块的功能与正确性。

  1. 设置环境变量。
    export ONNX_INTRA_NUM=6 
    export ONNX_INTER_NUM=6 
    • ONNX_INTRA_NUM:模型内部并行线程数,控制一个算子内部的多线程并行。
    • ONNX_INTER_NUM:模型级并行线程数,控制多个算子之间的并发执行。

    线程数可根据需要自行设置。

  2. 进入“/path/to/ONNX_Runtime/build/RelWithDebInfo”目录。
    cd /path/to/ONNX_Runtime-1.19.2/build/RelWithDebInfo
  3. 执行以下命令以运行ONNX Runtime的公开UT测试onnxruntime_test_all。
    ./onnxruntime_test_all

    回显如下,测试程序运行无报错,则完成ONNX Runtime的验证。