iU+N卡笔记本安装国产UOS/deepin操作系统以及torch+cuda配置
与正常安装Windows操作系统区别不大,可以一直点“下一步”直到安装结束。
需要注意的地方可能有三点
一 容量空间变小:
以128G硬盘为例,按照默认的安装方法,会分出 /(roota) 以及 rootb 两个大小为15G的根分区以及一个12G的/recovery分区,其中roota是日常使用分区,更新系统时,自动把roota复制一份到rootb上,作为备份,这样如果更新以后启动不了就能回退了,而/recovery+rootb就占用了27G空间,而这27G空间一般情况下是白白浪费的。
所以安装系统时选择推荐手动安装分区,不分配b分区以及recovery分区:
二 无法使用Nvidia独立显卡:
这个情况是具有nVidia独立显卡的电脑外接显示器时发现的,UOS/deepin系统对硬件的兼容性还不太完善,如果显示接口(例如HDMI)在独立显卡上,可能由于无法使用独立显卡而导致无法输出显示。
- 方案一,使用应用商店中提供的切换工具显卡驱动管理器进行切换。
- 方案二,如果管理器无效,可以尝试该方案:
-
安装nvidia驱动
有坑,配置不好会直接导致
torch与CUDA不兼容
如果不要CUDA,可以直接安装 为了保险也可以按照安装CUDA的步骤来,在5. 安装cuda时再改为直接安装显卡驱动# 安装英伟达显卡驱动和管理工具 sudo apt install nvidia-driver nvidia-smi nvidia-settings
-
安装一个显卡切换插件 安装插件后,注销重新登录或者直接重启都行,会在底部电源那一栏出现 Intel 的标志,点击它就可以切换了
三 无法正常在torch中使用CUDA:
该解决方案略复杂一点点,因为现在Windows下的torch+cuda配置要比Linux下更为方便了,再就是UOS/deepin系统默认的包少一些,需要解决依赖:
直接安装CUDA,CUDA中带有显卡驱动;
pip 和 venv用
apt install python3-pip python3-venv
否则缺失依赖项cudnn自带的sample也有依赖项缺失:
sudo apt-get install libfreeimage3 libfreeimage-dev
torch的依赖项:
sudo apt install libjpeg-dev zlib1g-dev
1、 禁用 nouveau 驱动
# 我实际上使用的是nano,不过uos自带的deepin-editor也可以,任意编辑器都可以
sudo deepin-editor /etc/default/grub
在GURB_CMDLINE_LINUX_DEFAULT="splash quiet
后加上一句改为
GURB_CMDLINE_LINUX_DEFAULT="splash quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 "
其中, rd.driver.blacklist=nouveau
会阻止nouveau驱动的自动加载,哪怕发现存在nouveau模块声称支持的硬件 modprobe.blacklist=nouveau
类似上面的那句,这个阻止nouveau模块的加载 nvidia-drm.modeset=1
主要用来防止画面撕裂的情况,但我也不清楚原理,arch的Wiki中说是“启用DRM(直接渲染管理器)内核模式设置”
(To enable DRM (Direct Rendering Manager) kernel mode setting)
2、 更新 grub 配置
sudo update-grub
3、 重启后进入系统运行级别 3
为了保险,我是不登陆图形界面 CTRL+ALT+F2 进入tt2后操作的
sudo init 3
4、 卸载可能存在的nvidia驱动
sudo apt purge nvidia*
sudo apt autoremove --purge
5、 安装CUDA(11.3.1)
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-debian10-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-debian10-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-debian10-11-3-local/7fa2af80.pub
sudo add-apt-repository contrib
sudo apt-get update
sudo apt-get -y install cuda
# cudnn我使用nvidia给ubuntu提供的三个deb包来安装,因为这样会有sample来供我测试
cp -r /usr/src/cudnn_samples_v8/ ~/Documents/samples
cd samples/mnistCUDNN
# 直接make会失败,因为缺少两个依赖项
sudo apt-get install libfreeimage3 libfreeimage-dev
sudo make clean
sudo make
# 运行可以看到通过测试
./mnistCUDNN
# 如果运行不通过,可以试一试提权运行
sudo ./mnistCUDNN
在 deepin 中我又试了一遍,发现直接测试不通过,需要提权才能通过。
运行 nvcc -V
不能执行,查看 $PATH
没有 CUDA
将 CUDA 的 \bin
路径添加到 PATH 中后一切正常了
6、 torch
# 安装失败的原因就是缺点依赖项,先装上就好了
sudo apt install python3-pip python3-venv
sudo apt install libjpeg-dev zlib1g-dev
然后按照torch官网来就可以了:
pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
7、 验证 torch 能不能用 cuda 和 cudnn
from torch import tensor, cuda
import torch
from torch.backends import cudnn
# 判断是否可用
print(torch.cuda.is_available())
print(cudnn.is_available())
print(cudnn.is_acceptable(tensor(1.).cuda()))
# 可以使用以下代码,用torch查看当前所使用的cuda cudnn nccl版本
print(torch.__version__)
# 1.10.2+cu113
print(torch.version.cuda)
# 11.3
print(torch.backends.cudnn.version())
# 8200
# print(torch.cuda.nccl.version())
# 木有,毕竟我也木有多卡