系统:centos-release-8.1-1.1911.0.8.el8.x86_64
显卡:gtx 960
# 查看系统版本
rpm -q centos-release
# 查看显卡驱动版本
nvidia-smi
从NVIDIA官网 https://www.geforce.cn/drivers 选择相应的驱动并下载,下载下来是.run文件,我这里选择NVIDIA-Linux-x86_64-440.82.run。
安装显卡驱动需要装三个依赖:gcc、kernel-devel、dkms,kernel-devel的版本需要与当前Linux内核的版本一致,不然后面会出现找不到文件的情况。
# 查看内核版本
[root@myserver ~]# uname -r
4.18.0-147.el8.x86_64
# 查看可以安装的版本:
[root@myserver ~]# yum list | grep kernel-devel
kernel-devel.x86_64 4.18.0-147.el8 @anaconda
kernel-devel.x86_64 4.18.0-147.8.1.el8_1 @BaseOS
# 安装kernel-devel
[root@myserver ~]# yum -y install kernel-devel
# 安装gcc dkms
[root@myserver ~]# yum -y install gcc dkms
安装dkms时如果出现:Error: Unable to find a match: dkms报错,先安装yum源优先级插件epel-release,安装完之后再安装即可。
yum install epel-release
修改/etc/modprobe.d/blacklist.conf 文件,如果存在blacklist.conf,添加blacklist nouveau,注释掉blacklist nvidiafb;
如果不存在,创建blacklist.conf文件:
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
运行下面两条命令之后重启
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
给运行文件赋权限,之后运行,注意替换成自己系统到内核版本:
chmod u+x NVIDIA-Linux-x86_64-440.82.run
./NVIDIA-Linux-x86_64-440.82.run --kernel-source-path=/usr/src/kernels/4.18.0-147.el8.x86_64
安装过程中,选择accept,如果提示要修改xorg.conf,选择yes,安装完成重启即可。
参考官方文档安装 Nvidia 容器工具包
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker
官方安装文档:https://tensorflow.google.cn/install/docker
根据需求选择docker镜像,我这里选择:tensorflow/tensorflow:2.0.1-gpu-py3-jupyter
docker pull tensorflow/tensorflow:2.0.1-gpu-py3-jupyter
docker run -u $(id -u):$(id -g) --gpus all -it --name tensorflow -p 8888:8888 -v /home/zs/MachineLearning/tf_data:/tf tensorflow/tensorflow:2.0.1-gpu-py3-jupyter
也可以通过命令行的方式进入:
docker exec -it tensorflow /bin/bash
在本地浏览器通过8888端口,就能访问容器内jupyter notebook
192.168.0.109:8888?token=342710c6eaf2c07adac2c2e1787b661770313ab3dac812c8