找了很多方法
在社区找了很多方法,结果在b站评论区找到了一个方法给解决了
原本一开始有人说是驱动版本问题
我nvcc -V是ok的,但是nvidia-smi一直报错,Command ‘nvidia-smi’ not found, but can be installed with:
解决
cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi
chmod ogu+x /usr/bin/nvidia-smi
在wsl2中运行这两个语句,再输入nvidia-smi,成功了
分割线
回头会把这个文章的格式啥的做一下,现在先已自己工作为主。
上面是我4.20搞的,现在换了一台配置更好的电脑,如今又得重新配,发现配这个真的比较折磨,所以决定写清楚一点,这样的话我的这篇文章才不会耽误各位的时间,开源社区嘛,分享这种真的是有贡献的。
我建议是把我的这个看完了,在对着做,中间有一些错误,但是我依然保留了,所以如果直接对着做会很难受。
WSL2部署
首先是我的开始,首先要在windows里面下载WSL2,已经搞忘记我上一个配置这样参考的博客了,昨天我跟着这个来的:
https://blog.csdn.net/eastking0530/article/details/126613992
下面的这个博客好像是用命令的,但是我因为之前就用的微软商店啊这种,这两我都有参考,
https://blog.csdn.net/iwanvan/article/details/122119595
还很详细。
关于这方面WSL2的部署,bilibili也有个专栏和视频,那个跟着做也不错:
https://www.bilibili.com/read/cv16616792
https://www.bilibili.com/video/BV1n14y1x7Y7/?spm_id_from=333.880.my_history.page.click&vd_source=cc97774375ca5177485d3840a0bb9b31
这个一个是文章,一个是视频,虽然在显卡部署方面我感觉光凭这个很难完好的运行,细节没有很清楚,但是WSL2跟着做就对了,很详细。
那么现在我们可以通过ubuntu应用或者powershell开始我们在windows上的linux命令了。
可以参考bilibili文章或者别的文章,把apt源改成国内的。
但是这个文章第一句话就有问题,bat应该是bak
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后:使用文本编辑器(如nano或vim)打开apt源列表文件
sudo nano /etc/apt/sources.list
最后才是把底下的那些话弄进去。但是b站复制也很烦有尾缀。我记得我这里分享的文章有一篇写的很好。
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse、
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
搞到最后,然后右键就可以粘贴,然后ctrl+X然后输入Y,回车,回车
sudo apt-get update
sudo apt-get install build-essential
然后是安装CUDA,因为我本机电脑是CUDA12.0
所以我是根据这篇文章来的的:
https://cloud.tencent.com/developer/article/2269993
虽然这个CUDA版本可能跟各位有不一样,但是可以百度搜一下下载对应的cuda版本就OK了,这个时候nvcc -V就可以用了。
但是此时,wsl2里面的nvidia-smi命令还是这样:
我们要装对应的驱动,根据我的回忆,是只需要在wsl2装一个CUDA toolkit,CUDA Toolkit是NVIDIA的CUDA工具包,包含了CUDA的全部工具。因为英伟达已经有专对于wsl2的驱动,只需要本机有对应工具包,那么我们在WSL2就可以运行,所以我们在WSL2只要装CUDA toolkit 。如果没装,那么就会导致这个时候我一开始的那个命令是找不到文件,cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi,因为没驱动的话,是没有这个的:nvidia-smi,
地址在这里(好像要科学工具)
https://developer.nvidia.com/cuda-downloads(最新版本)
https://developer.nvidia.com/cuda-toolkit-archive(历史版本)
打开是这样:
具体下载的话,要看对应的表:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
看看他这个工具最低支持的驱动版本,最低的一定不能高于你的电脑驱动。
这里安装我也参考的这个:https://www.bilibili.com/read/cv16616792
在官网里面:https://developer.nvidia.com/CUDA-TOOLKIT-ARCHIVE找到对应的,然后执行这个命令:
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run
sudo sh cuda_12.0.0_525.60.13_linux.run
然后有一个这个:
离谱的是我印象中没这个,有着翻车的感觉。除了驱动和后面的核心全安了。然后是漫长的等待。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4c9595f90e684c3aa4c8b8c6d303b8c1.png#pic_center
大意是,说我安装不完整啊那些警示。
好翻车了,理一下思路,我现在创建了一个WSL2,这个我安装成功了,
然后我安装anaconda,也成功了,
然后我安装了CUDA,安装成功了,nvcc -V可以生成,
但是目前遇见了问题:我使用不了nvidia-smi
好,找到问题了原来是我一直是wsl一代,很好!
关于怎么看wsl版本呢
在cmd或者powershell里面输入这个命令就可以了:
wsl -l -v
如果很不巧,你一开始是wsl1,那么version下面会是1,也有解决办法,不用重启电脑,根据这两篇文章来就ok了,首先是升级:https://blog.csdn.net/weixin_44121966/article/details/122815547
升级看上面这篇就行,然后需要下载一个可运行文件,里面讲的很清楚。
升级完了很容易遇见这样的错误:参考的对象类型不支持尝试的操作
看这篇就行了:https://blog.csdn.net/fangye945a/article/details/123832623
搞完之后我又回来了:
这次发现,居然nvidia-smi是可以用的,那么或许一开始我不能用是否就是因为我是wsl1,真的很无语。
那么评论区的老哥没文件,很有可能就是wsl1的原因,因为我这次找了,原始回答的路径下面就是有这个文件的:
那么我就差安装cuda了,
再来一遍:https://developer.nvidia.com/cuda-toolkit-archive在这里面找对应的版本,然后直接在里面复制命令就好了。之前在别人博客复制的跟官网的是一样的,弄完之后就配置一下环境:
具体的在之前发的那个博客里面,https://cloud.tencent.com/developer/article/2269993
把12.0改成你的版本就ok了。
然后现在不管是nvidia-smi还是nvcc -V都可以了。
总结一下显卡这方面的安装,只需要按照cuda for wsl2就好了,nvidia-smi不能运行,大概率是wsl不是二代或者win的版本不支持或者本机机器驱动nvidia driver不支持。升级一下就好了,我是win10。
可以参考这个博客
https://blog.csdn.net/wdz502425575/article/details/123658606
然后这篇博客效率很高,我是一开始走错路了,
https://blog.csdn.net/weixin_42187164/article/details/126816848
安装anconda和pytorch(anaconda是管理的,比较推荐安装,pytorch按需安装)
anaconda参考的这个教程,保姆级:https://blog.csdn.net/weixin_45509406/article/details/128752457
输入conda -V就可以看看是不是成功了。
pytorch
对应版本在这里面找:
https://pytorch.org/get-started/locally/
具体安装的话:
以下是anaconda的基本命令:
conda create -n pytorch python=3.10
conda activate pytorch
如果出这个问题了:
运行conda init bash,然后重新打开wsl2,就可以了。
在激活环境之后:
运行这个命令就好了,当然,你得找对应的版本。
然后进入python环境
import torch
(检查PyTorch是否可以使用GPU)
print(torch.cuda.is_available())
(如果有多个GPU,打印出所有GPU的编号)
print(torch.cuda.device_count())
(打印出当前选中的GPU)
print(torch.cuda.current_device())
(打印出当前GPU的名称)
print(torch.cuda.get_device_name(torch.cuda.current_device()))
如果上面的代码能够正常运行,并且打印出了你的GPU的相关信息,那么你的PyTorch就能够正确地使用你的GPU了。
环境配完了,终于!
总结一下,我这篇博客对比其他博客,废话较多,而且不简洁,但是旁征博引,胜在很菜,小白能共情。哈哈哈