GPU环境部署:Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN
Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN
文章目录
- 前置条件
- 1. 基本概念
- 2. 需要用到的文件
- 2.1 驱动文件
- 2.2 CUDA
- 2.3 CUDNN
- 2.4 Tensorflow
- 2.5 版本配套关系
- 2.5.1 显卡驱动版本号与CUDA版本号对应关系
- 2.5.2 cuDNN版本和CUDA版本关系
- 2.5.3 CUDA-cuDNN-TF的关系
- 2.6 相关指导资料
- 3. 环境准备和检查
- 4. 安装驱动
- 4.1 旧驱动检查
- 4.2 安装驱动
- 4.3 新驱动检查
- 4.4 驱动卸载
- 5. 安装CUDA
- 5.1 安装前准备
- 5.2 开始安装CUDA
- 5.3 安装CUDA补丁
- 5.4 添加环境变量
- 5.5 检查
- 5.6 卸载CUDA
- 6. 安装tensorflow
- 6.1 安装前的准备
- 6.2 安装tensorflow
- 6.3 检查gpu和cpu版本的tf
- 6.4 卸载tensorflow
- 7. 安装CUDNN
- 8. 可能遇到的问题
- 9. 参考
前置条件
- 确认你的电脑上有一张支持CUDA的显卡
lspci | grep -i nvidia
只有英伟达的部分中高端显卡才支持CUDA,因此确认是英伟达的显卡之后,还要查看你的显卡型号是否包含在NVIDIA官网的CUDA GPUs列表里面,里面包含的显卡类型都支持CUDA.
- 确认你安装的Linux发行版
查看CUDA支持的Linux版本,确认你的系统是否支持.
uname -m && cat /etc/*release
- 确认你的系统安装了gcc编译工具
这个条件一般情况下是满足的,因为一般的Linux发行版在安装系统时就默认安装了gcc,从这里查看。
运行CUDA程序的时候不需要gcc,但是在使用CUDA工具进行开发的时候需要用到它。可以在bash中输入以下命令确认:
gcc --version
- 确认你的系统已经安装了正确的kernel headers and development packages
在安装CUDA驱动前,必须要安装好与你的Linux系统内核版本相匹配的内核头和开发包。比如你的系统内核版本是3.17.4-301,那么你必须也要安装3.17.4-301版本的内核头和开发包。
使用以下命令确认你的系统内核版本:
uname -r
不同的操作系统,通过这里查看。
1. 基本概念
- CUDA:用于GPU编程的语言,跑TF的时候用了GPU,TF里面很多函数(或者依赖库)是CUDA语言编写的。不同TF版本需要不同的CUDA。
- cuDNN:NVIDIA为深度学习,矩阵运算写的一个加速库。CUDA版本必须和cuDNN版本匹配。cuDNN和TF版本匹配与否则无所谓(不过CUDA和TF版本必须匹配,所以cuDNN版本和TF版本是间接依赖关系)。
- TF:这个没什么好说的。个人经验,别用太新的,如果每次都用最新的,那么进而导致CUDA也要不断更新
- CUDA驱动版本:保持最新就好了,CUDA驱动版本要求和CUDA版本匹配,而CUDA又要求cuDNN/TF是匹配的。不过CUDA驱动版本是向下兼容的,所以保持最新就没事。输入nvidia-smi可以查看。
注:建议先安装 CUDA,再安装 tensorflow ,最后安装 cuDNN,严格按照这个顺序装,可以避免返工,避免一步错就必须重装。
2. 需要用到的文件
2.1 驱动文件
下载地址:https://www.nvidia.com/download/index.aspx?lang=en-us
2.2 CUDA
下载地址: https://developer.nvidia.com/cuda-toolkit-archive
指导资料:
- CUDA Installation Guide for Microsoft Windows;
- NVIDIA CUDA Installation Guide for Linux
- https://blog.csdn.net/baobei0112/article/details/79755803
2.3 CUDNN
下载地址: https://developer.nvidia.cn/rdp/cudnn-archive
下载地址: https://developer.nvidia.com/rdp/cudnn-download
指导资料: https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html
下载账号密码: cudnndown@163.com;Cudnndown123
。这个账号好像失效了。。。
查了下,提供另外一种方式:
来,告诉你不需要登录不需要问卷调查,直接使用apt管理的方法,apt不比下载安装更方便啊。
开放的apt repo,你进去直接下载当然也是可以的。
参考他们N家自己开的docker项目 nvidia / cuda照着它dockerfile里公开的地址,你直接添加到你的ubuntu中就可以。
Index of /compute/cuda/repos/ubuntu1604/x86_64下面是显卡驱动和cuda开发套件。
Index of /compute/machine-learning/repos/ubuntu1604/x86_64 下面是libcudnn和libnccl完美,他家的一切都在这儿了。
作者:任卫
链接:https://www.zhihu.com/question/37082272/answer/330575612
来源:知乎
2.4 Tensorflow
下载地址: https://pypi.tuna.tsinghua.edu.cn/simple;https://pypi.python.org/pypi/
windows whl源:https://www.lfd.uci.edu/~gohlke/pythonlibs/#tensorflow
指导资料:https://www.tensorflow.org/install/pip?hl=ko
2.5 版本配套关系
2.5.1 显卡驱动版本号与CUDA版本号对应关系
显卡驱动版本号与CUDA版本号对应关系
2.5.2 cuDNN版本和CUDA版本关系
cuDNN版本和CUDA版本关系
2.5.3 CUDA-cuDNN-TF的关系
官方资料:https://www.tensorflow.org/install/source#tested_build_configurations
第三方资料:https://blog.csdn.net/oMoDao1/article/details/83241074?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2.6 相关指导资料
维护多个cuda版本: https://blog.csdn.net/xs11222211/article/details/84782046
- Ubuntu 16.04+1080Ti机器学习基本环境配置:
https://blog.csdn.net/MahoneSun/article/details/80808930
- Ubuntu16.04环境GPU驱动和tensorFlow安装小结 :
http://3ms.huawei.com/hi/group/3050921/wiki_4891955.html
- Ubuntu18.04 Install Cuda、Cudnn、Tensorflow-gpu:
https://blog.csdn.net/qq_34296627/article/details/82833172
- 英伟达驱动卸载:
https://blog.csdn.net/ezhchai/article/details/80536949
- 显卡性能:
https://developer.nvidia.com/cuda-gpus
3. 环境准备和检查
重要:
- 建议按照2.5章节,下载好对应自己目标GPU的cuda、驱动和cudnn版本。
- 装好相应版本的编译器等。
检查:
关闭图形界面:
(1) sudo systemctl set-default multi-user.target
(启动时默认多用户文本界面)
sudo systemctl set-default graphical.target
(启动时默认图形界面)
(2) 或者也可以使用,关闭:sudo service lightdm stop
恢复:sudo service lightdm stop
(3) 关闭显卡驱动:
创建:/etc/modprobe.d/blacklist-nouveau.conf
编辑:blacklist nouveau
执行: options nouveau modeset=0
保存退出执行:sudo update-initramfs –u
验证是否关闭:lsmod | grep nouveau
没有输出则表示屏蔽好了,如果仍有输出,可以尝试重启.
4. 安装驱动
4.1 旧驱动检查
如果有旧的驱动,要完全卸载后再安装新的驱动。
卸载方式: 见4.4章节。
4.2 安装驱动
sudo sh cuda_9.0.176_384.81_linux.run
显示pass 就基本没什么问题了。
4.3 新驱动检查
nvidia-smi
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAnzlBA5-1593317635768)(http://image.huawei.com/tiny-lts/v1/images/3ae7726cc85a1e89e679_555x160.png@900-0-90-f.png)]
4.4 驱动卸载
停止 lighttdm : sudo service lightdm stop
OR sudo /etc/init.d/lightdm stop
卸载:sudo /usr/bin/nvidia-uninstall
OR sudo apt-get install autoremove --purge nvidia*
OR sudo apt-get remove purge nvidia*
参考资料:https://blog.csdn.net/ezhchai/article/details/80536949
5. 安装CUDA
5.1 安装前准备
确认计算机有支持计算的GPU板卡:
lspci | grep –i nvidia (刷新:update-pciids)
uname -m && cat /etc/*release
确认计算机是否有正确的kernel headers 和 development packages:
在安装cuda驱动时,安装的内核头和开发包必须和系统运行的内核版本相一致;
在这里查看CUDA支持的内核版本:
Native Linux Distribution Support in CUDA 9.0
Native Linux Distribution Support in CUDA 10.2
确认内核版本:
uname -r
然后根据你的系统内核版本使用apt命令安装对应的内核头和开发包。在ubuntu中使用以下命令
sudo apt-get install linux-headers-$(uname -r)
当然,如果你的系统本身就满足要求,输入这条命令不会安装新的东西。
其他Linux发行版安装内核头和开发包的命令参考这儿。
【注意】 如果改变了系统内核,对应的内核头和开发包也必须做相应更改,否则cuda将无法使用;
- 确认 gcc版本是否符合要求,对应的 gcc 在这里查看。
gcc --version
5.2 开始安装CUDA
安装有两种方式:run
包 和 deb
包; 下载界面有相关安装方式; 建议用第一种。
两种安装方式的优缺点:
使用.run包的优点是支持更多的Linux发行版,不管是使用.deb格式的Ubuntu/Debian,还是使用.rpm格式的其他大多数Linux发行版;其缺点是无法更新Linux系统的本地包管理系统,也就是只能单机/stand alone安装,无法在线更新,而且只支持64位的系统。
使用指定发行版的安装包的优缺点和使用.run包刚好相反。
注意: 如果安装过驱动了,cuda
这里装驱动的时候要选 no
。
前面已经手动安装了NVIDIA驱动,所以在安装cuda时,询问是否安装NVIDIA图形驱动时选择否;其他询问默认即可;
sudo sh cuda_.run
(driver 选no
).
5.3 安装CUDA补丁
sudo sh patch1.run
sudo sh patch2.run
sudo sh patch3.run
sudo sh patch4.run
5.4 添加环境变量
5.4.1 etc/profile
$ sudo /etc/profile
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
最后记得: source /etc/profile
。
5.4.2 ~/.bashrc
$ sudo ~/.bashrc
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
最后记得: source ~/.bashrc
。
5.4.3 移除之前禁用的内容
移除这个文件:/etc/modprobe.d/blacklist-nouveau.conf
5.4.4 重启
5.5 检查
nvcc –V
5.6 卸载CUDA
sudo /usr/local/cuda-8.0/bin/uninstall_cuda-8.0.pl
根据自己安装的版本卸载。
6. 安装tensorflow
6.1 安装前的准备
python2 = 2.7,
python3 = 3.3-3.6,
pip == 20.x,
setuptools >=40.x,
Numpy == 1.16.0 版本太高否则会出现问题 6.5(pip3 install numpy==1.16.0)
# Numpy == 1.16.0这个版本适配 tensorflow==1.12.0版本; 其他版本的tensorflow不一定是这个版本兼容。
6.2 安装tensorflow
注:根据这个地址查看CUDA和CUDNN以及Tensorflow的版本配套关系,安装合适Tensorflow。
Google 官方教程: https://www.tensorflow.org/install/gpu
pip install tensorflow==1.15
pip3 install tensorflow-gpu==1.15
国内:
pip3 install tensorflow==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
建议:1. 换国内源快。2. cpu和gpu版本一致。
6.3 检查gpu和cpu版本的tf
import tensorflow as tf
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
sess = tf.Session()
print(product)
OR
python -c "import tensorflow as tf; print(tf.__version__)"
这里如果有问题,别急,先把CUDNN装好再检查一遍就知道gpu版本的tf装好了。
6.4 卸载tensorflow
sudo pip_x uninstall tensorflow
sudo pip_x uninstall tensorflow_gpu
7. 安装CUDNN
很简单,把下载好的CUDNN拷贝到安装地址,解压添加环境变量就好,执行以下命令。
tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
chmod a+r /usr/local/cuda/include/cudnn.h
8. 可能遇到的问题
- No devices were found https://devtalk.nvidia.com/default/topic/1050968/nvidia-smi-quot-no-devices-were-found-quot-ubuntu-18-04/?offset=1
https://devtalk.nvidia.com/default/topic/1046442/linux/nvidia-smi-no-devices-were-found-/
- 安装tensorflow 很慢
pip install tensorflow == xxx -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install tensorflow-gpu == xxx -i https://pypi.tuna.tsinghua.edu.cn/simple/
- 查看cuda 和 cudnn的版本
查看cuda 版本
cat /usr/local/cuda/version.txt
查看cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR –A
- /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’._np_qint8 = np.dtype([(“qint8”, np.int8, 1)])
https://www.cnblogs.com/youpeng/p/11732790.html
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
https://blog.csdn.net/hq86937375/article/details/79696023
- Pip安装很慢:更换pip源
su root
cd /
mkdir .pip
cd .pip
vim pip.conf
文件内容:
[global]
index-url =https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
- 卸载之后,重启一下。可以看到分辨率有所不同
https://blog.csdn.net/ezhchai/article/details/69663082
中描述的方法,重新安装cuda9.0和cudnn7.0即可。
9. 参考
NVLink 和 NVSwitch 区别和规格
tensorflow各个版本的CUDA以及Cudnn版本对应关系
GPU环境部署:Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN相关推荐
- 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
http://f.dataguru.cn/thread-660774-1-1.html 发表于 2016-7-20 09:04 | 只看该作者 |倒序浏览 |阅读模式 深度学习主机环境配置: Ubun ...
- 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)
从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自 : 从零开始搭建深度学习服务器: 基础环境配置( ...
- ubuntu22.04安装显卡驱动+cuda+cudnn
ubuntu22.04安装显卡驱动+cuda+cudnn 1. 下载驱动和卸载.禁用自带驱动程序 1.1 查看系统显卡型号 1.2 从NVIDIA官网下载相应驱动 1.3 卸载Ubuntu自带的驱动程 ...
- 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...
- 深度学习环境配置Ubuntu16.04+CUDA8.0+CuDNN+Anaconda2+openCV2.4.9+caffe(全离线GPU版)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Bernice_lying [前言] 深度学习燎原之势势不可当,现在很多现场使用深度方法的比赛需要自行 ...
- anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
1 安装选择 1.1 平台 目前TensorFlow已支持Mac.Ubuntu和Windows三个主流平台(64位平台), 1.2 GPU vs CPU 在安装时可以选择安装版本是否支持GPU, 1. ...
- Pycharm基本使用与GPU环境部署
一.基本配置 我们安装好PyCharm后,首先要进行一些小配置,比如主题,字体,字体颜色等. 我们打开PyCharm后,点开file,找到Setting 然后就会跳出Setting的窗口 可以说PyC ...
- 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080/980ti+CUDA8.0
8月份的时候折腾tensorflow,在ubuntu上安装nvdia显卡驱动一直有问题,没有折腾好,今天看到这篇文章,起到了一定的帮助,记录一下. bing上搜索关键字,一定要搜索 ubuntu 16 ...
- gtx1080 matlab,深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
这个系列写了好几篇文章,这是相关文章的索引,仅供参考: 接上文<深度学习主机攒机小记>,这台GTX1080主机准备好之后,就是配置深度学习环境了,这里选择了比较熟悉Ubuntu系统,不过是 ...
最新文章
- python scale 窗口部件 使用_Tkinter介绍及教学-Python教学【StudyQuant-Python量化投资课堂】...
- java防止表单二次提交_防止表单重复提交
- Linux 开机文件系统发生错误
- LUA和C#关于字符串中\0的处理
- 【.Net Micro Framework PortingKit - 08】GPIO驱动
- adb push ,adb pull和adb install的区别
- python3什么意思_python3是什么意思啊
- 【43】学习处理模版化基类内的名称
- Xv6 Page Table
- python足球数据分析_我用Python对科比NBA生涯进行了一个数据分析
- 优启通制作系统u盘_优启通 v3.6.2020.0620 VIP版/免费版-好用的U盘启动盘制作工具...
- ADB 环境变量配置教学
- 第一台计算机英语句子,20个虚拟语气句子带翻译
- [荐][转]如何用美剧真正提升你的英语水平
- 从零构建通讯器--4.3日志打印实战,捋下main函数的调用顺序
- 【VINS-MONO测试】安卓手机采集mono+imu数据
- ThinkPHP6 预防XSS攻击的一点小建议
- remote-incorrect-username-or-password-access-token
- 小米AX9000安装docker的Portainer面板从社区版升级到商业版参考
- iOS 开发国外的一些网站
热门文章
- easyui datagrid自动换行行号自动变高
- coolpad(酷派)真机测试logcat打印日志输出level级别设置
- erlang项目常见OTP行为模式
- 喜报销发布V2.6.1,领导审批可选择“加签”人,已审批单据可“作废”
- 人工智能应用(二):从“估车价”看机器学习
- nodejs用egg框架实现图片上传
- 笔记本电脑彻底删除硬盘数据
- springboot使用注解作为切点
- UI界面中的图标设计趋势与最佳实践
- [开源工具]Win10-87键盘如何使用数字小键盘功能?