基于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