
1. 环境准备认识Jetson Nano的特殊性Jetson Nano作为一款搭载ARM架构的嵌入式AI计算设备与普通x86电脑有着本质区别。我第一次拿到这块开发板时发现它虽然只有信用卡大小却内置了128核Maxwell架构GPU支持CUDA加速。这种硬件特性让它特别适合部署轻量级AI模型但同时也带来了环境搭建的独特挑战。最核心的问题在于软件生态。市面上大多数深度学习框架都是为x86架构优化的比如PyTorch官方提供的预编译包就不支持ARM架构。我刚开始尝试直接用pip install torch命令安装结果发现只能装到CPU版本完全无法调用GPU。后来查阅Nvidia官方文档才知道必须使用专门为Jetson系列定制的PyTorch版本。另一个关键点是Python版本兼容性。目前Nvidia官方提供的GPU版PyTorch仅支持Python 3.6这导致很多现代Python特性无法使用。我在测试时发现如果用conda创建了Python 3.7或更高版本的环境安装的PyTorch将无法正常调用CUDA。因此环境搭建的第一步就是要确保Python版本的正确选择。2. 系统镜像烧录与基础配置2.1 镜像下载与烧录实操从Nvidia官网下载的JetPack镜像已经预装了CUDA 10.2、cuDNN等核心组件。我推荐使用balenaEtcher进行烧录这个工具跨平台且操作简单。不过要注意几个细节下载的压缩包不要解压直接选择.zip文件进行烧录如果遇到something went wrong错误大概率是下载文件损坏需要重新下载建议使用至少32GB的高速SD卡我实测16GB卡在后续安装依赖时容易空间不足烧录完成后首次启动系统会进行初始化配置。这里建议选择最大性能模式通过命令sudo nvpmodel -m 0 sudo jetson_clocks这样可以解锁全部计算能力代价是功耗和发热会增加记得做好散热措施。2.2 系统组件验证系统预装的CUDA环境需要手动配置PATH。我习惯把这些配置写在~/.bashrc里export PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH export CUDA_ROOT/usr/local/cuda配置完成后可以通过nvcc -V验证CUDA版本用nvidia-smi查看GPU状态。如果看到类似下面的输出说明基础环境正常----------------------------------------------------------------------------- | NVIDIA-SMI 455.23.05 Driver Version: 455.23.05 CUDA Version: 10.2 | |---------------------------------------------------------------------------3. Archiconda环境搭建详解3.1 为什么选择ArchicondaAnaconda在ARM架构上无法运行这是我踩的第一个坑。Archiconda是专为ARM64设计的Conda替代品我从GitHub下载了最新版本当前是3.1.0。安装后需要添加环境变量export PATH~/archiconda3/bin:$PATH创建环境时要特别注意Python版本限制conda create -n pytorch_env python3.6这个环境名称pytorch_env可以自定义但Python版本必须严格指定3.6。3.2 换源加速技巧国内用户强烈建议更换apt和pip源。我测试下来清华源最稳定配置方法如下对于apt源编辑/etc/apt/sources.list文件内容替换为deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse对于pip源创建~/.pip/pip.conf文件[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn换源后执行sudo apt update sudo apt upgrade更新系统速度会快很多。4. PyTorch GPU版安装实战4.1 版本匹配关键点首先需要确认JetPack版本通过jtop工具可以直观查看。不同JetPack版本对应不同的PyTorch版本我当前使用的是JetPack 4.6对应PyTorch 1.8.0。下载地址在Nvidia开发者论坛可以找到注意要选择带有l4t标签的版本。安装命令示例pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl安装完成后在Python中测试import torch print(torch.cuda.is_available()) # 应该返回True4.2 解决核心转储问题测试时可能会遇到非法指令核心已转储错误这是ARM架构特有的问题。解决方法是在~/.bashrc中添加export OPENBLAS_CORETYPEARMV8然后执行source ~/.bashrc使配置生效。这个设置告诉系统使用ARMv8指令集避免指令不兼容。4.3 torchvision安装技巧torchvision需要单独安装且版本必须与PyTorch严格匹配。我找到的最可靠来源是Qengineering提供的预编译版本。安装示例pip install torchvision-0.9.0-cp36-cp36m-linux_aarch64.whl安装后测试from torchvision import models resnet18 models.resnet18().cuda() # 应该能正常创建模型5. 开发环境优化建议5.1 VS Code ARM版配置官方VS Code不支持ARM架构但社区维护的Code-OSS版本可以运行。安装命令sudo dpkg -i code-oss_1.32.3-arm64.deb安装后需要配置Python插件和Jupyter支持。我推荐安装以下扩展PythonPylanceJupyter5.2 性能调优技巧Jetson Nano内存有限建议做一些优化sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile这创建一个4GB的交换空间能有效缓解内存不足问题。还可以安装jtop监控工具sudo pip install jetson-stats运行jtop可以实时查看CPU/GPU使用率、温度和内存情况。6. 常见问题解决方案6.1 安装过程中的典型错误问题1pip install时报错Could not find a version that satisfies the requirement原因PyPI上没有ARM架构的预编译包解决必须使用Nvidia提供的.whl文件本地安装问题2import torch时报错undefined symbol原因CUDA环境变量配置不正确解决检查LD_LIBRARY_PATH是否包含CUDA库路径6.2 模型部署注意事项实测发现不是所有PyTorch模型都能在Jetson Nano上流畅运行。我有几个实用建议尽量使用量化后的模型减少内存占用避免使用太大batch size建议从1开始逐步增加使用torch.jit.trace将模型转为脚本模式能提升推理速度7. 实际项目测试体验我用ResNet18做了图像分类测试对比CPU和GPU模式CPU推理时间约450ms/张GPU推理时间约120ms/张虽然比不上高端显卡但相比纯CPU已经有明显提升。对于实时性要求不高的边缘应用完全够用。温度方面持续满载时GPU温度会升到70℃左右建议加装散热风扇。内存管理是个挑战。我发现在加载较大模型时容易出现OOM错误这时可以尝试torch.cuda.empty_cache()及时清空缓存能缓解内存压力。另外建议将数据预处理放在CPU上完成减少GPU内存占用。