Linux下的onnx runtime安装(C++)与环境配置

  1. 在onnxruntime的github下载对应的源码,版本不要太新,下载时要加上git --recursive,否则会导致有些包缺失。
    git clone --branch v1.5.2 --recursive https://gitee.com/lee-zq/onnxruntime.git
    
  2. 根据runtime的版本安装对应的cuda和cudnn。版本不对应会报错
  3. 设置环境变量为所用的cuda:
export LD_LIBRARY_PATH=/data1/env/cuda-11.4/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:/data1/env/cuda-11.4/bin:$PATH

 运行runtime文件夹下的make.sh,

./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda-11.3 --cudnn_home /usr/local/cuda-11.3

在CMakeList.txt中添加对应的依赖:

set(LIBONNX_PATH "/home/onnx/onnxruntime/build/Linux/RelWithDebInfo")
file(GLOB ONNX_LIBS "${LIBONNX_PATH}/*.so")

include_directories(
    include
)

### 配置ONNX Runtime用于C++开发 #### 设置环境变量 为了方便后续操作,在`.bashrc`文件中添加ONNXRuntime库路径到系统的动态链接器运行时绑定路径。这可以通过编辑用户的`.bashrc`文件并加入如下行来实现[^3]: ```shell export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/onnxruntime/lib/ ``` #### 创建项目结构 创建一个新的工作目录,并在此基础上构建项目的源码树形结构。通常情况下,会有一个根级别的`src`文件夹放置所有的cpp源代码以及一个名为`include`的文件夹存放头文件。 #### 编写CMakeLists.txt 对于基于CMake管理的工程来说,应当编写一份合适的`CMakeLists.txt`以便于自动化处理编译过程。下面是一个简单的例子: ```cmake cmake_minimum_required(VERSION 3.10) project(InferProject VERSION 1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) add_compile_options(-std=c++14) # 设定ONNXRuntime的位置 set(LIBONNX_PATH "/home/user/path_to_onnxruntime_build") # 添加所有.so共享对象作为目标链接项 file(GLOB ONNX_LIBS "${LIBONNX_PATH}/lib/*.so") foreach(lib ${ONNX_LIBS}) message(STATUS "Found library: ${lib}") endforeach() # 将ONNXRuntime包含目录加入全局搜索路径 target_include_directories(${PROJECT_NAME} PRIVATE ${LIBONNX_PATH}/include) # 定义可执行程序及其源文件列表 add_executable(infer src/infer.cpp) # 连接所需的库 target_link_libraries(infer ${ONNX_LIBS}) ``` #### 编译命令 完成上述准备工作之后,可以利用g++来进行实际编译。这里给出了一条完整的编译指令示例,其中指定了输入源文件、输出二进制名称、要链接的外部库位置以及其他必要的参数[^1]: ```shell g++ infer.cpp -o infer /usr/local/lib/libonnxruntime.so -I/usr/local/include/ -std=c++11 ``` 请注意这里的路径应替换为实际环境中对应的具体地址。 #### 测试验证 最后一步是对生成的应用程序进行测试以确认其能否正常加载模型并作出预测。如果一切顺利,则说明已经成功完成了ONNX RuntimeLinux平台上的部署集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值