Centos8.1安裝NVIDIA顯卡驅動及基於docker搭建tensorflow開發環境

一、系統版本及顯卡

系統:centos-release-8.1-1.1911.0.8.el8.x86_64

顯卡:gtx 960

# 查看系統版本
rpm -q centos-release


# 查看顯卡驅動版本
nvidia-smi

二、顯卡驅動安裝過程

1. 下載驅動

從NVIDIA官網 https://www.geforce.cn/drivers 選擇相應的驅動並下載,下載下來是.run文件,我這裏選擇NVIDIA-Linux-x86_64-440.82.run。

2. 安裝依賴

安裝顯卡驅動需要裝三個依賴: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

3. 阻止 nouveau 模塊的加載

修改/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

4. 重新建立initramfs image文件

運行下面兩條命令之後重啓

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak 

dracut /boot/initramfs-$(uname -r).img $(uname -r)

 

5. 安裝驅動

給運行文件賦權限,之後運行,注意替換成自己系統到內核版本

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,安裝完成重啓即可。

 三、docker搭建tensorflow開發環境

 

  • 宿主機需要安裝NVIDIA顯卡驅動
  • 宿主機需要安裝nvidia-container-runtime

1、安裝nvidia-container-runtime

 

參考官方文檔安裝 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

2、下載啓動Tensorflow容器

官方安裝文檔: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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章