最近新配置了一个新电脑,装上了 GTX1070 Ti,在安装cuda 8.0 和tensorflow 1.2 ,趟了一点坑。在此记录下来,希望能给他们一些帮助。
1、安装 ubuntu 14.04
安装过程不赘述,当然,你也可以安装 16.04或者17.04.安装完成后,重启。如果显示的分辨率发生变化,并且还调整不了分辨率,不用担心,装好驱动就好了。
2、安装 NVIDIA 驱动
(1)一定先要卸载 nouveau 开源驱动。
打开终端,获得权限:sudo su
cd /etc
cd modprobe.d
touch blacklist-nouveau.conf (这是创建一个blacklist-nouveau.conf文件,接下来往里面 写入两行命令)
echo "blacklist nouveau" >>blacklist-nouveau.conf
echo "options nouveau modeset = 0" >>blacklist-nouveau.conf
更新一下 kernel:
sudo update-initramfs -u
此时,你可以去 /etc/modprobe.d 里面看看,是否存在blacklist-nouveau.conf ,里面是否有两条命令。如果有,执行下一步。
3、安装nvidia驱动
此处,网上一直有很多教程,说 ctrl +alt +F1 进入,然后 sudo service lightdm stop 等等,然后我这样安装两次,重装了两次系统,都以失败告终。
后来,我不用这种方式安装了,直接 ctrl + alt +T ,打开终端,利用 sudo apt-get install 命令安装,如下:
(sudo apt-get install nvi *),注意:这不是安装命令,此时你按 tab 键,你会发现,显示出来好多驱动。我选择的是 367-dev。完整的命令如下:
sudo apt-get install nvidia-367-dev
其实,你选择什么版本的驱动,最后安装的都是 384 版本(可能随着时间的推移,发生版本升级)。不要怕,因为384版本是往下兼容的。你可以利用 nvidia-smi 查看显卡信息。应该显示的是 nvidia 384.没问题
重启!!你会发现,分辨率自动被调整过来了
4、安装 cuda 8.0 驱动
大家可以到我的 csdn 主页下载,免费的。链接:cuda 8.0
1)、先安装依赖项:
sudo apt-get install freeglut3-dev
sudo apt-get install build-essential
sudo apt-get install libx11-dev
sudo apt-get install libxmu-dev
sudo apt-get install libxi-dev
sudo apt-get install libglu1-mesa
sudo apt-get install libglu1-mesa-dev
2) 、切换到 cuda_8.0.44_linux.run 的文件夹目录,运行:
sudo sh cuda_8.0.44_linux.run --override
3)、一直按 空格键,知道读完所有的协议
输入 accept
4)、此时,如果遇到安装 NVIDIA ....啥啥驱动,千万不要安装,输入 n 。其它选择都选 y ,对于路径选择,都直接 enter ,选择默认路径就可以了。
5)、将下面两行写到~/.bashrc文件中(sudo gedit ~/.bashrc)
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
6)目前已经安装成功。测试一下吧
切换到cuda_sample文件夹
cd ~/NVIDIA_CUDA-8.0_Samples
make
cd bin/x86_64/linux/release
./deviceQuery
注意:如果在 make 的时候,出现:can't find lnvcuvid。这是因为我安装的是 nvidia-384版本,但是,在NVIDIA_CUDA-8.0_Samples/common文件下的 findgllib.mk 里面,
UBUNTU_PKG_NAME = "nvidia-367",改成:UBUNTU_PKG_NAME = "nvidia-384"即可,然后建立软连接:
sudo ln -s /usr/lib/nvidia-384/libnvcuvid.so /usr/lib/libnvcuvid.so
sudo ln -s /usr/lib/nvidia-384/libnvcuvid.so.1 /usr/lib/libnvcuvid.so.1,即可解决
此时,如果显示一些显卡信息,就说明安装成功。提醒一下,你会发现驱动版本是 9.0而运行版本是 8.0,没关系,这是正常的,因为驱动版本是往下兼容的,只要运行版本是 8.0就行。
5、安装 cudnn 5.1
下载链接:cudnn 5.1.下载完成后,把里面的文件 cudnn-8.0-linux-x64-v5.1.tgz提取出来,放入你的文件夹
切换到 cudnn-8.0-linux-x64-v5.1.tgz 文件夹
tar xvzf cudnn-8.0-linux-x64-v5.1.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*
如果想查看是否安装成功,可以使用命令查看:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
安装成功了
6、安装 Anaconda
Anaconda 是python计算库,可以更方便地使用 python 的各种库,省去了你需要手动安装很多 python 库的麻烦。建议安装支持 python 3.5的anaconda 3,不要去官网下载最新版本的支持 python 3.6 的Anaconda3, 因为tensorflow 1.2 不支持 python 3.6
anaconda3(linux 64位 python3.5 下载链接:https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh)
下载完成,切换到 anaconda3 所在的目录,执行:bash Anaconda3-4.2.0-Linux-x86_64.sh 。一路都是选择 y ,回车。然后执行:source ~/.bashrc
然后,配置环境。因为ubuntu有自带的默认的python,我们需要指定系统默认python为anaconda3中的python。配置方法:
cd /etc/
sudo gedit environment
在PATH中添加 "/home/dh/anaconda3/bin"(按照原来的格式添加,其中,dh为我的用户名)
source environment
重启!!
7、安装tensorflow1.2
TensorFlow1.2(下载链接:http://download.csdn.net/detail/jerryfy007/9923583)
首先执行下面两句,开启GPU加速
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
然后安装:
pip install tensorflow_gpu-1.2.1-cp35-cp35m-linux_x86_64.whl
重启!所有都安装完毕。
最终测试:
打开一个终端,输入
python
import tensorflow as tf
如果没问题,就说明安装没问题了
提示:如果不用源码编译安装,不会报错,但是,会输出很大一长串警告,看着让人心烦。如下:
2018-01-26 10:49:51.531171: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2018-01-26 10:49:51.531192: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2018-01-26 10:49:51.531195: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2018-01-26 10:49:51.531198: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2018-01-26 10:49:51.531201: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2018-01-26 10:49:51.635173: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2018-01-26 10:49:51.635399: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties:
这一段是没有错误的,不用管。我们可以给出解决方案,通过命令禁止打印以上内容。在你所写的 .py 文件中,加入以下两句:
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'
8、利用anaconda3 安装opencv3.2
安装之前,一定要安装 libgtk2.0-dev 和 pkg-config。运行:
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
不然,这是 opencv 必须依赖的!否则,运行 tensorflow 会显示没有窗口函数。如果出现这种情况,只能卸载opencv, 再重新安装了。
见链接:https://www.2cto.com/kf/201704/625323.html