1.软件环境⚙️
Windows 10
教育版64位WSL
Ubuntu 20.04 LTSPytorch
1.7.0CUDA
11.0
2.问题描述🔍
因为深度学习的原因,相信很多人都是在一块硬盘上面装双系统,如Windows 10
+Ubuntu 20.04
。
最近懒得重启切换系统,所以装了一个WSL(Windows Subsystem for Linux)
。具体装的是WSL 2
,关于WSL 1
和 WSL 2
之间的主要区别在于,在托管 VM
内使用实际的Linux
内核、支持完整的系统调用兼容性以及跨Linux
和 Windows
操作系统的性能。 WSL 2
是安装Linux
发行版时的当前默认版本,它使用最新最好的虚拟化技术在轻量级实用工具虚拟机 (VM
) 内运行 Linux
内核:
并且WSL2
不用重新装显卡驱动,直接使用Windows 10
自带的驱动就行。安装WSL2
后简单设置并装了必要的包后(如Anaconda
),使用Pytorch
官网给出的指令使用conda
安装:
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
安装过程很顺利一点错都没有报,但在wsl
下使用nvcc -V
却报错没有这个命令:
jayce@DESKTOP-BOJNA8J:~$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
正常情况下应该会显示cuda
的版本,如下(PS:如下命令是在win 10 CMD下使用,返回的是win10独立安装的cuda
):
但nvidia-smi
命令正常:nvidia-smi
命令没问题,证明wsl
能够正确检测到nvidia
的显卡驱动,但nvcc -V
报错,证明我们的wsl
环境里面没有相关的代码。
那这个时候又该怎么办呢?
3.解决方法🐡
经过查阅,发现是conda
方式安装的Pytorch
自带了cuda
,因此不需要我们再独立安装cuda
和cudnn
:
CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。
- 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
- 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。
综上,如果driver API和runtime> API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。
这可太方便了!wsl
节省了安装nvidia
驱动的时间,conda
节省了安装cuda
和cudnn
的时间,这不变成了傻瓜式深度学习环境安装?
为了测试Pytorch
能成功使用GPU,我们实验了如下代码:
>>> import torch
>>> torch.cuda.is_available()
True
>>> print(torch.__version__)
1.7.0
>>> print(torch.version.cuda)
11.0
>>> print(torch.backends.cudnn.version())
8003
>>> print(torch.cuda.nccl.version())
2708
>>> for i in range(torch.cuda.device_count()):
device = torch.device(f"cuda:{i}")
print(f"Device {i}: {torch.cuda.get_device_name(device)}")
print(f"\tGPU设备总内存: {round(torch.cuda.get_device_properties(device).total_memory / 1024 ** 3, 1)} GB")
print(f"\tGPU设备可用内存: {round(torch.cuda.memory_allocated(device) / 1024 ** 3, 1)} GB")
Device 0: NVIDIA GeForce RTX 4090
GPU设备总内存: 24.0 GB
GPU设备可用内存: 0.0 GB
Device 1: Quadro RTX 6000
GPU设备总内存: 24.0 GB
GPU设备可用内存: 0.0 GB
可以看到Pytorch
已经能够正常使用GPU
了!
4.结论🤔
WSL 2
YYDS!!!文章来源:https://www.toymoban.com/news/detail-409948.html
渣男!都看到这里了,还不赶紧点赞
,评论
,收藏
走一波?文章来源地址https://www.toymoban.com/news/detail-409948.html
到了这里,关于电脑装了pytorch没有安装cuda,nvcc -V没反应,但能正常使用gpu的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!