Centos7安装深度学习开发环境
Centos7安装深度学习开发环境
安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装nvidia驱动(废弃,cuda10.2版本不需要先装nvidia驱动,安装cuda时同时安装nvidia驱动)
注:新版的cuda tookit自带nvidia驱动,所以不需要先装nvidia驱动再装cuda tookit,这一步可以省略(可以先安装GCC、禁用nouveau)
如何查看cuda tookit能否同时安装nvidia驱动,可以登录cuda tookit的网站 ,选择你要安装的版本,查看安装指导建议,如果让你安装cuda-drivers(即nvidia驱动),那就不需要先安装nvidia驱动(否则会产生依赖冲突):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHEkLYdj-1655869305966)(D:\notes\AI环境安装部署.assets\image-20220622110120265.png)]
安装准备
前提机器上面有支持CUDA的Nvidia GPU,查看支持CUDA的GPU列表: https://developer.nvidia.com/cuda-gpus
lspci | grep -i nvidia
这边服务器使用的是Tesla P100
18:00.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)
af:00.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)
验证系统是否是受支持的Linux版本
uname -m && cat /etc/redhat-release
这边服务器是
[root@jerry ~]# uname -m && cat /etc/redhat-release
x86_64
CentOS Linux release 7.9.2009 (Core)
到这里查看受支持的Linux版本:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements
验证系统是否有GCC编译环境
gcc -v
没有的话需要先安装GCC,Centos7的最小化安装一般勾选上开发软件都会自动安装GCC
安装GCC
默认的 CentOS 软件源上包含一个名称为Development Tools
的软件包组,这个组合包含了 GCC 编译器以及一系列库文件,还有其他编译软件需要用到的工具。
想要安装 Development Tools 包含 GCC 编译器,运行:
sudo yum group install "Development Tools"
这个命令安装了一组新的软件包,包括gcc
,g++
,和make
。
你可能还想安装关于使用 GNU/Linux 进行开发的用户手册:
sudo yum install man-pages
在 CentOS 7 软件源上,默认 GCC 可用版本是 4.8.5
:
[root@jerry ~]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
GCC 已经在你的系统上安装成功,你可以开始使用它了。
验证系统是否安装了正确的内核头文件和开发包
sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
没有安装的话会提示你安装
开始安装
禁用nouveau
nouveau是一个第三方开源的Nvidia驱动,一般Linux安装的时候默认会安装这个驱动。 这个驱动会与Nvidia官方的驱动冲突,在安装Nvidia驱动和和CUDA之前应先禁用nouveau
查看系统是否正在使用nouveau
lsmod | grep nouveau
如果有显示内容,则进行以下的步骤: Centos7禁用方法
#新建一个配置文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
#写入以下内容
blacklist nouveau
options nouveau modeset=0
#保存并退出
:wq
#备份当前的镜像
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
#建立新的镜像
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
#重启
sudo reboot
#最后输入上面的命令验证
lsmod | grep nouveau
安装驱动
GPU 云服务器正常工作需安装正确的基础设施软件,对 NVIDIA 系列 GPU 而言,有两个层次的软件包需要安装:
- 驱动 GPU 工作的硬件驱动程序。
- 上层应用程序所需要的库。
若把 NVIDIA GPU 用作通用计算,需要安装 Tesla Driver + CUDA。
rpm 包安装
- 打开 NVIDIA 驱动下载链接 http://www.nvidia.com/Download/Find.aspx 。 选择对应的版本下载
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vie9NqWP-1655869305968)(D:\notes\AI环境安装部署.assets\image-20220620155947744.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XXUrPE2j-1655869305968)(D:\notes\AI环境安装部署.assets\image-20220620160003434.png)]
- 使用rpm命令安装 rpm 包。
rpm -i nvidia-driver-local-repo-rhel7-440.118.02-1.0-1.x86_64.rpm
这里我的环境报了如下错误:
[root@jerry tcx]# rpm -i nvidia-driver-local-repo-rhel7-440.118.02-1.0-1.x86_64.rpm
警告:nvidia-driver-local-repo-rhel7-440.118.02-1.0-1.x86_64.rpm: 头V3 RSA/SHA512 Signature, 密钥 ID 7fa2af80: NOKEY
原因是对应的key没有导入
先卸载安装失败的rpm包
rpm -e nvidia-driver-local-repo-rhel7-440.118.02
查看当前系统的key文件
[root@jerry tcx]# rpm -q gpg-pubkey-*
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-621e9f35-58adea78
gpg-pubkey-b6792c39-53c4fbdd
gpg-pubkey-8fae34bd-538f1e51
查看nvidia驱动对应的repo文件
[root@jerry yum.repos.d]# cat /etc/yum.repos.d/nvidia-driver-local-rhel7-440.118.02.repo
[nvidia-driver-local-rhel7-440.118.02]
name=nvidia-driver-local-rhel7-440.118.02
baseurl=file:///var/nvidia-driver-local-repo-rhel7-440.118.02
enabled=1
gpgcheck=1
gpgkey=file:///var/nvidia-driver-local-repo-rhel7-440.118.02/7fa2af80.pub
obsoletes=0
手工导入相应的key文件
[root@jerry tcx]# rpm --import /var/nvidia-driver-local-repo-rhel7-440.118.02/7fa2af80.pub
[root@jerry tcx]# rpm -q gpg-pubkey-*
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-621e9f35-58adea78
gpg-pubkey-b6792c39-53c4fbdd
gpg-pubkey-8fae34bd-538f1e51
gpg-pubkey-7fa2af80-576db785
重新执行安装
[root@jerry tcx]# rpm -i nvidia-driver-local-repo-rhel7-440.118.02-1.0-1.x86_64.rpm
软件包 nvidia-driver-local-repo-rhel7-440.118.02-1.0-1.x86_64 已经安装
-
使用yum命令清除缓存
yum clean all
-
使用yum命令安装驱动
yum install cuda-drivers
安装过程中提示需要dkms
centos系统安装dkms:
(1)安装dkms时提示“没有可用软件包”,安装EPEL(Extra Packages for Enterprise Linux)
命令:
yum install -y epel-release
(2)安装kernel-headers, kernel-devel,dkms
命令:
yum install -y kernel-headers kernel-devel dkms
安装完dkms后重新执行
yum install cuda-drivers
-
重启机器
reboot
-
运行nvidia-smi能输出正确信息代表驱动安装成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGv2Lwsp-1655869305969)(D:\notes\AI环境安装部署.assets\image-20220620175824761.png)]
安装CUDA
CUDA (Compute Unified Device Architecture) 是显卡厂商 NVIDIA 推出的运算平台。 CUDA™ 是一种由 NVIDIA 推出的通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题。 它包含了 CUDA 指令集架构(ISA)以及 GPU 内部的并行计算引擎。 开发人员现在可以使用 C 语言, C++ , FORTRAN 来为 CUDA™ 架构编写程序,所编写出的程序可以在支持 CUDA™ 的处理器上以超高性能运行。
GPU 云服务器采用 NVIDIA 显卡,需要安装 CUDA 开发运行环境。
-
CUDA驱动下载https://developer.nvidia.com/cuda-toolkit-archive ,根据你的cuda驱动版本进行选择。
-
选择操作系统和安装包。以 CentOS 7 64 位为例,可按如下方式进行选择:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vl4AON3B-1655869305970)(D:\notes\AI环境安装部署.assets\image-20220621155824095.png)]
需要下载 Base 以及 Patch
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQaJ4dpP-1655869305971)(D:\notes\AI环境安装部署.assets\image-20220621155904532.png)]
-
在 CUDA 安装包所在目录下运行上图所示的如下命令:
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.x86_64.rpm sudo rpm -i cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.x86_64.rpm sudo yum clean all sudo yum -y install nvidia-driver-latest-dkms cuda sudo yum -y install cuda-drivers
-
在/usr/local/cuda/samples/1_Utilities/deviceQuery目录下,执行make命令,可以编译出deviceQuery程序。
-
执行deviceQuery正常显示如下设备信息,此刻认为CUDA安装正确。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awKUBUDP-1655869305971)(D:\notes\AI环境安装部署.assets\image-20220621110122575.png)]
也可以通过直接执行
nvcc -V
来验证cuda tookit是否安装成功如果出现如下错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOon8lqo-1655869305971)(D:\notes\AI环境安装部署.assets\image-20220622111538178.png)]
那可能是没有把cuda的相关命令添加到环境变量中,需要
vim /etc/bashrc
添加:export PATH="/usr/local/cuda-8.0/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
保存文件后执行
source /etc/bashrc
即可,接着重新验证:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rAWEa0qh-1655869305972)(D:\notes\AI环境安装部署.assets\image-20220622111918873.png)]
表示验证成功
cuda tookit和nvidia驱动的卸载教程可以参考:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#removing-cuda-tk-and-driver
安装CUDNN
下载 cudnn:https://developer.nvidia.com/rdp/cudnn-archive
(需要注册为开发者方可下载。)
这里我选择的是rpm方式安装,安装方式可以参考: https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-rpm
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxMEk34s-1655869305972)(D:\notes\AI环境安装部署.assets\image-20220622112259559.png)]
-
下载rpm包到安装路径
-
执行安装
# Enable the local repository. sudo rpm -i cudnn-local-repo-rhel7-8.4.0.27-1.0-1.x86_64.rpm # Refresh the repository metadata. sudo yum clean all # Install the runtime library. sudo yum install libcudnn8-8.4.0.27-1.cuda10.2 # Install the developer library. sudo yum install libcudnn8-devel-8.4.0.27-1.cuda10.2 # Install the code samples and the cuDNN library documentation. sudo yum install libcudnn8-samples-8.4.0.27-1.cuda10.2
-
验证
git clone https://github.com/li-weihua/cudnn_samples_v8.git cd cudnn_samples_v8/mnistCUDNN make clean make
make时可能会报如下错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eVrKhjf7-1655869305973)(D:\notes\AI环境安装部署.assets\image-20220622113152358.png)]
这是因为缺少依赖,安装freeimage-devel就可以了
sudo yum makecache sudo yum -y install freeimage-devel
解决完依赖后接着重新make
make clean && make ./mnistCUDNN
控制台打印出
Test passed!
信息表明cudnn安装成功