在 Centos 7 中安装CUDA 并运行 CodeFormer

在 Docker 和 kubenetes 中启用 GPU (nvidia) 支持

https://www.4wei.cn/archives/1003042

之前写过用 docker-nvidia 快速启用 gpu,今天收到朋友发来的前女友的模糊照片,想做一个人像高清修复。

图片人像和视频人像修复,目前的神器肯定是 CodeFormer,但 CodeFormer 现在没有 docker 版本,那按官方文档,在裸机上部署。

安装GPU驱动

检查显卡版本

yum install -y epel-release lshw kernel-devel gcc wget bzip2 
lshw -numeric -C display

识别结果如下,我这是一台 N 卡 P40,p.n1p40.3xlarge(12核48GB GPU 标准型)

  *-display:0
       ...
  *-display:1
       description: 3D controller
       product: GP102GL [Tesla P40] [10DE:1B38]
       vendor: NVIDIA Corporation [10DE]
       physical id: a
       bus info: pci@0000:00:0a.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=nvidia latency=0
       resources: iomemory:100-ff iomemory:180-17f irq:44 memory:fb000000-fbffffff memory:1000000000-17ffffffff memory:1800000000-1801ffffff

先卸载 nouveau

cat > /etc/modprobe.d/blacklist-nvidia-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF

reboot

安装显卡驱动

识别到硬件Tesla P40以后,则需要进入 nvidia 官方下载对应驱动

https://www.nvidia.com/Download/index.aspx

选择对应的硬件系列、对应的操作系统及需要的 CUDA 版本,其中,CodeFormer 要求 CUDA Toolkit 不低于 CUDA 10.1。

快速链接

https://www.nvidia.cn/download/driverResults.aspx/197212/cn/

下载好驱动以后,根据提示和安装说明,一路下一步即可。

Linux 系统上的安装命令如下

chmod +x NVIDIA-Linux-x86_64-410.129-diagnostic.run
./NVIDIA-Linux-x86_64-410.129-diagnostic.run

2023-04-04 安装 P40时发现驱动类型变成了 rpm,安装命令如下

wget https://cn.download.nvidia.com/tesla/515.105.01/nvidia-driver-local-repo-rhel7-515.105.01-1.0-1.x86_64.rpm
yum install -y nvidia-driver-local-repo-rhel7-515.105.01-1.0-1.x86_64.rpm
yum install cuda-drivers

确认 CUDA 版本

[root@pass-test-video CodeFormer]# nvidia-smi
Tue Jan 24 13:29:19 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.36.06    Driver Version: 450.36.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla P40           Off  | 00000000:00:0A.0 Off |                    0 |
| N/A   28C    P0    45W / 250W |      0MiB / 22919MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

安装 PyTorch/anaconda

CodeFormer 依赖 Pytorch >= 1.7.1,Pytorch 的环境可以使用 anaconda 来快速创建。

安装 anaconda 的流程如下

  1. 安装Anaconda
    1.1 下载anaconda的安装包
    1.2 添加执行权限
    1.3 安装anaconda
    1.4 点击Enter(回车键)
    1.5 输入 yes
    1.6 继续点击 Enter
    1.7 输入 yes,添加环境变量
    1.8 完成安装以及检测是否安装成功
  2. Anaconda安装Pytorch
    2.1 创建虚拟环境
    2.2 激活环境

安装 anaconda

使用国外源 (国外用户推荐)

wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh
chmod a+x Anaconda3-2022.10-Linux-x86_64.sh
./Anaconda3-2022.10-Linux-x86_64.sh

使用国内源 (国内用户推荐)

wget http://mirrors.aliyun.com/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh
chmod a+x Anaconda3-2022.10-Linux-x86_64.sh
./Anaconda3-2022.10-Linux-x86_64.sh

conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/main/
conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/free/
conda config --add channels http://mirrors.aliyun.com/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.aliyun.com/anaconda/cloud/msys2/
conda config --add channels http://mirrors.aliyun.com/anaconda/cloud/bioconda/
conda config --add channels http://mirrors.aliyun.com/anaconda/cloud/menpo/
conda config --add channels http://mirrors.aliyun.com/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
# 安装完成后执行
source ~/.bashrc
conda -V

文件很大,耐心等待,然后根据提示一路下一下,尤其要注意添加环境变量。

最后通过 conda -V 确认是否安装成功

安装 CodeFormer

源码安装

Dependencies and Installation
Pytorch >= 1.7.1
CUDA >= 10.1
Other required packages in requirements.txt

# git clone this repository,过程较慢,耐心等待
git clone https://github.com/sczhou/CodeFormer
cd CodeFormer

# create new anaconda env,过程较慢,耐心等待
conda create -n codeformer python=3.8 -y
conda activate codeformer

# install python dependencies,过程较慢,耐心等待
pip3 install -r requirements.txt

可视化界面

CodeFormer GUI

https://github.com/Arthurzhangsheng/CodeFormer_GUI