1.CentOS与EXSi上的显卡实现直通
chrome登录EXSi启用显卡直通
如果显卡是N卡系列,则可能还需要如下操作,笔者在直通N卡TITAN X的时候遇到了一些坑
N卡图像模块无法直接进行启用 需要对下面的音频模块(High Definition Audio)进行启用 音频启用后图像模块会自动启用
完成上述操作后,重启服务器,再次通过chrome进入对应IP网页
如果是N卡系列 还需要在宿主机中进行如下设置:
找到虚拟机的vmx文件:
在其中添加内容: hypervisor.cpuid.v0 = "FALSE"
然后重启宿主机
登录虚拟机 即可查询显卡已启用
lspci | grep -i nvidia #查询显卡信息
2.安装对应显卡驱动
安装必要编译器环境:
sudo yum install gcc
sudo yum install gcc-c++
安装kernel-devel(此处要与源码版本一致)
ls /boot | grep vmlinu #查询源码版本信息
对应的kernel-devel-3.10.0-862.el7.x86_64.rpm包 若找不到则自行百度下载
rpm -ivh kernel-devel-3.10.0-862.el7.x86_64.rpm # 安装kernel
下载对应英伟达驱动(此处下载版本为Quadro K4200)英伟达驱动网址
下载完后, 需要禁用系统默认的nouveau
vi /lib/modprobe.d/dist-blacklist.conf
将nvidiafb注释掉。并在下方添加两行
#blacklist nvidiafb
blacklist nouveau
options nouveau modeset=0
再在命令行输入 重建initramfs image
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
重启输入 若无输出则表示禁用成功
lsmod | grep nouveau
进行英伟达驱动安装
# 修改运行级别为文本模式
systemctl set-default multi-user.target
# 安装驱动 一直yes/ok即可 界面不动等一下就行
./NVIDIA-Linux-x86_64-430.50.run
# 修改运行级别回图形模式
systemctl set-default graphical.target
# 重启
reboot
# 重启后
nvidia-smi # 查看驱动是否安装成功 若有输出即安装成功
# 英伟达驱动卸载命令
sh NVIDIA-Linux-x86_64-430.50.run --uninstall
3.安装CUDA9.0以及cuDNN
cuda_9.0.176_384.81_linux.run以及对应的CUDNN在文章开始的文件资料中有 自行下载 下载完后直接安装
sudo sh cuda_9.0.176_384.81_linux-run.run
在这里我们已经在上述第二步骤自己安装了匹配的英伟达驱动,所以第一项Driver出来的时候选择N 后面全是Y ,即可。安装后在用户根目录下的.bashrc文件中加入如下内容:
export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
# 保存退出
source .bashrc (立即生效文件)
# 如果是全环境变量(所用用户都能使用),需要在/etc/profile文件加入上面的几句话
下载对应CUDA的CUDNN版本 进行解压
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
复制相关文件到cuda特定目录下(我的cuda安装目录为/usr/local/cuda-9.0/)
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
修改文件权限 并更新软连接
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
cd /usr/local/cuda-9.0/lib64
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
4.安装opencv
添加源并下载安装依赖库
sudo rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
sudo yum install epel-release gcc gcc-c++ cmake python-devel numpy gtk2-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel
yum install -y vim epel-release
yum repolist
yum install -y ffmpeg
yum install ffmpeg-devel
下载并安装OpenCV
wget https://github.com/opencv/opencv/archive/3.4.4.zip
unzip 3.4.4.zip
cd opencv-3.4.4
mkdir release
mkdir install
cd release
# 执行下面这个语句时 可能会出现ippcv下载停滞问题
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=path/to /install -D BUILD_TESTS=OFF ..
make
sudo make install
出现IPPCV下载停滞问题:
直接下载对应ippcv包(这里是ippicv_2019_lnx_intel64_general_20180723.tgz)移动到一定位置(这里移动到了opencv文件夹)修改3rdparty/ippcv/ippicv.cmake再重新cmake即可
# 将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改为手动下载的文件的本地路径(也就是将网络下载的模式改为本地文件下载的模式):
"file:/root/opencv-3.4.4/" #(仅供参考,根据自己的路径填写)
添加库路径(创建opencv.conf文件)
vi /etc/ld.so.conf.d/opencv.conf
输入/usr/local/lib,并保存退出然后进行添加profile环境变量
vi /etc/profile
在末尾加入:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
添加bash环境变量:
vi /etc/bash.bashrc
在末尾加入:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
最后更新环境变量并更新系统库缓存:
source /etc/profile
source /etc/bash.bashrc
sudo ldconfig
重启电脑 输入如下指令查看opencv是否安装成功
pkg-config --cflags opencv
pkg-config --modversion opencv
5.安装YOLO
---安装基础版yolo---
git clone https://github.com/pjreddie/darknet.git
cd darknet
# 修改Makefile
vim Makefile
对文件做如下修改
GPU=1 # 使用GPU训练,若有置为1,可根据自己的需要调整
CUDNN=1 # 这里已经安装了cudnn所以设置1
OPENCV=1 # 这里已经安装了opencv所以设置1
OPENMP=0
DEBUG=0
保存并退出 运行测试命令
./darknet
若有输出则为成功