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识别:
如果能正常输出GPU信息,说明容器工具包配置正常;否则需要重新安装适配Jetson arm64架构的NVIDIA容器工具包。docker run --rm --runtime=nvidia nvidia/cuda:12.4.0-base-ubuntu20.04 nvidia-smi
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版本匹配:
若版本不匹配,卸载现有PyTorch后重新安装对应版本。import torch print(torch.version.cuda) # 应输出12.4
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-smi和nvcc -V,验证CUDA 12.4工作正常。 - 在主机上运行PyTorch测试代码:
若主机环境异常,先修复主机的JetPack/CUDA配置,再排查容器问题。import torch print(torch.cuda.is_available()) # 应返回True
5. 使用JetPack适配的基础镜像
- 优先选择NVIDIA官方提供的Jetson专用基础镜像,比如对应JetPack 6.2的
nvcr.io/nvidia/l4t-base:r36.3.0,该镜像预装了适配的CUDA环境,兼容性更强,避免使用x86架构的Ubuntu镜像。
内容的提问来源于stack exchange,提问作者MIN WU




