当前位置: 首页 > news >正文

在 NVIDIA Orin (JetPack 6.0) 上安装 PyTorch 2.4 + Torchvision 0.19

在 NVIDIA Orin (JetPack 6.0) 上安装 PyTorch 2.4 + Torchvision 0.19 (含 CUDA 支持)

教程:在 NVIDIA Orin (JetPack 6.0) 上安装 PyTorch 2.4 + Torchvision 0.19 (含 CUDA 支持)

背景:

目标平台: NVIDIA Jetson Orin 系列设备
操作系统: Ubuntu 22.04 (aarch64)
JetPack 版本: JetPack 6.0 (L4T R36.x)
CUDA 版本: 12.2
目标: 在 Miniconda 环境 (Python 3.10) 中安装兼容的、支持 CUDA 的 PyTorch 和 Torchvision,用于运行多模态等深度学习模型。

遇到的主要困难 (踩坑记录):

在尝试为 JetPack 6.0 安装最新的 PyTorch (特别是 2.4.0a0 夜间构建版) 时,我们遇到了以下典型问题:

Torchvision 缺失: NVIDIA 官方为 JP6 提供的 PyTorch 索引 (https://developer.download.nvidia.com/compute/redist/jp/v60/pytorch/) 中,常常只包含 torch 的 wheel 文件,而缺少配套的 torchvision 和 torchaudio 文件。这导致无法通过简单的 pip install torchvision --extra-index-url … 来安装。
版本不兼容导致运行时错误: 即便尝试从源码编译 torchvision (例如 v0.19.0 版本),如果 PyTorch 版本 (如 nv24.07 或 nv24.05 构建版) 与之不完全匹配,会在导入 torchvision 时出现运行时错误,例如我们遇到的 RuntimeError: operator torchvision::nms does not exist,或者论坛中其他人遇到的 AttributeError: … ‘register_fake’、‘set_python_module’ 等。这表明库内部的 C++/CUDA 接口不匹配。
CPU-Only 安装: 在尝试安装看似版本号匹配的组合 (如 PyTorch 2.3.1 + Torchvision 0.18.1) 时,如果 pip 没有正确地从 NVIDIA 源获取到 CUDA 版本的 wheel,可能会错误地安装成 CPU-only 的 PyTorch,导致 torch.cuda.is_available() 返回 False。

最终成功的解决方案 (基于 NVIDIA 论坛官方人员指导): 参考论坛链接: https://forums.developer.nvidia.com/t/compiling-torchvision-0-19-0-for-torch-2-4-0a0-07cecf4168-nv24-05-14710581/306300

经过多次尝试和参考 NVIDIA 开发者论坛 (参考帖子链接),最终发现一个可行的组合是安装特定版本的 PyTorch 夜间构建版 (nv24.06),并配合特定依赖 (cuSPARSELt),然后从源码编译特定 tag 的 torchvision (v0.19.0)。

详细安装步骤:

第 1 步:环境准备 (Miniconda + Python 3.10)

下载 Miniconda (aarch64):
Bash

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
安装 Miniconda:
Bash

bash Miniconda3-latest-Linux-aarch64.sh
同意许可,确认路径,并在询问是否 conda init 时输入 yes。
关闭并重新打开终端,或运行 source ~/.bashrc。
创建并激活 Conda 环境: (我们使用 lkalert 作为环境名,你可以自定义)
Bash

conda create -n lkalert python=3.10 -y
conda activate lkalert
更新 pip:
Bash

pip install --upgrade pip
第 2 步:清理旧环境 (如果之前有安装尝试)

Bash

pip uninstall torch torchvision torchaudio -y

删除可能残留的源码文件夹

cd ~
rm -rf ~/Downloads/vision ~/Downloads/torchvision
第 3 步:安装特定 PyTorch 版本 (nv24.06)

使用 NVIDIA 论坛帖子中 AastaLLL 提供的精确 URL:

Bash

pip install --no-cache https://developer.download.nvidia.com/compute/redist/jp/v60/pytorch/torch-2.4.0a0+f70bd71a48.nv24.06.15634931-cp310-cp310-linux_aarch64.whl
第 4 步:安装关键依赖 cuSPARSELt

这个库对于某些操作的兼容性似乎很重要。

Bash

下载 cuSPARSELt 仓库定义文件

wget https://developer.download.nvidia.com/compute/cusparselt/0.6.2/local_installers/cusparselt-local-tegra-repo-ubuntu2204-0.6.2_1.0-1_arm64.deb

安装仓库定义

sudo dpkg -i cusparselt-local-tegra-repo-ubuntu2204-0.6.2_1.0-1_arm64.deb

复制密钥环

sudo cp /var/cusparselt-local-tegra-repo-ubuntu2204-0.6.2/cusparselt-*-keyring.gpg /usr/share/keyrings/

更新 apt 列表

sudo apt-get update

安装 cuSPARSELt 库和开发文件

sudo apt-get install -y libcusparselt0 libcusparselt-dev

(可选) 清理下载的 .deb 文件

rm cusparselt-local-tegra-repo-ubuntu2204-0.6.2_1.0-1_arm64.deb
第 5 步:安装 Torchvision 构建依赖

Bash

sudo apt-get install -y cmake libjpeg-dev zlib1g-dev libpng-dev build-essential git
第 6 步:克隆、检出并构建 Torchvision v0.19.0

严格按照 AastaLLL 的步骤,特别是 git checkout 和 setup.py install 命令。

克隆仓库:
Bash

cd ~/Downloads # 或者你选择的其他路径
git clone https://github.com/pytorch/vision.git torchvision
cd torchvision/
检出 v0.19.0 标签:
Bash

git checkout v0.19.0
构建并安装 (使用论坛命令):
Bash

python3 setup.py install --user
注意:–user 会将包安装到 ~/.local/lib/python3.10/site-packages/。这通常也能在 Conda 环境中被找到并使用。
第 7 步:验证安装

确保不在源码目录中:
Bash

cd ~
运行验证脚本:
Bash

python -c $‘import torch\nimport torchvision\n\nprint(f"— Verification —“)\nprint(f"PyTorch Version: {torch.version}”)\nprint(f"Torchvision Version: {torchvision.version}“)\n\ncuda_available = torch.cuda.is_available()\nprint(f"CUDA Available: {cuda_available}”)\n\nif cuda_available:\n print(f"CUDA Version (PyTorch): {torch.version.cuda}“)\n try:\n gpu_name = torch.cuda.get_device_name(0)\n print(f"GPU Name: {gpu_name}”)\n # Perform a tiny CUDA operation\n tensor_gpu = torch.randn(1, device=“cuda:0”)\n print(f"CUDA device functional: True (Tensor created on {tensor_gpu.device})“)\n except Exception as e:\n print(f"CUDA device functional: False (Error: {e})”)\nelse:\n print(“CUDA not available, skipping device tests.”)\nprint(f"--------------------")’
成功的验证输出应类似于:

— Verification —
PyTorch Version: 2.4.0a0+f70bd71a48.nv24.06…
Torchvision Version: 0.19.0a0+…
CUDA Available: True
CUDA Version (PyTorch): 12.2
GPU Name: Orin
CUDA device functional: True (Tensor created on cuda:0)

总结:

在 Jetson Orin (JetPack 6.0) 上安装最新的 PyTorch 夜间构建版和对应的 Torchvision 可能需要精确的版本匹配和特定的依赖。通过参考 NVIDIA 官方论坛并严格遵循 AastaLLL 提供的针对 PyTorch nv24.06 构建版和 Torchvision v0.19.0 的步骤(包括安装 cuSPARSELt),我们最终成功配置了支持 CUDA 的环境。

相关文章:

  • App爬虫工具篇-mitmproxy
  • GpuGeek:以弹性算力与全栈服务赋能产业智能升级
  • 关于团结引擎打包、或者项目出错并且崩溃
  • Linux中查询进程服务,通过端口方式关闭
  • MySQL中根据binlog日志进行恢复
  • TCP三次握手与四次挥手面试回答版本
  • 【Linux】用户权限
  • PostgreSQL 常用日志
  • Python数据分析与机器学习实战:从数据到洞察的完整路径
  • Java中常见API的分类概述及示例
  • Python爬虫实战:获取xie程网近两周长沙飞敦煌机票数据,为51出行做参考
  • Go语言中 defer 使用场景及深度注意事项指南
  • 如何应对政策变化导致的项目风险
  • 【Linux】静态库 动态库
  • Python 设计模式:访问者模式
  • AI+直播电商:短视频商城APP开发如何实现智能化推荐?
  • element-ui、element-plus表单resetFields()无效的坑
  • el-date-picker时间范围 赋值报错问题
  • [创业之路-378]:企业法务 - 企业经营中有哪些触发刑法的风险?如何预防?
  • 雪花算法(JAVA单例不用修改版)
  • “80后”保利文化集团董事长王波挂职哈尔滨副市长,负责文旅、招商
  • 人民日报聚焦外贸“重镇”福建晋江:多元化布局扩大“朋友圈”
  • 商务部:新一轮服务业扩大开放一次性向11个试点省市全面铺开
  • 上海又现昆虫新物种:体长仅1.5毫米,却是凶猛的捕食者
  • 第一集|《蛮好的人生》蛮好,《悬镜》挺玄
  • 竹子砍了地却种不上,贵州赤水被指“整改复耕”存形式主义