1660ti显卡、ubuntu16.04中安装显卡驱动,cuda, cudnn

ubutntu16.04 1660ti cuda cudnn安装

  • 环境说明
  • Ubuntu安装
  • 显卡驱动安装
    • 主要代码
  • cuda9.0安装
    • 小结:
  • cudnn安装
  • 后续1
    • 小结:
  • 后续2

环境说明

项目 版本
linux ubuntu16.04
gpu NVIDIA 1660ti
cpu Intel i5-9400F
显卡驱动 430.64
cuda 9.0
cudnn cudnn-9.0-**-v7
tensorflow-gpu 1.8.*

Ubuntu安装

台式256G固态硬盘,265G机械硬盘。windows系统装在固态硬盘上,剩余100G固态空间。具体磁盘分配为:

具体分区 大小 类型 位置
/boot 200M 逻辑分区 固态硬盘
efi 100M 主分区 固态硬盘
swap 4000M 逻辑分区 固态硬盘
/ 剩余 逻辑分区 固态硬盘
home 265G 逻辑分区 机械硬盘

台式机装Ubuntu rufus刻录选择的方式是gpt,笔记本选择mbr

显卡驱动安装

第一次装的显卡驱动是418的驱动,参考这个博文418显卡驱动,后来cuda出现问题更新到最新的显卡驱动,当前的显卡驱动是430.64。查询自己显卡对应的驱动及下载地址,我的1660ti官方推荐的显卡驱动见下图
1660ti显卡、ubuntu16.04中安装显卡驱动,cuda, cudnn_第1张图片
紧着着参考Azie装显卡驱动在ubuntu中装显卡驱动
装完驱动,输入nvidia-smi可以出现显卡的信息就说明装成功啦!
NVIDIA下载驱动的链接

主要代码

提前下载好显卡的驱动文件
检测内核文件

sudo apt-get install linux-headers-$(uname -r)

禁止第三方启动

sudo gedit /etc/modprobe.d/blacklist.conf

最后加上两行内容

blacklist nouveau
options nouveau modeset=0

更新内核

sudo update-initramfs -u

重启(reboot)
检查是否成功

lsmod | grep nouvea

如果没有输出,则表示成功
接着进入终端(Ctrl+Alt+F2),登录然后,安装驱动
注意安装的时候有一个x-config选项选择no

sudo service lightdm stop
sudo bash NVIDIA-Linux-x86_64-xxx.xx.run -no-opengl-files  #进入自己下载的驱动目录.xconfig 选择no,参考官网提示
sudo service lightdm start

nvidia-smi查看安装是否成功

cuda9.0安装

由于自己的程序是要求较低版本的tensorflow,而cuda10.0是针对tensorflow13.0以及之后的版本,故安装cuda9.0
cuda的安装方式有很多,官网提供的方式,包括runfile,deb(local), deb(network),自己几种方式都尝试,没有一种成功,可能某些操作没有注意到,cuda9.0官网下载。自己采用的方式是:
在官方上复制下载链接,采用迅雷下载。copy到Linux安装,结果安装失败。采用google浏览器下载后安装,也是安装失败,提示安装包损坏?安装完成就是不会出现样例。之后安装了一个9.2版本的,样例测试通过,tf导入不进去。,提示找不到cuda.so.9.0找不到。最后很无奈,将ubuntu的源切换回去(下载采用的是中科大的源),按照官网的提示安装,速度巨慢,以下这个表
1660ti显卡、ubuntu16.04中安装显卡驱动,cuda, cudnn_第2张图片
之前未注意到后面的Purpose,直接sudo apt-get install cuda-9-0,同时将显卡驱动安装成了384,安装完cuda,自己将显卡驱动又切换会430(老是担心显卡驱动有问题),所以这里可以直接根据后者的提示sudo apt-get install cuda-toolkit-9-0,不在安装显卡驱动。安装完成后,注意要在/.bashrc中添加
export CUDA_HOME=/usr/local/cuda 否则tensorflow找不到cuda的安装位置,同样回报错

小结:

  1. 先自己装显卡驱动
  2. 推荐按照官网提示安装cuda(而不是自己下载包安装),选择不按照驱动的指令sudo apt-get install cuda-toolkit-9-0.cuda9.0官方安装文档
  3. 安装的时候切换Ubuntu的源,慢也忍者吧,采用其他源提示安装包损坏
  4. 安装cuda结束添加export CUDA_HOME=/usr/local/cuda至/.bashrc
  5. 以上只是个人经验,仅供参考,不喜轻喷

cudnn安装

根据豆角二的帖子,cudnn安装较低版本的,开始我和他选择一样的版本,后来选择了更低的版本cudnn-9.0-linux-x64-v7.tfz,cudnn下载地址删除之前的cudnn需要将移除cuda/include/cudnn.h /usr/local/cuda/include/ cuda/lib64/libcudnn* ,然后再一次解压该文件,拷贝相关文件.
安装完这一切,应该是差不多了。conda中创建一个新的环境,导入tensorflow目测没问题。

后续1

非常开心的测试了一个程序,结果还是提示错误,出现了这个错误failed call to cuInit: CUDA_ERROR_UNKNOWN
参考链接
sudo apt-get install nvidia-modprobe.
重启完成,这个问题解决

载入数据报告错误,具体错误为Failed to get convolution algorithm. This is probably because cuDNN failed to initialize
具体原因是tensorflow具体版本过高,后来通过

pip install tensorflow-gpu==

查询具体可以安装的tf版本,安装1.8即可。

然后测试,就没有问题~

小结:

  1. cudnn版本不对应,有可能可以导入tf成功,但是却不能使用gpu加速,所以选择正确的cudnn版本也很重要
  2. sudo apt-get install nvidia-modprobe解决failed call to cuInit: CUDA_ERROR_UNKNOWN
  3. 降低tf的版本解决“Failed to get convolution algorithm…”错误。通过**pip install tensorflow-gpu==**查询当前可以安装的tf版本

后续2

gpu温度过高,而风扇却只有50%,经过一下步骤将风扇更改为手动
nvidia-settings -a "[gpu:0]/GPUFanControlState=1"

启动手动调转速

sudo  gedit /etc/X11/xorg.conf

调节Option选项

Section "Device"
	Identifier "Device0"
	Driver "nvidia"
	VendorName "NVIDIA Corporation"
	BoardName "GeForce GTX 570"
	Option "NoLogo" "True"
	Option "Coolbits" "4"
EndSection

重启,打开nvidia-settings,观察thermal Settings中有无Enable GPU Fan Settings,选择对应的速度Apply

【参考文档】
安装显卡驱动、cuda、cudnn
ubutn 1660各版本
英伟达显卡驱动查询及下载
cuda下载地址
cudnn下载地址(需要注册)
cuda9.0官方安装文档
cuda10.0官方安装文档
支持加速的gpu以及各gpu算力
failed call to cuInit: CUDA_ERROR_UNKNOWN解决方案
gpu风扇自定义转速1
gpu风扇自定义转速2

你可能感兴趣的:(tensorflow,linux,机器学习)