明眸 系统调试开发文档

基于Centos7.9 编写

请先完成对磁盘的扩容操作

1. 首先更新系统的软件源并升级系统的相关组件


yum install wget -y 
wget https://mirrors.jshainei.com/smb/autoInstall/auto_install.sh 
bash auto_install.sh 
修改系统软件源为清华源
yum upgrade -y 
# 将 mirrors.jshainei.com 强制指向 10.25.10.40 
# 仅在公司内网使用 可以加速下载文件的速度
echo "10.25.10.40 mirrors.jshainei.com" >> /etc/hosts

2. 使用环境变量设置临时代理


export http_proxy="http://10.25.20.188:10809"
export https_proxy="http://10.25.20.188:10809"
# download.szhcloud.cn mirrors.jshainei.com 为资源镜像地址,不需要使用代理
export no_proxy="mirrors.jshainei.com,download.szhcloud.cn"

3. 安装并激活 devtoolset-7 (gcc7.x)


yum install centos-release-scl -y
yum install devtoolset-7 -y
scl enable devtoolset-7 bash 

4. 执行自动化开发环境构建脚本



echo "source /opt/rh/devtoolset-7/enable" >> /etc/profile 
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/usr/local/lib/pkgconfig" >> /etc/profile 
source /etc/profile
wget https://mirrors.jshainei.com/smb/autoInstall/ai_video/ai_video.sh
bash ai_video.sh

5. 关闭 nouveau (仅部分虚拟机需要)


lsmod | grep nouveau
# 如果这时候没有任何输出 那么此时 nouveau 已经被配置成关闭
# 否则需要执行下面的命令
echo "blacklist nouveau" >> /usr/lib/modprobe.d/dist-blacklist.conf
echo "options nouveau modeset=0" >> /usr/lib/modprobe.d/dist-blacklist.conf
dracut --force
reboot
# 等待系统重启后检查 nouveau  是否已经关闭

6.安装 nvidia 驱动
根据 lspci | grep -i nvidia 的结果前往 https://www.nvidia.com/Download/Find.aspx 搜索下载对应的驱动包
注意
目前已知的是 ESXI 7.0 存在对部分高版本显卡直通出错的BUG,现象为能够在虚拟机中通过 lspci 命令找到显卡, 但无法安装对应版本的驱动,或出现安装过程中报错为 cannot found nvidia.ko 的错误,目前暂未解决
K20XM 驱动 https://mirrors.jshainei.com/smb/autoInstall/ai_video/NVIDIA-Linux-x86_64-450.248.02.run
P40/T4 显卡驱动 https://mirrors.jshainei.com/smb/autoInstall/ai_video/NVIDIA-Linux-x86_64-525.125.06.run
安装成功后 将看到如图所示的输出

7.安装 cuda
根据上图中的 CUDA Version 前往 https://developer.nvidia.com/cuda-toolkit-archive 下载对应版本的 CUDA
适用于 Centos 7 [CUDA 11.0] (11.0.3)的runfile 安装包 https://mirrors.jshainei.com/smb/autoInstall/ai_video/cuda_11.0.3_450.51.06_linux.run
适用于 Centos 7 [CUDA 12.0] (12.0)的runfile 安装包 https://mirrors.jshainei.com/smb/autoInstall/ai_video/cuda_12.0.0_525.60.13_linux.run


wget https://mirrors.jshainei.com/smb/autoInstall/ai_video/cuda_12.0.0_525.60.13_linux.run
sh cuda_12.0.0_525.60.13_linux.run
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64" >> /etc/profile
echo "export PATH=$PATH:/usr/local/cuda-12.0/bin"  >>  /etc/profile
echo "export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.0" >> /etc/profile
source /etc/profile

此时输入 nvcc -V  输出如下

8. 安装 cudnn
根据上图中的 CUDA Version 前往 https://developer.nvidia.com/rdp/cudnn-archive 下载对应版本的 CUDNN
适用于 Centos 7 [CUDNN 11.0] (8.9.2.26) 的 安装包 https://mirrors.jshainei.com/smb/autoInstall/ai_video/cudnn-linux-x86_64-8.9.2.26_cuda11-archive.tar.xz
适用于 Centos 7 [CUDNN 12.0] (8.9.2.26) 的 安装包 https://mirrors.jshainei.com/smb/autoInstall/ai_video/cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz


wget https://mirrors.jshainei.com/smb/autoInstall/ai_video/cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
tar -xvf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz && rm -rf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
cp cudnn-linux-x86_64-8.9.2.26_cuda12-archive/include/* /usr/local/cuda-12.0/include
cp cudnn-linux-x86_64-8.9.2.26_cuda12-archive/lib/* /usr/local/cuda-12.0/lib64
rm -rf /usr/local/cuda-12.0/targets/x86_64-linux/lib/libcudnn*.so.8
ldconfig 

9. 安装 TensorRT

注意目前已知,部分算力低 的显卡(或一种解释为显卡的工作区空间大小不足)无法正常安装 TensorRT , 运行官方示例项目时可能会出现报错


cd /build
wget https://mirrors.jshainei.com/smb/autoInstall/ai_video/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
tar -zxvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz && rm -rf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
mv TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0 TensorRT-8.6.1.6
echo "/build/TensorRT-8.6.1.6/targets/x86_64-linux-gnu/lib" >>  /etc/ld.so.conf
ldconfig 
echo 'export TR_PATH=/build/TensorRT-8.6.1.6
export PATH=$PATH:$TR_PATH/bin
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$TR_PATH/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TR_PATH/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TR_PATH/targets/x86_64-linux-gnu/lib' >> /etc/profile
source /etc/profile
cd /build/TensorRT-8.6.1.6/samples/sampleOnnxMNIST
make 
cd /build/TensorRT-8.6.1.6/bin
./sample_onnx_mnist

如果配置正确的将输出如图所示的结果

10. 编译安装 Libtorch (已废弃,目前使用 TensorRT)
首先需要去Pytorch 的官网查询支持对应的CUDA的版本
https://pytorch.org/get-started/previous-versions/
目前已知适配 CUDA 11.0 的最新的 pytorch 版本 为 1.7.1
其对应辅助依赖项版本 pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0


cd /build
#git clone --recursive https://github.com/pytorch/pytorch 
#如果git clone 的速度慢 可以使用由海内提供的 pytorch 项目的镜像快照(2023-07-29)
wget https://mirrors.jshainei.com/smb/autoInstall/ai_video/pytorch_20230729.tar.gz 
tar -zxvf pytorch_20230729.tar.gz && rm -rf pytorch_20230729.tar.gz
cd /pytorch
git checkout 1.7
git submodule sync
git submodule update --init --recursive
export USE_CUDA=True
export BUILD_TEST=False
export USE_NINJA=ON
mkdir build && cd build
pip3 install pyyaml
python3 ../tools/build_libtorch.py
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注