https://blog.csdn.net/jonms/article/details/79318566
https://blog.csdn.net/weixin_39837402/article/details/79970160
https://www.zhihu.com/question/263850405
https://blog.csdn.net/jonms/article/details/79318566
https://blog.csdn.net/weixin_39837402/article/details/79970160
https://www.zhihu.com/question/263850405
显卡:1050 6g
操作系统:Ubuntu 16.04LTS
花了一整天踩了很多坑,系统重装n次,结合网上的教程和自己装成功的经验写一份固定版本的安装过程,供未来的自己和有需要的人参考.(CUDA9.0和cudnn7.1下载地址在文章最后)
gcc --version
(之前18.04系统装cuda9.0安装失败原因可能是自带的GCC版本过高需要降版本,而16.04自带5.4x的GCC)
一般都会自带GCC,若没有安装可以:
sudo apt-get install gcc
uname -r
sudo apt-get install linux-headers-$(uname -r)
sudo apt remove --purge nvidia*
本人安装成功的方式为安装cuda时选择安装nvidia驱动,所以在安装CUDA之前不安装nvidia驱动。
之前尝试过在ubuntu系统设置->软件和更新->附加驱动->nvidia专有驱动->更改应用
这种方式来事先安装nvidia驱动,并在cuda安装时选项是否安装nvidia驱动时选 no,最后虽然CUDA安装成功但是运行deviceQuary result=fail,所以本次操作不采用这个种方式装驱动 。此处选择第二个,nouveau开源驱动。
之前也尝试过runfile文件安装9.1版本失败,正好服务器版本因pip原因退回9.0并且前辈服务器安装用的deb,于是选择9.0的deb文件
按上图选项选择,记得deb文件 1.2GB下载,顺带一提40多m/s的网速真的爽QAQ
如果系统是中文记得吧安装包放到/home下,之后进入字符终端方便找
nouveau是Linux自带的第三方开源显卡驱动,想要安装nvidia驱动我们先禁用它
lsmod | grep -i nouveau
如果有输出则nouveau正在运行
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
文件中输入
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
再执行
sudo update-initramfs -u
重启后会发现分辨率变得很低
sudo reboot
(过程可能出现)
这时候直接按Ctrl+Alt+F1也可以进入字符终端界面,登入,(输密码记得开小键盘锁
这个时候看看
lsmod | grep -i nouveau
应该是没有任何输出的
关闭图形化界面
sudo service lightdm stop
进入deb文件所在目录
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
安装过程看不见中文,一直点了yes..之前有安装过runfile大概就是是否安装nvidia驱动,opengl,安装路径,是否安装Toolkit和是否安装sample以及路径,反正我没安装nvidia驱动,所以一路yes就行。如果事先安装了nvidia驱动的话,在驱动选项选择no就行。
如果没什么问题安装完成,添加一些库:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
再重启一下,如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了
登录界面分辨率又回到了正常,不出意外nvidia驱动应该安装好了(正如找回了乱丢的眼镜的我
登入进去检查显卡驱动是否安装成功:(其实分辨率正常了应该就没问题吧..
nvidia-smi
重启电脑后,检查Device Node Verification
ls /dev/nvidia*
sudo gedit /etc/profile
末尾添加:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
source /etc/profile
11.1:验证驱动版本
cat /proc/driver/nvidia/version
nvcc -V
11.3:测试sample
编译sample:
cd /usr/local/cuda-9.0/samples
sudo make
运行编译生成的二进制文件:
cd bin/x86_64/linux/release
./deviceQuery
最后再检查一下系统和CUDA-Capable device的连接情况 :
./bandwidthTest
result = pass
下载地址,不要下后缀为POWER8的,否则找不到cudnn而报错,没有帐号的话文章最后有云盘
tar -xzvf 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
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
测试cudnn有没有装成功直接跑tensorflow试试,先安装gpu版本tensorflow
sudo apt install python3-pip
pip3 install tensorflow-gpu
python代码
import tensorflow as tf
# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))
结果:
CUDA9.0 cudnn7.1下载地址
密码:4nvr