目录

iU+N卡笔记本安装国产UOS/deepin操作系统以及torch+cuda配置

与正常安装Windows操作系统区别不大,可以一直点“下一步”直到安装结束。

需要注意的地方可能有三点

一 容量空间变小:

以128G硬盘为例,按照默认的安装方法,会分出 /(roota) 以及 rootb 两个大小为15G的根分区以及一个12G的/recovery分区,其中roota是日常使用分区,更新系统时,自动把roota复制一份到rootb上,作为备份,这样如果更新以后启动不了就能回退了,而/recovery+rootb就占用了27G空间,而这27G空间一般情况下是白白浪费的。

https://i.im.ge/2022/08/23/Oikab1.generated-file-name.png

所以安装系统时选择推荐手动安装分区,不分配b分区以及recovery分区:

https://i.im.ge/2022/08/23/Oik7Bf.generated-file-name.png

二 无法使用Nvidia独立显卡:

这个情况是具有nVidia独立显卡的电脑外接显示器时发现的,UOS/deepin系统对硬件的兼容性还不太完善,如果显示接口(例如HDMI)在独立显卡上,可能由于无法使用独立显卡而导致无法输出显示。

  • 方案一,使用应用商店中提供的切换工具显卡驱动管理器进行切换。
  • 方案二,如果管理器无效,可以尝试该方案:
  1. 安装nvidia驱动

    有坑,配置不好会直接导致 torch与CUDA不兼容 如果不要CUDA,可以直接安装 为了保险也可以按照安装CUDA的步骤来,在5. 安装cuda时再改为直接安装显卡驱动

    # 安装英伟达显卡驱动和管理工具
    sudo apt install nvidia-driver nvidia-smi nvidia-settings
    
  2. 安装一个显卡切换插件 安装插件后,注销重新登录或者直接重启都行,会在底部电源那一栏出现 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())
# 木有,毕竟我也木有多卡