第一章:开发环境搭建——硬件选型与软件配置

做嵌入式AI这几年,我最大的感触就是:环境搭好了,项目就成功了一半。今天咱们就从硬件选型开始,一步步把Jetson Orin NX的开发环境搭起来。

1.1 硬件选型:为什么是Jetson Orin NX?

说实话,市面上能跑大模型的嵌入式设备不少。但我个人习惯首选Jetson Orin NX,原因很简单——它把功耗和性能平衡得恰到好处。

参数 Jetson Orin NX 16GB Jetson Orin NX 8GB
AI算力 70 TOPS 70 TOPS
GPU 1024核 Ampere架构 1024核 Ampere架构
内存 16GB LPDDR5 8GB LPDDR5
功耗 10W - 25W 10W - 25W
价格 约¥4500 约¥3000
我的建议:如果你要跑7B以上的大模型,直接上16GB版本。8GB跑量化后的模型还行,但稍微大一点的模型就捉襟见肘了。我在项目中吃过这个亏,后来全换成了16GB。

你想想看,70 TOPS的算力是什么概念?差不多相当于一块RTX 3060显卡,但功耗只有它的十分之一。这就是Jetson系列最迷人的地方。

1.2 JetPack SDK安装——别踩这些坑

JetPack SDK是NVIDIA官方提供的软件开发包,里面包含了系统镜像、CUDA、cuDNN、TensorRT等全套工具。说白了,它就是Jetson的「全家桶」。

安装方式有两种:

  1. SDK Manager方式(推荐)——图形化界面,一键安装
  2. 手动刷机方式——适合批量部署或网络不好的情况

我个人习惯用SDK Manager,省心。但要注意一点:一定要用Ubuntu 20.04或22.04的主机来运行SDK Manager。我曾经用Windows虚拟机试过,各种驱动问题,折腾了两天才搞定。

核心步骤:

  1. 下载SDK Manager(需要NVIDIA开发者账号)
  2. 选择Jetson Orin NX目标平台
  3. 勾选JetPack 5.1.2(目前最稳定的版本)
  4. 连接Jetson到主机(用USB Type-C线)
  5. 进入恢复模式(按住RECOVERY键再按RESET键)
  6. 开始安装,约30-40分钟
⚠️ 避坑指南:我曾经因为USB线质量不好,刷机到一半就断了。建议用原装线或质量好的USB 3.0线。另外,刷机过程中不要断电,否则可能变砖。

1.3 CUDA/cuDNN/TensorRT环境配置

JetPack安装完成后,CUDA、cuDNN、TensorRT其实已经装好了。但你需要手动配置环境变量,不然系统找不到它们。

检查是否安装成功:

# 检查CUDA版本
nvcc --version

# 检查cuDNN版本
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

# 检查TensorRT版本
dpkg -l | grep TensorRT

嗯,这里要注意:JetPack 5.1.2默认安装的是CUDA 11.8、cuDNN 8.9、TensorRT 8.6。这个组合对大模型推理来说非常成熟。

配置环境变量:

# 编辑.bashrc文件
vim ~/.bashrc

# 在文件末尾添加
export CUDA_HOME=/usr/local/cuda-11.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export TENSORRT_HOME=/usr/lib/python3.8/dist-packages/tensorrt

# 使配置生效
source ~/.bashrc
小技巧:配置完环境变量后,运行nvcc -V看看输出。如果显示版本号,说明CUDA配置成功了。我每次搭新环境都会先跑这个命令,算是「仪式感」吧。

1.4 交叉编译工具链准备

为什么要交叉编译?说白了,就是在你的PC上编译代码,然后放到Jetson上运行。因为Jetson的CPU性能有限,直接在它上面编译大项目会等到你怀疑人生。

安装交叉编译工具链:

# 在PC主机上安装
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

# 验证安装
aarch64-linux-gnu-gcc --version

你想想看,一个LLaMA模型的推理代码,在Jetson上编译可能要20分钟,但在PC上交叉编译只要3分钟。这就是效率差距。

CMake交叉编译配置示例:

# toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
⚠️ 注意:交叉编译时,链接的库必须也是ARM架构的。我曾经直接链接了PC上的x86库,结果放到Jetson上运行时报错「无法加载共享库」。这个坑我踩过,你千万别踩。

1.5 本章知识体系

为了让你更直观地理解整个开发环境的搭建流程,我画了一张图:

嵌入式GPU加速大模型推理——开发环境搭建流程 硬件选型:Jetson Orin NX JetPack SDK安装(SDK Manager / 手动刷机) CUDA / cuDNN / TensorRT 环境配置 环境变量设置 | 版本验证 | 依赖库检查 交叉编译工具链准备(aarch64-gcc) 关键点 算力70 TOPS 功耗10-25W JetPack 5.1.2 CUDA 11.8 cuDNN 8.9 TensorRT 8.6 交叉编译加速 避免x86库链接 环境搭建完成 → 可以开始大模型推理实战了!

这张图把整个流程串起来了。从硬件选型到交叉编译,每一步都有坑,但只要你按部就班来,基本不会出大问题。

说实话,环境搭建这部分看起来琐碎,但它是后续所有工作的基础。我见过太多人因为环境没配好,浪费了好几天时间。所以,耐心一点,把每一步都走扎实了。


公众号:蓝海资料掘金营,微信deep3321