docker拉取的pytorch-gpu版找不到cuda和cudnn的位置

本文探讨了从Docker拉取pytorch-gpu镜像后找不到CUDA和cuDNN的情况,并分析了原因。针对runtime版镜像缺少完整CUDA支持的问题,提供了拉取devel版镜像或自行安装CUDA的解决方案。

转自:

 本文链接:docker拉取的pytorch-gpu版找不到cuda和cudnn的位置,为何?_ljp1919的专栏-CSDN博客

问题描述

pytorch 镜像位置:

https://hub.docker.com/r/pytorch/pytorch/tags

拉取镜像:

docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-runtime

查看本地现有镜像清单:
在这里插入图片描述

创建一个容器:

docker run --gpus all -td --name=liujiepeng_pytorch pytorch/pytorch bash

注意:其实这里有两个repository名字相同,tag名不同的版本。可以通过用repository:tag进行区分。

进入容器内部:

docker exec -it liujiepeng_pytorch bash

发现在内部找不到cuda和cudnn的位置?
在这里插入图片描述

可以看出,有CUDA的驱动(10.2),但是找不到lib文件。也没有nvcc。但是在pytorch内部查看cuda版本:
在这里插入图片描述
可以看出cuda版本是10.1,这与拉取的镜像版本一致。

原因分析

究其原因是拉取的镜像是runtime版,所以只有runtime版本的cuda,并没有compiler版。这与安装带有CUDA libs的Pytorch二进制文件类似。Pytorch可以在GPU上运行,但是此时不需要安装完整的CUDA libs,所以也就不能在这个运行环境之外使用nvcc

解决方案

如果拉取dev版:

docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-devel

则可以如下图看到lib文件的位置:

在这里插入图片描述

或者直接自己在容器中安装cuda

在 Xshell 中使用 Docker 命令 PyTorch 镜像是一个常见的操作,主要步骤包括确保 Docker 已安装并正确配置,然后通过 Docker 命令所需的 PyTorch 镜像。以下是详细的操作流程: ### 检查 Docker 是否已安装 在 Xshell 中输入以下命令以检查 Docker 是否已经安装在系统中: ```bash docker --version ``` 如果 Docker 已经安装,将显示 Docker本信息。如果未安装,可以通过以下命令安装 Docker: ```bash sudo apt-get update sudo apt-get install docker.io ``` ### PyTorch Docker 镜像 根据不同的需求,可以选择不同本的 PyTorch 镜像。以下是几个常用的 PyTorch 镜像示例: #### 使用官方 PyTorch 镜像 ```bash docker pull pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel ``` 该镜像包含 CUDA 10.1 cuDNN 7 支持,并且是开发本(devel),适合需要进行 CUDA 编译的项目 [^1]。 #### 使用 NVIDIA 提供的 PyTorch 镜像 ```bash docker pull nvcr.io/nvidia/pytorch:24.12-py3-igpu ``` 该镜像由 NVIDIA 提供,适用于需要 GPU 支持的场景,并且基于 Python 3 集成 GPU 支持 [^2]。 #### 使用第三方提供的 PyTorch 镜像 ```bash docker pull anibali/pytorch:1.7.0-cuda11.0-ubuntu20.04 ``` 该镜像由第三方提供,包含 CUDA 11.0 支持,并且基于 Ubuntu 20.04 系统 [^3]。 ### 运行 PyTorch 容器 镜像后,可以通过以下命令运行容器: ```bash docker run -it --name pytorch_container pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel /bin/bash ``` 该命令将创建一个名为 `pytorch_container` 的容器,并进入容器的交互模式 。 ### 验证镜像容器 可以通过以下命令验证镜像容器是否成功创建: ```bash docker images docker ps ``` `docker images` 命令将列出所有已下载的镜像,而 `docker ps` 命令将列出所有正在运行的容器 [^4]。 ### 示例代码 以下是一个简单的 Python 脚本,用于验证 PyTorch 是否能够正确运行: ```python import torch # 检查 PyTorch 是否能够检测到 GPU if torch.cuda.is_available(): print("CUDA is available!") device = torch.device("cuda") x = torch.randn(1000, 1000, device=device) print(x) else: print("CUDA is not available.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值