
1. 环境准备系统检测与依赖安装第一次拿到NVIDIA Jetson Orin开发板时我像大多数开发者一样迫不及待想跑个PyTorch模型试试性能。但现实很快给我上了一课——这个基于ARM架构的嵌入式平台和普通x86服务器的环境配置完全是两回事。下面这些坑我都替你踩过了跟着操作能省下至少3小时折腾时间。先确认你的系统版本这个步骤很多人会忽略结果导致后续安装的PyTorch版本不兼容。在终端执行cat /etc/nv_tegra_release你会看到类似这样的输出# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023重点看R35这个版本号它决定了你应该选择哪个版本的PyTorch。我遇到过有人拿着JetPack 4.6的安装包往JetPack 5.1上装结果浪费半天时间排查兼容性问题。安装基础依赖时建议先更新软件源再批量安装sudo apt update sudo apt install -y \ libopenblas-base \ libopenmpi-dev \ libjpeg-dev \ zlib1g-dev \ libpython3-dev \ libavcodec-dev \ libavformat-dev \ libswscale-dev这些依赖包的作用很有意思libopenblas-base是矩阵运算加速库PyTorch的张量操作会用到libjpeg-dev和zlib1g-dev是图像处理的基础库装TorchVision时必须要有。有次我偷懒没装全结果import torchvision时直接段错误排查了半天才发现缺了这些底层依赖。2. PyTorch安装选对版本是关键在Jetson Orin上安装PyTorch就像玩拼图——必须找到严丝合缝匹配的版本。官方论坛有个隐藏的宝藏页面整理了所有适配JetPack的PyTorch预编译包wget https://nvidia.box.com/shared/static/ssfup6tyowjz5c21k37aip8pjyc2i2v6.whl -O torch-2.1.0-cp38-cp38-linux_aarch64.whl下载完成后别急着安装先做两件事检查文件名中的cp38这表示需要Python 3.8环境确认whl文件完整我遇到过下载中断的情况sha256sum torch-2.1.0-cp38-cp38-linux_aarch64.whl安装时有个小技巧先装numpy再装PyTorch能避免某些奇怪的依赖冲突pip3 install numpy torch-2.1.0-cp38-cp38-linux_aarch64.whl曾经有次我直接安装PyTorch结果numpy自动升级到最新版导致其他科学计算库全部崩掉。后来学乖了在Jetson这种嵌入式环境里一定要控制好依赖版本。3. TorchVision编译版本匹配的艺术PyTorch和TorchVision就像一对情侣版本不匹配就会闹脾气。官方推荐对照表要牢记PyTorch 2.1.x 对应 TorchVision 0.16.xPyTorch 2.0.x 对应 TorchVision 0.15.x编译TorchVision的过程像在煮咖啡——步骤简单但细节决定成败git clone --branch v0.16.0 https://github.com/pytorch/vision torchvision cd torchvision export BUILD_VERSION0.16.0 pip3 install .这里有个隐藏坑点如果网络不好git clone超时可以试试在Gitee上找镜像仓库。我实测编译过程大概要15-20分钟Orin的12核ARM Cortex-A78AE表现不错比之前用的Xavier快不少。编译时如果报错找不到torch库大概率是Python环境问题。可以用这个命令检查PyTorch是否被正确识别python3 -c import torch; print(torch.__version__)4. 环境验证CUDA的终极测试装完环境不验证就像买了保险不签收——心里总不踏实。运行这个全能测试脚本import torch print(PyTorch版本:, torch.__version__) print(CUDA可用:, torch.cuda.is_available()) print(设备名:, torch.cuda.get_device_name(0) if torch.cuda.is_available() else None) x torch.rand(2,2).cuda() print(GPU测试成功 if torch.cuda.is_available() else CPU模式)理想情况下你应该看到PyTorch版本: 2.1.0 CUDA可用: True 设备名: NVIDIA Jetson Orin GPU测试成功如果CUDA显示不可用先检查CUDA驱动版本dpkg -l | grep cudaJetson Orin通常预装的是CUDA 11.4与PyTorch 2.1是兼容的。我遇到过显示False的情况重启设备后就正常了——看来Linux的硬件检测也需要热身。最后来个真正的压力测试——用512x512矩阵做10万次乘法import time start time.time() for _ in range(100000): torch.mm(torch.rand(512,512).cuda(), torch.rand(512,512).cuda()) print(f耗时: {time.time()-start:.2f}秒)我的Orin Nano跑下来大约28秒相比纯CPU模式快了近15倍。这个测试能真实反映你的CUDA环境是否在最佳状态。