基于x86_64主机Ubuntu18.04配置LibTorch进行C++验证YOLOv8调用CUDA推理识别环境安装调试详细记录

前言:

a. 在ubuntu系统下安装nvidia-driver若不成功,在bios下找到secure boot选项并设为disable关闭;所有操作均在root下进行。

b. LibTorch是PyTorch C++ API,来加载和推理 YOLO模型,ultralytics源码链接:ultralytics/ultralytics: Ultralytics YOLO11 🚀;YOLOv8源码中ultralytics-main\examples\YOLOv8-LibTorch-CPP-Inference中对环境要求如下所示:
在这里插入图片描述
c. LibTorch 的版本和 PyTorch 是对应的,CUDA、Python、PyTorch、torchvision版本对应关系

CUDA Python PyTorch torchvision
cu117,cu118 cp38,cp39,cp310,cp311 2.0.1 0.15.1
cu117,cu118 cp38,cp39,cp310,cp311 2.0.0 0.15.0
cu116,cu117 cp37,cp38,cp39,cp310 1.13.1 0.14.1
cu116,cu117 cp37,cp38,cp39,cp310 1.13.0 0.14.0
cu113,cu116 cp37,cp38,cp39,cp310 1.12.1 0.14.0
cu113,cu116 cp37,cp38,cp39,cp310 1.12.0 0.13.0
cu113,cu115 cp37,cp38,cp39,cp310 1.11.0 0.12.0
cu102,cu111 cu113 cp36,cp37,cp38,cp39 1.10.2 0.11.2
cu102,cu111 cu113 cp36,cp37,cp38,cp39 1.10.1 0.11.1
cu102,cu111 cu113 cp36,cp37,cp38,cp39 1.10.0 0.11.0
cu102,cu111 cp36,cp37,cp38,cp39 1.9.1 0.10.1
cu102,cu111 cp36,cp37,cp38,cp39 1.9.0 0.10.0
cu101,cu102 cu111 cp36,cp37,cp38,cp39 1.8.1 0.9.1
cu101,cu111 cp36,cp37,cp38,cp39 1.8.0 0.9.0

本次配置采用:gcc/g++ 9.4、Cmake-3.31.0、LibTorch-1.13.1、Python-3.8、CUDA-11.7.1、cuDNN-8.8.1.3、Opencv-4.5.5

1. ubuntu18.04 换源

sudo su
vim /etc/apt/sources.list

apt-get update
##清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

2. ubuntu18.04 升级 gcc、g++

add-apt-repository ppa:ubuntu-toolchain-r/test  ## 添加ppa源
apt-get update

apt-get install gcc-9 g++-9


cd /usr/bin/

rm -rf gcc g++
ln -s gcc-9 gcc   ## 重新建立链接
ln -s g++-9 g++


gcc --version   ## 查看版本
g++ --version

### 下载并安装 ONNX Runtime 的方法 要在 Ubuntu 18.04 上下载并安装 ONNX Runtime,可以采用二进制文件的方式或者通过源码编译的方式来完成。以下是具体的操作说明: #### 方法一:使用预构建的二进制文件 可以通过官方发布的预构建二进制文件来快速部署 ONNX Runtime。 1. **更新系统软件包** 首先确保系统的软件包是最新的: ```bash sudo apt update && sudo apt upgrade -y ``` 2. **安装必要的依赖项** 安装 GCC、G++ 编译器以及 Python 工具链: ```bash sudo apt install gcc-8 g++-8 python-pip -y ``` 这些工具对于后续可能涉及的扩展功能非常重要[^1]。 3. **下载 ONNX Runtime 二进制文件** 访问 ONNX Runtime 的 GitHub 发布页面获取最新版本的二进制文件: [https://github.com/microsoft/onnxruntime/releases](https://github.com/microsoft/onnxruntime/releases) 找到适合 Linux 平台的 `.tar.gz` 文件(通常是 `onnxruntime-linux-x64-*version*.tgz`),然后将其解压至目标目录: ```bash wget https://github.com/microsoft/onnxruntime/releases/download/v*.*.**/onnxruntime-linux-x64-*.*.*.tgz tar -xzvf onnxruntime-linux-x64-*.*.*.tgz -C /usr/local/ ``` 4. **验证安装** 解压完成后,可以在 `/usr/local/lib` 中找到动态库文件 `libonnxruntime.so`,并通过以下方式测试其可用性: ```bash ldd /usr/local/lib/libonnxruntime.so ``` --- #### 方法二:从源码编译 ONNX Runtime 如果需要自定义选项或支持特定硬件加速,则可以选择从源码编译。 1. **克隆 ONNX Runtime 源码仓库** 使用 Git 将 ONNX Runtime 的源码拉取下来: ```bash git clone https://github.com/microsoft/onnxruntime.git cd onnxruntime ``` 2. **安装 CMake 和其他必要工具** 默认情况下,Ubuntu 18.04 提供的 CMake 版本较低 (3.10),因此需要手动升级到更高版本。例如,安装 CMake 3.26.4 可按以下步骤执行: - 下载对应版本的压缩包: ```bash wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.tar.gz tar -xf cmake-3.26.4-linux-x86_64.tar.gz ``` - 创建软链接以便全局调用: ```bash ln -sf $(pwd)/cmake-3.26.4-linux-x86_64/bin/* /usr/bin/ ``` 3. **设置编译参数** 在根目录运行脚本来生成 Makefile 或 Ninja 构建文件: ```bash ./build.sh --config Release --use_openmp --parallel ``` 如果需要 GPU 支持,可加入额外标志 `--use_cuda`[^4]。 4. **完成编译与安装** 成功编译后,ONNX Runtime 库会被放置于 `./build/Linux/Release/` 路径下。将这些文件复制到标准路径即可: ```bash cp build/Linux/Release/*.so /usr/local/lib/ ldconfig ``` --- #### 测试 ONNX Runtime 功能 为了确认 ONNX Runtime 是否正常工作,可以用简单的 C++ 程序加载模型并推理。以下是一个示例代码片段: ```cpp #include "onnxruntime_cxx_api.h" #include <iostream> int main() { Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test"); Ort::SessionOptions session_options; Ort::Session session(env, "./model.onnx", session_options); std::vector<int64_t> input_node_dims{1, 3, 224, 224}; size_t tensor_size = 1 * 3 * 224 * 224; float* float_array = new float[tensor_size]; memset(float_array, 0, sizeof(float) * tensor_size); Ort::Value input_tensor = Ort::Value::CreateTensor<float>(input_node_dims.data(), float_array, tensor_size, allocator_info); const char* input_names[] = {"images"}; const char* output_names[] = {"output"}; auto output_tensors = session.Run( Ort::RunOptions{}, input_names, &input_tensor, 1, output_names, 1); delete[] float_array; } ``` 上述程序展示了如何初始化环境、创建张量输入数据,并最终获得预测结果[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值