硬件篇
- 首先是进入BIOS,这里要选择u盘启动,但不能使用uefi启动
- 这里按下tab键修改引导的镜像文件的硬盘盘符。这里要记下centos7镜像u盘的label是什么,可以事先重命名好u盘的名字,这里删掉原本的hd:LABEL={}quiet 然后在花括号范围内填上u盘的名字就好了。![在这里插入图片描述](https://img-blog.csdnimg.cn/20181119140456727.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTY1MTk0NzQ1,size_16,color_FFFFFF,t_70
- 然后是喜闻乐见的装系统了
- 装好要能ping通,注意防火墙,然后用putty开始干活吧
NVIDIA驱动篇
首先是禁用nouveau
centos自带的显卡驱动,这不是机器学习环境想要的驱动- 在配置文件中禁用nouveau
vi /etc/modprobe.d/blacklist.conf 添加:blacklist nouveau
CentOS 7:
vim /usr/lib/modprobe.d/dist-blacklist.conf
或
vim /lib/modprobe.d/dist-blacklist.conf
并且在加上blacklist nouveau之后还要加上一行options nouveau modeset=0
- 备份原来的 initramfs nouveau image镜像
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
- 创建新的 initramfs image镜像
dracut /boot/initramfs-$(uname -r).img $(uname -r)
重新启动机器后驱动禁用完成
下载NVIDIA驱动
检测显卡驱动及型号
##添加ELPepo源
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
##安装NVIDIA驱动检测
$ sudo yum install nvidia-detect
$ nvidia-detect -v
- 检查是否安装了GPU:
lspci | grep -i nvidia
- 然后去官网下载对应的NVIDIA驱动,runfile形式
- 安装gcc、g++编译器
yum install gcc
yum install gcc-c++
- 安装kernel-devel
yum install kernel-devel kernel-headers
这里可能要重启一下才能生效
安装完后可以通过nvdia-smi查看显卡使用情况
cuda9.0
- 之后去官网下载cuda9.0
这里一定要注意,并不是越新越好,比如tensorflow的最新的版本是基于cuda9.0安装的。Cuda10没有,cuda9.2只能使用旧版的tensorflow - 建议下载runfile版本的cuda。亲测rpm的大坑。
- 安装完成后会在/usr/local目录下生成一个软连接,cuda的路径配置都用这个软连接了。
设置全局的path,这样其他用户也能享受到cuda
vim /etc/bashrc
#gpu driver
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 LD_LIBRARY_PATH="/usr/local/cuda/lib:${LD_LIBRARY_PATH}"
cudnn
- 这个也要去官网下载对应cuda9.0的版本的cudnn
- 然后解压,把库拷贝过去
tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz
cd cuda
cp include/* /usr/local/cuda/include/
cp lib64/lib* /usr/local/cuda/lib64/
运行cuda自带的测试可以发现更多问题
检查 CUDA Toolkit是否安装成功
nvcc -V
编译samples例子
进入到Samples安装目录,然后在该目录下终端输入make,等待十来分钟。
编译完成后测试
可以在Samples里面找到bin/x86_64/linux/release/目录,并切换到该目录
运行deviceQuery程序,sudo ./deviceQuery
查看输出结果,重点关注最后一行,Pass表示通过测试
若出现cudaGetDeviceCount returned 30/35的错误,说明是显卡的驱动版本和cuda的版本不匹配,需要重新下载一个NVIDIA驱动的runfile重新安装显卡驱动
tensorflow
- 这里使用tensorflow测试cuda情况
- 只安装tensorflow-gpu版本,不安装cpu版本,这样若显卡调用失败可以看到debug信息
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())