第一章:开发环境搭建——硬件选型与软件配置
做嵌入式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 |
你想想看,70 TOPS的算力是什么概念?差不多相当于一块RTX 3060显卡,但功耗只有它的十分之一。这就是Jetson系列最迷人的地方。
1.2 JetPack SDK安装——别踩这些坑
JetPack SDK是NVIDIA官方提供的软件开发包,里面包含了系统镜像、CUDA、cuDNN、TensorRT等全套工具。说白了,它就是Jetson的「全家桶」。
安装方式有两种:
- SDK Manager方式(推荐)——图形化界面,一键安装
- 手动刷机方式——适合批量部署或网络不好的情况
我个人习惯用SDK Manager,省心。但要注意一点:一定要用Ubuntu 20.04或22.04的主机来运行SDK Manager。我曾经用Windows虚拟机试过,各种驱动问题,折腾了两天才搞定。
核心步骤:
- 下载SDK Manager(需要NVIDIA开发者账号)
- 选择Jetson Orin NX目标平台
- 勾选JetPack 5.1.2(目前最稳定的版本)
- 连接Jetson到主机(用USB Type-C线)
- 进入恢复模式(按住RECOVERY键再按RESET键)
- 开始安装,约30-40分钟
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)
1.5 本章知识体系
为了让你更直观地理解整个开发环境的搭建流程,我画了一张图:
这张图把整个流程串起来了。从硬件选型到交叉编译,每一步都有坑,但只要你按部就班来,基本不会出大问题。
说实话,环境搭建这部分看起来琐碎,但它是后续所有工作的基础。我见过太多人因为环境没配好,浪费了好几天时间。所以,耐心一点,把每一步都走扎实了。
公众号:蓝海资料掘金营,微信deep3321