GPU环境搭建(TrWebOCR)

发布时间 2024-01-10 11:10:47作者: 粒子先生

查看显卡信息

lspci | grep -i nvidia

查看系统是否受支持

uname -m
 
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements

验证是否有编译环境

gcc -v

验证系统是否安装了正确的内核头文件和开发包

yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
 
# kernel、kernel-devel、kernel-headers版本必须保持一致

禁用nouveau方法

# 新建一个配置文件
vim /etc/modprobe.d/blacklist-nouveau.conf
#写入以下内容
blacklist nouveau
options nouveau modeset=0
# 保存并退出
:wq
# 备份当前的镜像
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
#建立新的镜像
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
# 重启
sudo reboot
# 最后输入上面的命令验证
lsmod | grep nouveau
 
 
没有任何信息输出,则表示已经禁用nouveau

安装 CUDA 10.1

# 下载安装包
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
# 修改权限
chmod 755 cuda_10.1.243_418.87.00_linux.run
# 执行安装
./cuda_10.1.243_418.87.00_linux.run
 
# 验证,查看驱动信息
nvidia-smi

安装 cuDNN 7.6.5

# 下载安装包
wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz
# 解压
tar zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz 
 
# 拷贝文件
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn/usr/local/cuda/lib64
 
# 修改权限
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
 
# 添加环境变量
vim ~/.bashrc
# 添加内容如下
export CUDA_HOME=/usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda
# 保存退出
:wq
 
# 使新的环境变量生效
source ~/.bashrc
 
# 验证,查看版本信息
nvcc -V

创建python3.7运行环境

安装miniconda

# 下载安装文件
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 修改权限
chmod 755 Miniconda3-latest-Linux-x86_64.sh 
# 执行安装
./Miniconda3-latest-Linux-x86_64.sh
 
# 查看环境变量信息
vim /root/.bashrc
# 以下内容为安装minicoda时,自动写入的环境变量信息
 
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/root/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/root/miniconda3/etc/profile.d/conda.sh" ]; then
"/root/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/root/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
 
# 使环境变量生效
source /root/.bashrc
 
 
# 配置国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
 
# 验证,查看版本信息
conda -V

创建 tr-ocr python3.7运行环境

# 创建 python3.7 环境
conda create --name tr-ocr python=3.7
 
# 切换环境验证
conda activate tr-ocr

安装 TrWebOCR 环境依赖

# 切换环境
conda activate tr-ocr
 
# 安装 TrWebOCR 依赖包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 
# requirements内容如下
libtorch==1.2.0.1
numpy==1.14.6
opencv-python==3.4.4.19
Pillow==7.1.0
tornado==6.0.4

安装 cudatoolkit

pip install cudatoolkit==10.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

使用GPU运行程序

启动TrWebOCR程序并验证

#下载代码
https://github.com/alisen39/TrWebOCR
 
#进入目录
cd TrWebOCR-master/
 
#启动程序
python backend/main.py --open_gpu=1 --port=8089

启动Tr程序并验证

#下载代码
https://github.com/myhub/tr
 
#进入目录
cd tr-master/
 
#验证程序
python test.py

 

参考:

https://www.mlzhilu.com/archives/ubuntu2004%E5%AE%89%E8%A3%85nvidia%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8