环境搭建:嵌入式开发板选型与基础配置
说实话,做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,省心。
交叉编译工具链安装
嗯,这里要注意。交叉编译说白了,就是在你的电脑上编译出能在开发板上跑的程序。我刚开始做的时候,直接在板子上编译,那个慢啊...一个模型推理库编译了三个小时。
后来学乖了,老老实实配交叉编译环境。具体步骤是这样的:
- 下载L4T(Linux for Tegra)——去NVIDIA官网找对应Orin版本的BSP包
- 安装交叉编译器——我一般用gcc-linaro,版本选7.5.0以上
- 配置环境变量——把工具链路径加到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或者手动刷机脚本
刷完之后,第一件事是配置基础环境。我个人习惯按这个顺序来:
- 更新系统包——
sudo apt update && sudo apt upgrade -y - 安装CUDA和cuDNN——Orin自带JetPack,一般已经装好了,但版本可能不是最新的
- 安装TensorRT——这个对Occupancy网络部署至关重要,后面我们会专门讲
- 配置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网络的时候,你会感谢现在的自己。