在Jetson设备上部署深度学习环境时,很多开发者第一反应是去NVIDIA官网下载.run安装包。我刚开始用Jetson AGX Orin时也这么干过,结果踩了一堆坑:依赖冲突、驱动不兼容、环境变量混乱...后来发现用APT安装才是真香。这里分享下我的实测对比:
传统手动安装需要:
而APT安装只需要:
bash复制sudo apt-get install cuda-toolkit-11-4
sudo apt-get install libcudnn8
两行命令搞定所有事情,系统自动处理依赖关系,版本绝对匹配当前JetPack。实测在AGX Orin上整个过程不超过10分钟,比传统方法节省80%时间。
首先确认你的Ubuntu版本,Jetson AGX Orin预装的一般是Ubuntu 20.04 L4T:
bash复制lsb_release -a
cat /etc/nv_tegra_release
我用的系统输出是:
code复制No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
# 内核版本
R35 (release), REVISION: 1.0
Jetson系列不能用nvidia-smi,需要装jtop:
bash复制sudo apt-get update
sudo apt-get install python3-pip
sudo -H pip3 install jetson-stats
安装后直接运行:
bash复制jtop
会看到彩色监控界面,这里可以实时查看GPU/CPU状态,也能验证CUDA和cuDNN版本。第一次使用建议按[4]键开启所有监控项。
先查看仓库支持的CUDA版本:
bash复制apt-cache search cuda-toolkit
在AGX Orin上我看到有:
code复制cuda-toolkit-11-4 - NVIDIA CUDA Toolkit 11.4
cuda-toolkit-11-4-config-common - Common config package for CUDA Toolkit 11.4
选择11.4版本安装:
bash复制sudo apt-get install cuda-toolkit-11-4
安装过程约5-8分钟(取决于网络速度),完成后需要配置环境变量。编辑~/.bashrc:
bash复制nano ~/.bashrc
在末尾添加:
bash复制export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-11.4
保存后执行:
bash复制source ~/.bashrc
先查看可用的cuDNN版本:
bash复制apt-cache search libcudnn
输出类似:
code复制libcudnn8 - cuDNN runtime libraries
libcudnn8-dev - cuDNN development libraries
安装runtime和dev版本:
bash复制sudo apt-get install libcudnn8 libcudnn8-dev
如果想指定版本(比如8.6.0):
bash复制sudo apt-get install libcudnn8=8.6.0.*-1+cuda11.4
运行jtop后,在INFO页面可以看到:
code复制CUDA: 11.4
cuDNN: 8.6.0
如果显示正确版本号,说明基础安装成功。
先安装PyTorch for Jetson:
bash复制sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cu116
然后运行测试:
python复制import torch
print(torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('cuDNN version:', torch.backends.cudnn.version())
a = torch.randn(3,3).cuda()
b = torch.randn(3,3).cuda()
c = a + b
print('计算结果:', c)
正常输出应该类似:
code复制2.1.0.dev20230401+cu116
CUDA available: True
cuDNN version: 8600
计算结果: tensor([[ 0.1234, -0.5678, 0.9012],
[ 1.2345, -2.3456, 3.4567]], device='cuda:0')
如果jtop里CUDA/cuDNN版本显示为N/A:
这种情况多是PyTorch版本不匹配导致:
bash复制pip3 uninstall torch
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cu116
虽然APT安装默认绑定当前JetPack版本,但可以通过修改.bashrc切换:
bash复制# CUDA 11.4
export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
# CUDA 10.2
# export PATH=/usr/local/cuda-10.2/bin:$PATH
# export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
注释掉不需要的版本即可。
如果需要旧版cuDNN:
bash复制sudo apt-get install libcudnn8=8.2.1.*-1+cuda11.4
安装后建议重启:
bash复制sudo reboot
在AGX Orin上实测这套方案,从系统安装到完整环境配置不到30分钟。最关键的是完全避开了手动安装的各种坑,特别适合需要快速部署多台设备的场景。如果遇到其他问题,建议先检查JetPack版本是否匹配,这是大部分兼容性问题的根源。