You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Jetson AGX Orin(JetPack6.2) Docker中PyTorch无法访问CUDA/GPU求助

Jetson AGX Orin Docker中PyTorch无法访问GPU的排查与解决

不需要急着降级JetPack 6.2,优先排查以下配置问题:

1. 验证NVIDIA容器工具包配置是否生效

  • 检查Docker守护进程配置文件 /etc/docker/daemon.json,确保包含以下内容:
    {
      "runtimes": {
        "nvidia": {
          "path": "nvidia-container-runtime",
          "runtimeArgs": []
        }
      },
      "default-runtime": "nvidia"
    }
    
  • 重启Docker服务使配置生效:
    sudo systemctl restart docker
    
  • 运行测试容器验证GPU识别:
    docker run --rm --runtime=nvidia nvidia/cuda:12.4.0-base-ubuntu20.04 nvidia-smi
    
    如果能正常输出GPU信息,说明容器工具包配置正常;否则需要重新安装适配Jetson arm64架构的NVIDIA容器工具包。

2. 确保PyTorch版本与JetPack 6.2(CUDA 12.4)匹配

  • 容器中必须安装适配arm64架构且支持CUDA 12.4的PyTorch版本,不要使用x86架构的包。执行以下命令安装:
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
    
  • 安装后验证CUDA版本匹配:
    import torch
    print(torch.version.cuda)  # 应输出12.4
    
    若版本不匹配,卸载现有PyTorch后重新安装对应版本。

3. 调整容器启动参数

  • 新版本Docker推荐使用--gpus all替代--runtime=nvidia,尝试修改启动命令:
    docker run -it --gpus all -e NVIDIA_VISIBLE_DEVICES=all your-image-name
    
  • 进入容器后先运行nvidia-smi,若无法识别GPU,说明容器与主机的NVIDIA runtime通信异常;若nvidia-smi正常,问题则出在PyTorch配置。

4. 确认主机环境正常

  • 在主机上执行nvidia-sminvcc -V,验证CUDA 12.4工作正常。
  • 在主机上运行PyTorch测试代码:
    import torch
    print(torch.cuda.is_available())  # 应返回True
    
    若主机环境异常,先修复主机的JetPack/CUDA配置,再排查容器问题。

5. 使用JetPack适配的基础镜像

  • 优先选择NVIDIA官方提供的Jetson专用基础镜像,比如对应JetPack 6.2的nvcr.io/nvidia/l4t-base:r36.3.0,该镜像预装了适配的CUDA环境,兼容性更强,避免使用x86架构的Ubuntu镜像。

内容的提问来源于stack exchange,提问作者MIN WU

火山引擎 最新活动