原文链接: 在 CentOS 7.6 上部署 CUDA、cuDNN、tensorflow-gpu 运行环境 | 逍遥游
网上关于安装 tensorlfow-gpu 环境的博客可谓是多如牛毛,但是参考了很多篇,都没能成功的在 CentOS 7.6 上把整套环境布置上。折腾了差不多一个礼拜,时间跨度长达几个月,总算是把这一堆装上了,分享一下过程。本文主要目的在于给出一个非常详细的安装过程(从一个全新环境开始后的每一个操作)以及环境配置说明,这样后面的人参考的时候就能根据不同之处快速定位问题。
本文中使用的服务器是 Google Cloud 的VPS,下图是详细配置。
CentOS 7.6.1810
(不太确定是不是 minimal,不过没有wget,应该是吧)因为目的是运行tensorflow程序,所以各个版本都要跟着tf来。目前为止(确切来说是昨天),默认安装的tensorflow-gpu版本是1.12,这个版本也发布了挺久的了,尽量选择新的稳定的。
参照以下链接中的tf版本支持情况,可以看到 1.12 (仅)支持 CUDA 9 和 cuDNN 7,需要注意的是,这里虽然没有写小版本号,但是实际上它支持且仅支持9.0,其他版本会出现找不到so库的错误。
Tested build configurations
所以 CUDA 版本选择 9.0,cuDNN 选择 7.0 版本。
即便您的版本跟环境都相同,也不建议直接复制粘贴命令,因为随着时间流逝,很多文件名都已变化
本文最后更新于 20190305,如果按照文中步骤出现错误,可以通过邮件联系我。
各个教程都建议通过cuda安装包来安装驱动,但是测试了很多次都没有成功,反复出现
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
这个错误,试了网上很多诸如禁用nouveau模块、安装kernel包,都没有解决这个问题,安装cuda9.2倒是能成功运行,可坑爹的tensorflow只认9.0版本啊!
后来尝试单独安装Nvidia driver,发现是完全OK的,只要跟cuda版本兼容就行。所以本教程中Nvidia驱动是单独安装的,此外单独安装还有另外一个原因:后期准备在docker里运行程序,宿主机上只安装必需的程序。
首先,点击链接,选择相关的参数,没有给出CentOS的选项,所以选了Linux 64-bit RHEL7
,然后搜索进入下载页面,点击下载,同意并继续,然后在浏览器下载队列里复制文件下载链接。
Download Drivers
我的是http://us.download.nvidia.com/tesla/384.183/nvidia-diag-driver-local-repo-rhel7-384.183-1.0-1.x86_64.rpm
。
连上服务器,切换到root用户,首先下载文件。
sudo su # 如果没有wget,先安装 yum install -y wget wget http://us.download.nvidia.com/tesla/384.183/nvidia-diag-driver-local-repo-rhel7-384.183-1.0-1.x86_64.rpm |
然后安装驱动,会自动装上一些依赖,如dkms什么的。
rpm -i nvidia-diag-driver-local-repo-rhel7-384.183-1.0-1.x86_64.rpm yum clean all yum install -y cuda-drivers |
安装完毕之后输入 nvidia-smi
命令,不出意外就能看见输出了。
驱动安装完毕,还是挺简单的,没有网上那么复杂的安装和修改模块啥的。
如果只想在docker里使用GPU,后面的CUDA和cuDNN就都不用安装。
查看全文:在 CentOS 7.6 上部署 CUDA、cuDNN、tensorflow-gpu 运行环境 | 逍遥游