WSL2报错:nvidia-smi Command ‘nvidia-smi‘ not found, but can be installed with:

2023-11-13

这里写自定义目录标题

找了很多方法

在社区找了很多方法,结果在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了。

环境配完了,终于!

总结一下,我这篇博客对比其他博客,废话较多,而且不简洁,但是旁征博引,胜在很菜,小白能共情。哈哈哈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL2报错:nvidia-smi Command ‘nvidia-smi‘ not found, but can be installed with: 的相关文章

随机推荐

  • GD32F303 Keil 5.33 开发环境搭建流程

    目录 1 资源准备 2 Keil5安装流程 第一步 解压缩包 第二步 安装Keil5 第三步 安装GD32芯片支持包环境 总结 1 资源准备 Keil 5 33安装包 注册机 支持包 固件库 这里作者已经帮大家准备好了 见链接 百度网盘ht
  • 常用的el-input文本正则限制

    1 只能输入英文字母和数字 不能输入中文
  • 静态时序分析——多周期、半周期和伪路径

    一 多周期 multicycle paths 在一些情况下 如下图所示 两个寄存器之间的组合电路传输的逻辑延时超过一个时钟周期 在这样的情况下 这个组合路径被定义为多周期路径 multicycle path 尽管后一个寄存器会在每一个的时钟
  • Kubernetes详解(三十七)——PV与PVC

    今天继续给大家介绍Linux运维相关知识 本文主要内容是Kubernetes PV与PVC 一 PV和PVC详解 当前 存储的方式和种类有很多 并且各种存储的参数也需要非常专业的技术人员才能够了解 在Kubernetes集群中 放了方便我们
  • 闲鱼x-sign, x-mini-wua算法签名接口调用

    远程调用x sign x mini wua算法接口链接 xxxxx 5000 xianyu sign mim wua itemId 649780866851 x sign 结算结果需要传入的参数值 deviceId utdid appKey
  • 逗号运算符

    逗号运算符是指在C语言中 多个表达式可以用逗号分开 其中用逗号分开的表达式的值分别结算 但整个表达式的值是最后一个表达式的值 在前端的一些笔试中也可以看到逗号运算符的存在 作为C语言中的运算级别最低的一员 逗号运算符 结合的方向是 从左往右
  • dat文件

    DAT 数字录音带 是一种用于磁带数字录音的专业品质级别的标准媒体和技术 DAT设备就是一个数字磁带录音器 具有与录像机相似的旋转型磁头 大多数的DAT设备都能以44 1千赫 CD音频标准 以及48千赫的采样率来录音 DAT已经成为掌握录音
  • 在Java中如何判断字符串的编码格式

    最近 我一直试图寻找一种判断Java程序中字符串编码格式的方法 同时 也查找了很多资料 设计了一个的程序 美中不足的是该方法对仅含有数字和英文字母的字符串无效 原理 ASCII GBK UTF 8对数字和英文字母的编码相同 对其它字符编码不
  • GD32F105的CAN通讯,可以发送数据,但接收不到数据

    项目简介 使用的芯片型号GD32F105VC 芯片资源CAN1 波特率500k 调试过程中发现发送数据正常 但是接收不到数据 总结几点注意事项如下 1 需要设置滤波器 若未设置滤波器 则接收不到数据 傻傻的认为滤波器配置问题 以为注释掉滤波
  • vue-vuetify-admin案例讲解

    vue vuetify admin案例讲解 1 Introduction 1 1 directory structure 1 2 vue cli 1 3 vuex 1 3 1 在store目录创建index js 1 3 2 在main j
  • 队列(一种遵循先进先出原则的数据结构)

    目录 1 队列 Queue 2 队列的抽象数据类型 队列ADT 3 队列接口 4 利用数组实现队列 4 1 队列的实现 4 2 利用数组实现队列的优势与缺点 5 利用单链表实现队列 5 1 队列的实现 5 2 利用单链表实现队列的优势与缺点
  • js对象的继承

    学无止境 望君把握时间 首先我们需要定义一个类 定义一个动物类 function Animal name 属性 this name name Animal 实例方法 this sleep function console log this
  • js增加class或者删除class

    1 比较传统的方法 var classVal document getElementById id getAttribute class 删除的话 classVal classVal replace someClassName docume
  • GAMES101: 现代计算机图形学入门(2)几何、光线追踪

    GAMES101 现代计算机图形学入门 链接 GAMES101 1 几何 1 1 几何的表示 隐式几何 通过一个函数表达式来表示的几何体 即 f x y z 0 优点 很容易判断一个点在不在几何体上 缺点 很难通过表达式看出几何体的形状 显
  • 菜鸟求职记6

    来到古城已经整整38天了 本想快快的找到工作然后做自己这三年来都没有做的事情 旅游 看电视 打篮球 打乒乓球 可是 事实却并非如此 这一个多月的苦衷可以说是一言难尽呀 到了此时此刻 恐怕每一个人都已经累得奄奄一息了 每个人曾经的自信都被现实
  • StrongSORT:Make DeepSORT Great Again

    1北京邮电大学2中国网络系统与网络文化北京市重点实验室 摘要 现有的多目标跟踪 Multi Object Tracking MOT 方法大致可以分为基于检测的跟踪和联合检测关联两种范式 虽然后者引起了更多的关注 并显示出与前者相当的性能 但
  • 在Android studio中Intent的几种基本使用方法

    在Android开发中 Intent是最基本也是最常用的操作 在Activity Service BroadcastReceiver这些核心组件中也需要Intent进行操作 下面我们具体介绍Intent在开发中的一些基本用法 假定目前有Fi
  • 第三方支付 -----支付宝支付流程

    大家都知道 第三方支付 已经普遍都在使用 所以我今天就说一下支付宝的支付流程 首先进入支付宝平台 点击开发中心 研发服务 获得沙盒的appid以及商户公钥和支付宝公钥 然后利用秘钥生成软件生成私钥和公钥 建立keys文件夹 将私钥和公钥文件
  • 将日期字符串转成LocalDateTime

    如果直接用LocalDateTime parse将日期字符串 yyyy MM dd 转成LocalDateTime会导致报错 所以我这里提供了将日期字符串转成LocalDateTime的方法 仅供参考 如有更好方式 欢迎大家分享 impor
  • WSL2报错:nvidia-smi Command ‘nvidia-smi‘ not found, but can be installed with:

    这里写自定义目录标题 找了很多方法 解决 分割线 WSL2部署 找了很多方法 在社区找了很多方法 结果在b站评论区找到了一个方法给解决了 原本一开始有人说是驱动版本问题 我nvcc V是ok的 但是nvidia smi一直报错 Comman