环境搭建:嵌入式开发板选型与基础配置

说实话,做Occupancy网络部署,第一步选板子就挺关键的。我见过不少朋友,模型调得挺好,结果板子选错了,跑起来卡得不行。今天咱们就把这块捋清楚。

开发板选型:为什么我推荐Jetson Orin系列

Occupancy网络说白了,就是对3D空间每个格子做分类或回归。这玩意儿计算量不小。我最早在Jetson Xavier上试过,帧率只有个位数,根本没法用。

后来换了Orin系列,情况就好多了。我个人习惯把Orin分成三个档次:

型号 AI算力 适用场景 我的评价
Orin NX 16GB 100 TOPS 轻量Occupancy网络 性价比之选
Orin NX 8GB 70 TOPS 入门级部署 预算有限可考虑
Orin AGX 64GB 275 TOPS 完整Occupancy网络 一步到位

你想想看,Occupancy网络里那个3D卷积层,特别吃显存。我在AGX上跑过一个8层编码器的模型,显存占用直接飙到12GB。所以我的建议是:能上16GB就别选8GB,不然后面调参你会很痛苦。

核心结论:做Occupancy网络部署,Orin NX 16GB是起步配置。如果预算允许,直接上AGX 64GB,省心。

交叉编译工具链安装

嗯,这里要注意。交叉编译说白了,就是在你的电脑上编译出能在开发板上跑的程序。我刚开始做的时候,直接在板子上编译,那个慢啊...一个模型推理库编译了三个小时。

后来学乖了,老老实实配交叉编译环境。具体步骤是这样的:

  1. 下载L4T(Linux for Tegra)——去NVIDIA官网找对应Orin版本的BSP包
  2. 安装交叉编译器——我一般用gcc-linaro,版本选7.5.0以上
  3. 配置环境变量——把工具链路径加到PATH里

举个例子,我常用的配置脚本:

#!/bin/bash
export CROSS_COMPILE=aarch64-linux-gnu-
export CC=${CROSS_COMPILE}gcc
export CXX=${CROSS_COMPILE}g++
export LD=${CROSS_COMPILE}ld
export AR=${CROSS_COMPILE}ar

# 设置sysroot路径
export SYSROOT=/path/to/l4t/sysroot
export CFLAGS="--sysroot=$SYSROOT"
export CXXFLAGS="--sysroot=$SYSROOT"

我曾经犯过一个低级错误——忘了设置sysroot,结果编译出来的程序在板子上跑起来就报"找不到libc.so.6"。排查了半天,其实就是交叉编译链没指向板子的根文件系统。

我的小技巧:第一次配好环境后,写个简单的hello world交叉编译一下,放到板子上跑通。这一步能帮你快速验证工具链是否正常。

刷机与基础环境配置

刷机这事儿,说难不难,说简单也不简单。我建议用SDK Manager来刷,图形化界面,省心。但如果你跟我一样喜欢命令行,也可以用命令行模式。

刷机的基本流程:

  • 把Orin板子调到恢复模式(按住RECOVERY键再按RESET)
  • 用USB线连到电脑
  • 运行SDK Manager或者手动刷机脚本

刷完之后,第一件事是配置基础环境。我个人习惯按这个顺序来:

  1. 更新系统包——sudo apt update && sudo apt upgrade -y
  2. 安装CUDA和cuDNN——Orin自带JetPack,一般已经装好了,但版本可能不是最新的
  3. 安装TensorRT——这个对Occupancy网络部署至关重要,后面我们会专门讲
  4. 配置Python环境——我推荐用Miniconda,别用系统自带的Python,容易搞乱

注意:Orin的JetPack版本和CUDA版本是绑定的。别自己单独装CUDA,不然驱动和库对不上,你会遇到各种奇怪的问题。我就吃过这个亏,折腾了两天才发现是版本不匹配。

配置完基础环境后,我建议跑一下NVIDIA官方的测试脚本,验证GPU和TensorRT是否正常工作。命令很简单:

# 检查CUDA
nvidia-smi

# 检查TensorRT版本
python3 -c "import tensorrt; print(tensorrt.__version__)"

# 跑个简单的推理测试
trtexec --onnx=test_model.onnx --fp16

如果这些都能跑通,恭喜你,基础环境就搭好了。接下来就可以开始部署Occupancy网络了。

说实话,环境搭建这一步虽然繁琐,但值得花时间做好。我见过太多人急着跑模型,结果环境没配好,后面各种报错,反而更浪费时间。你想想看,是不是这个理?

总结一下:选Orin NX 16GB以上,配好交叉编译工具链,刷机后按顺序配置基础环境。每一步都验证通过再往下走。这样后面部署Occupancy网络的时候,你会感谢现在的自己。