ubuntu下安装gpu版本tensorflow

时间:2022-04-05 06:30:54

这些天搞tensorflow,电脑辣鸡,cpu计算太慢,想换gpu,要装三个东西:n卡驱动(375)、cuda(8.0)、cudnn(6.0版本居然不行,必须是5.1)。卡在n卡驱动好久,还重装了了一遍Ubuntu(装完后打不开系统)。网上的教程没一篇完全能用的,最后结合贴吧网友的建议才完成了安装。


首先用lspci命令查看一下NVIDIA版本号,

leavan@leavan-Lenovo-S41-70:~$ lspci
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 (rev e3)http://write.blog.csdn.net/postedit
00:1c.2 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1c.3 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 (rev e3)
00:1c.4 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #5 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
00:1f.6 Signal processing controller: Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
02:00.0 Network controller: Intel Corporation Wireless 3160 (rev 93)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
04:00.0 3D controller: NVIDIA Corporation GK208M [GeForce 920M] (rev a1)

从最后一行发现了NVIDIA版本是GeForce 920M。

然后从https://developer.nvidia.com/cuda-gpus找到对应的计算能力,3.5,嘛,勉强可以。

到http://www.nvidia.cn/Download/index.aspx?lang=cn查看一下适合安装的驱动版本号,一般都是最新的吧。我的是375。

下载完成之后,使用sudo chmod +x NVIDIA(改为你下载的文件名).run授权,

使用vim /etc/modprobe.d/blacklist.conf编辑,在末尾加入blacklist nouveau屏蔽原来驱动。(实际有没有效果不知道,反正我重启后还是用的是nouveau)

init 3进入命令行模式,进入下载驱动的目录./文件名.run,按照提示安装即可,安装完成后reboot。

事实上这样还是有可能安装不上,使用nvidia-smi命令如果提示找不到的话,就打开左上角的搜索,搜附加驱动,设置NVIDIA驱动为主驱动,应用更改,重启。

然后我的linux系统就这样第一次崩溃了,进入系统显示低画面,其实这个时候只要进入bios,关闭掉安全启动即让secure boot变为disabled即可。

终于安装上了n卡驱动,进入系统使用nvidia-smi命令可以查看到显卡状态了。

然后到https://developer.nvidia.com/cuda-downloads下载cuda,我下载的是deb,直接按照提示安装完成即可。

之后到https://developer.nvidia.com/cudnn安装cudnn,这个有些奇怪,需要注册,不过一步步走下去很容易就能下载了(建议下载5.1版本)。

安装命令

tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
 先这样,之后如果使用tensorflow的时候报错可以按照提示来,这篇文章会有很大帮助:http://blog.csdn.net/hungryof/article/details/52746279 

之后配置环境变量,vim ~/.bashrc,在末尾添加以下两行:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"export CUDA_HOME=/usr/local/cuda

然后使用source ~/.bashrc立刻生效。

万事俱备,只差tensorflow了。

$ sudo apt-get install python-pip python-dev
$ sudo apt-get install python-numpy swig python-dev python-wheel
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
$ sudo -H pip install --upgrade $TF_BINARY_URL