准备工作:
从NIVIDIA官网https://www.nvidia.cn/Download/index.aspx?lang=cn下载适用的显卡驱动:NVIDIA-Linux-x86_64-390.77.run
CUDA官网https://developer.nvidia.com/cuda-toolkit下载run文件:cuda_9.0.176_384.81_linux.run
cuDNN下载https://developer.nvidia.com/cudnn(需注册账号):cudnn-9.0-linux-x64-v7.1.tgz
Anaconda下载https://www.anaconda.com/download/下载:Anaconda3-5.2.0-Linux-x86_64.sh
tensorflow下载https://pypi.org/project/tensorflow-gpu/:tensorflow_gpu-1.7.1-cp36-cp36m-manylinux1_x86_64.whl
1.NVIDIA驱动安装:
卸载原有驱动:$sudo apt-get remove --purge nvidia*
1.1禁止nouveau驱动启动:
编辑文件/etc/modprobe.d/blacklist.conf
$sudo gedit /etc/modprobe.d/blacklist.conf
在下方添加内容:
blacklist nouveau
保存后退出
执行更新:$sudo update-initramfs -u
重启系统:$reboot
确认是否禁止成功:$lsmod | grep nouveau 没有输出则成功
1.2检查gcc版本:
安装nvidia390需要gcc5.4及以上,否则会失败
检查gcc版本:$gcc --version
若版本过低则升级gcc:
$sudo apt-get install gcc-5 $sudo apt-get install g++-5
$cd /usr/bin 进入/usr/bin文件夹下 $sudo rm -r gcc 移除之前的软连接 $sudo ln -sf gcc-5 gcc 建立gcc5的软连接 $sudo rm -r g++ 同gcc $sudo ln -sf g++-5 g++
$gcc --version 检查gcc是否升级成功
1.3驱动安装:
关闭图形界面:$sudo service lightdm stop
切换到控制台:Ctrl+Alt+F1
进入驱动所在目录,赋予文件可执行权限:$sudo chmod a+x NVIDIA-Linux-x86_64-390.77.run
安装:$sudo ./NVIDIA-Linux-x86_64-390.77.run -no-opengl-files -no-x-check -no-nouveau-check
安装完成后,打开图形界面:$sudo service lightdm start
切换回图形界面:Ctrl+Alt+F7
重启:$reboot
查看驱动是否安装成功:$nvidia-smi 若出现驱动信息则安装成功
2.CUDA安装:
CUDA支持的gcc版本较低,因此先对gcc降级,我降到了4.8版本,操作同升级。
2.1安装cuda:
$sudo chmod a+x cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run
询问是否安装nvidia驱动时选n,其他均选y
这一步可能会出现磁盘空间不足的问题,若出现,则进行如下操作:
$sudo mkdir *** #找一个空间够的盘,建立路径
$sudo sh cuda_9.0.176_384.81_linux.run --tmpdir=***
2.2环境配置:
配置CUDA环境变量:$sudo gedit ~/.bashrc
在文件最后加入下面两行并保存:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
使配置生效:$source ~/.bashrc
2.3测试:
检查CUDA是否安装成功:
$cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$sudo make
$./deviceQuery
若出现显卡信息且看到最后一行Result = PASS,则安装成功。
3.cuDNN安装:
进入文件目录,解压:$tar zxvf cudnn-9.0-linux-x64-v7.1.tgz
进入解压文件夹:$cd cuda
复制头文件:$sudo cp ./include/cudnn.h /usr/local/cuda/include/
复制库文件:$sudo cp ./lib64/libcudnn* /usr/local/cuda/lib64/
然后命令进入lib64文件夹路径:
$cd /usr/local/cuda/lib64/
删除原有动态文件:$sudo rm -rf libcudnn.so libcudnn.so.7
生成软链接:$sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7
$sudo ln -s libcudnn.so.7 libcudnn.so
将路径/usr/local/cuda/lib64添加到动态库:
先安装vim:$sudo apt-get install vim-gtk
输入:$sudo vim /etc/ld.so.conf.d/cuda.conf
键盘按i进入编辑状态,添加文字
/usr/local/cuda/lib64
按esc退出编辑状态,键盘输入冒号,输入wq保存退出
使链接生效:$sudo ldconfig
验证安装是否成功:$nvcc -V
若出现cuda版本信息则表示安装成功
4.Anaconda安装:
进入文件目录,赋予执行权限:$sudo chmod a+x Anaconda3-5.2.0-Linux-x86_64.sh
安装:$sudo bash Anaconda3-5.2.0-Linux-x86_64.sh
更新环境变量:$source ~/.bashrc
输入python,出现Anaconda的信息则安装完成
5.tensorflow安装:
建立名为tensorflow的conda环境:$conda create -n tensorflow python=3.6
激活tensorflow环境:$source activate tensorflow
更新pip:$pip --default-timeout=100 install --upgrade pip #--default-timeout=100是为了解决安装过程中read timed out问题
赋予权限:$sudo chmod a+x tensorflow_gpu-1.7.1-cp36-cp36m-manylinux1_x86_64.whl
安装:$pip --default-timeout=100 install tensorflow_gpu-1.7.1-cp36-cp36m-manylinux1_x86_64.whl
测试:输入python回车,import tensorflow没有报错则安装成功
关闭tensorflow环境:$source deactivate tensorflow
最后:
关闭tensorflow环境后,在系统中的python下导入tensorflow会报错,显示No module named tensorflow
解决方案:将conda中tensorflow的第三方包文件拷贝到Anaconda的Python目录下:
$sudo rm -rf ~/anaconda3/lib/python3.6/site-packages
$sudo cp -r ~/.conda/envs/tensorflow/lib/python3.6/site-packages ~/anaconda3/lib/python3.6/site-packages
测试:
$python
>>>import tensorflow
没有报错,至此安装完成。