(好家伙,装个ubuntu系统和pytorch和实验室的小伙伴搞了好几天)
1 、电脑配置
显卡3070ti
主板是 微星的(带有无线网卡的驱动的)
这里简要说明下,如果主板太新,网卡太新,可能会导致ubuntu系统无法识别网卡驱动,得去网上自己下载对应的linux环境下的网卡驱动,所以很麻烦。最好的办法是装上最新的ubuntu21.04的系统,这样子就可以识别网卡这个驱动。
如果不想太新的ubuntu系统,可以参考教程链接自自己装网卡驱动试试
https://blog.csdn.net/w18816293443/article/details/109457977
又或者尝试上淘宝搜“ubuntu无线网卡”,淘宝上有卖那些ubuntu一插就能用的无线驱动
2 、安装双系统Ubutun系统的教程可以参考B站视频
https://www.bilibili.com/video/BV18W41137XB?from=search&seid=17672455801266292300
ubuntu系统官网下载链接
https://ubuntu.com/(这里注意需要下载ubuntu的系统)
1 、首先是打开 终端 输入nvidia-smi,然后下载系统推荐的包,然后再次输入nvidia-smi命令,系统可能会提醒你安装最新的驱动了。
2 、打开终端 在终端输入 lshw -numeric -C display 查看显卡的驱动
3 、使用您的网络浏览器导航到官方 NVIDIA网站并为您的 Nvidia 显卡下载合适的驱动程序。
或者,如果您知道自己在做什么,则可以直接从Nvidia Linux 驱动程序列表下载驱动。准备好后,您应该会得到一个类似于下图所示的文件:
NVIDIA-Linux-x86_64-460.67.run 这里特别需要注意下载的驱动程序,如果装的 系统 的英文版本的要选 US ,如果是中国版本就选 chinese
4 安装前,我们最好更新一些系统的包
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install build-essential libc6:i386
5 禁用 Nouveau Nvidia 驱动程序
Ubuntu 系统默认安装好是使用的一个开源的驱动:nouveau
,我们要安装官方的驱动需要先禁用这个开源驱动,方法如下,依次执行:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
执行完上面两条指令后,我们使用如下命令看看是否成功禁用了开源驱动:
cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf
。如果和下面一样,表示成功了。
$ cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf
blacklist nouveau
options nouveau modeset=0
6 重启系统
可以使用命令 sudo reboot
7 sudo telinit 3
。然后按快捷键:CTRL+ALT+F1
进入字符界面,输入用户名和密码,然后登录系统,进入我们保存下载 NVIDIA 驱动的目录,默认是:Downloads/
目录,cd Downloads/
,然后执行:bash NVIDIA-Linux-x86_64-418.43.run
。注意:NVIDIA-Linux-x86_64-418.43.run
要根据你下载的驱动文件的名字相应改动。
这里需要注意的是 安装的过程会让你选择 一直选 yes 或者 continue 就行
8 安装完成后重启系统就可以点击软件列表中的 NVIDIA 的配置软件配置显卡驱动了
再次输入nvidia-smi就可以查看显卡的驱动
9 至此 显卡驱动安装成功。进行下一步安装pytorch GPU版本
由于cuda是11.2 版本的
刚刚开始还很苦恼 无法使用官网的使用一条命令直接安装。
然后还去 查看了对应的cuda11.2的版本,发现没有 ubuntu21.04版本的
所以最后没办法就尝试使用pytorch官网上的命令安装cuda11.1。试试能不能实现向下兼容(事实证明是可以的)
这里个人建议安装 cuda11.1 --pytorch1.8.0的 这样要是因为版本报错 网上可以找到很多教程。
1 、安装好的pytorch
2、 尝试输入命令 查看是否成功(看到返回True则证明安装成功)
import torch
print(torch.cuda.is_available())
>>>>True