cuda8.0+ubuntu14.04+GTX970驱动 安装

更新装cuda10.1 和 NVIDIA435驱动的操作记录

这是安装完的显示步骤:跟下面装的步骤也差不多.
在这里插入图片描述

#安装cuda-8.0
##1. GTX970 驱动安装
新的电脑安装好ubuntu14.04系统后,先想了下直接装cuda
在安装cuda前我先在自己的电脑上安装好GTX970的驱动:
主机是技嘉的主板,自带核显,然后需要先在BIOS里面把核显禁用了,只用独立显卡

这里是按照一篇博客上的做法安装GTX970,网上搜NVIDIA驱动安装

#下面是它给出的步骤

sudo add-apt-repository ppa:graphics-drivers/ppa    
//引入PPA库里的显卡驱动 

sudo service lightdm stop     
//关闭图形界面

ctrl+alt+f1 
//进入F1工作台界面

sudo apt-get install nvidia-367
//下载驱动               

sudo service lightdm start               
//开启图形界面
//结果无限登陆循环
//。。。。。【https://blog.csdn.net/u010094199/article/details/54380086】刚开始参考的这里,出bug了
//按照它的提示:若安装失败,卸载未安装成功的显卡驱动,再重新安装

//然后这样做
ctrl+alt+f1 //进入F1工作台界面
sudo service lightdm stop     //关闭图形界面

这里写图片描述

###无限登陆循环时,重新进入图形界面的方式

sudo apt-get remove nvidia*
sudo apt-get remove nvidia-*    #卸载显卡驱动
//卸载掉原有驱动  //好像把opengl什么的也卸载了,这样子确实能重新进入图形界面了

ctrl+alt+f7 
//能重新进入图形界面了

##2. 正确的安装NVIDIA驱动和禁用nouveau的方式
###2.1 下载NVIDIA驱动
上面安装NVIDIA驱动的方法失败了,后来搜查才知道得安装NVIDIA官网的.run文件的驱动
去【http://www.geforce.cn/drivers/results/121083 】【http://www.geforce.cn/drivers】下载驱动程序
这里写图片描述
文件名:NVIDIA-Linux-x86_64-375.82.run
复制到硬盘里拷贝到系统上

驱动为.run文件,给驱动run文件赋予执行权限:

sudo chmod  a+x NVIDIA-Linux-x86_64-xxx.run

正确安装Nvidia驱动,需要去nvidia驱动官网下载合适的驱动,这一步上面已经做了
此正确步骤的参考链接【https://blog.csdn.net/u010159842/article/details/54344683】

下载好.run文件的驱动后,卸载掉原有nvidia-的驱动
sudo apt-get remove nvidia-*
sudo apt-get remove nvidia*

说明:如果使用的是apt-get安装可以使用这种方法卸载,如果使用的是runfile,则使用–uninstall命令,当然runfile安
装的时候会卸载掉之前的驱动,所以可以不用手动去卸载。

###2.2 禁用nouveau

打开编辑配置文件:
/etc/modprobe.d/blacklist.conf

在最后一行添加:

blacklist nouveau
禁用nouveau第三方驱动,之后也不需要改回来

终端执行以下命令更新一下:

sudo update-initramfs -u

重启:sudo reboot
界面分辨率变了640x480
打开一个终端执行:

lsmod | grep nouveau #查看是否还有nouveau

没有输出即屏蔽好了!!以前我都是把驱动文件移除,然后重启黑屏,屏蔽不了,这次终于解决了
禁用X服务
执行:
sudo /etc/init.d/lightdm stop

###2.3 安装NVIDIA驱动
进入命令行界面
Ctrl-Alt+F1

给驱动run文件赋予执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run

安装(注意 参数)

sudo ./NVIDIA-Linux-x86_64-375.20.run –no-opengl-files

–no-opengl-files #只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check #安装驱动时不检查X服务
–no-nouveau-check #安装驱动时不检查nouveau
# 后面两个参数可不加,但我都加了

注意此过程中的选择
这里写图片描述
Accept License;

Continue Installation;
这里写图片描述
这里写图片描述

Yes--Register the Kernel module sources with DKMS;
Yes--Install NviDia' 32-bit libraries; 
Installing DKMS kernel module:-------100%
Yes--run the nvidia-xconfig...update...

安装完成NVIDIA的驱动文件

sudo reboot
重启,并不会出现循环登录的问题

并且分辨率恢复到原界面
执行以下命令

nvidia-smi

显示出**NVIDIA-SMI 375.82 GeForce GTX 970**

#哈哈哈,成功
lsmod | grep nouveau查一下,没有了禁用了!!!

####禁忌,此部分摘自上面的链接,我没有用到,碰到的同志可以看下

#安装CUDA时一定使用runfile文件,这样可以进行选择。不再选择安装驱动,以及在弹出xorg.conf时选择NO
#不要使用ubuntu设置中附加驱动中驱动

**无法进入桌面的问题**
#如果出现无法进入桌面的问题,这是因为驱动修改了xorg的配置,可执行以下命令:

cd /usr/share/X11/xorg.conf.d/
sudo mv nvidia-drm-outputclass.conf nvidia-drm-outputclass.conf.bak

#3. 接下来准备cuda的安装 cuda8.0+ubuntu14.04

CUDA8.0这个版本支持TensorFlow,也支持MXNet,还可以用Matlab和caffe等。
其下载地址为:
https://developer.nvidia.com/cuda-80-ga2-download-archive
1.4GB的cuda_8.0.61_375.26_linux.run是run文件,安装cuda8.0;
95.3MB的是补丁:cuBLAS Patch Update to CUDA 8: Includes performance enhancements and bug-fixes

//我以前装过cuda,在自己的本机上,文件名也为cuda_8.0.61_375.26_linux.run 1.5GB
//从官网下载文件比较慢,我用的是以前还下载过的.run 文件
//一般自己做过的东西还是存在硬盘里,免得重复去找资源

【https://blog.csdn.net/u010480194/article/details/54287335】
感觉此博主的文章很靠谱,于是浏览他的文章加上自己以前安装cuda的经历来辅助
一般我安装任何东西都有一个习惯,打开多个博客博主的文章,比较以下,总结其步骤,观看他们是不是有潜在的坑哈哈
然后做出自己正确的选择
另外还有一个参考:
【https://blog.csdn.net/masa_fish/article/details/51882183】
当然安装cuda必不可少的是要阅读官方文献

以下是综合各个博客加上我的安装经历的完整的步骤

###3.1 安装Ubuntu14.04
不更新,网上说更新会出问题,我用的是中科大的源,安装完ubuntu14.04后没有更新没有去换源,先不管这些

###3.2 检查自己的电脑环境是否具备安装CUDA的条件 (此部分安装官方英文指导pdf来就行)
a) 检查自己的GPU是否是CUDA-capable

在终端中输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息
去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中

If your graphics card is from NVIDIA and it is listed in http://developer.nvidia.com/
cuda-gpus, your GPU is CUDA-capable.

b) 检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)

c) 检查自己的系统中是否装了gcc

在终端中输入: $gcc –version 可以查看自己的gcc版本信息
gcc 4.8.4
d) 检查是否安装了kernel header和 package development

在终端中输入: $uname –r 可以查看自己的kernel版本信息 4.4.0-67-generic
在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。

###前面安装驱动已经禁用nouveau了,所以下面的操作按步骤来即可

下面在ttf1中安装.run文件
重启电脑,到达登录界面时,ctrl+alt+f1进入工作台,登录账户
在text mode中输入

sudo service lightdm stop

**关闭图形化界面**

//切换到cuda安装文件的路径,然后赋予权限
sudo chmod 777 cuda_8.0.61_375.26_linux.run 
//运行安装,不安装opengl我就在后面加了个  --no-opengl-libs
sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs //摘自csdn博客

//在运行以下代码前,一定要先知道当选择选项 Install NVIDIA Accelerated Graphics Driver for
//nvidia*时候选择取消,其他选项选择yes,或则回车,并且查看协议时候有快捷键CART + D
//进行翻页,其中X是你下载的CUDA的文件名

提示是否安装显卡驱动,因为第一步已经装过了,所以这里no:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: no

然后选择安装目录,默认就好(可以直接回车)

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:

接着是否创建链接,yes创建即可:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: yes

接下来提示是否安装Sample,程序示例,以及保存位置,最好进行安装,一会测试是否安装成功用,保存位置默认即可

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: yes
Enter CUDA Samples Location
[ default is /home/relaybot ]:  //这里我安装在默认的文件夹下面

其实到现在CUDA 8.0已经安装好了,它的提示中有一段:

Please make sure that
-   PATH includes /usr/local/cuda-8.0/bin
-   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
//添加环境变量和设置
    To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin    
//可以在 /usr/local/cuda-8.0/bin 里运行卸载程序

其他一些博主的说明,摘录放在这里:
一般下载好cuda安装包后直接放在home目录下,就可以按照上面的代码运行了,建议这么做。
遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以
选择yes)。其他都选择yes或者默认安装成功后,会显示installed,否则会显示failed。

安装出现的warning
前面第一步已经安装过NVIDIA的驱动,在安装cuda的过程中没有选择安装Drivers选项,所以出现如下警告

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
//缺少一些驱动
Logfile is /opt/temp//cuda_install_6583.log
sudo service lightdm start //重新启动图形化界面。
Alt + ctrl +F7  //返回到图形化登录界面,输入密码登录。
//如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。 

继续按上述步骤即可安装补丁文件
sudo ./cuda_8.0.61.2_linux.run

###设置环境变量

终端中输入 $ sudo gedit /etc/profile 
末尾添加:

官方上面是直接输入。但是在/etc/profile 上写会更好

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}}  

【P.S. 上面代码里面的 \ 表示的换行】
然后重新加载环境变量

$ source /etc/profile  

查看一下是否设置成功了

$ env  

重启电脑。检查Device Node Verification。
检查路径~/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤进行添加。
添加过程:
/mumu/cuda 文件夹下新建一个文件modprobe,无后缀,文档内容如下:

#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi

然后在终端执行:

```//为/dev文件夹下添加nvidia文件
sudo chmod a+x modprode
sudo ./modprode

##检查是否安装成功
检查 NVIDIA Driver是否安装成功

~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  375.82  Wed Jul 19 21:16:49 PDT 2017
GCC version:  gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 
#输出NVIDIA Driver的版本号

输出cuda Toolkit的版本号

~$ nvcc -V
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
~$ sudo proxychains apt-get install nvidia-cuda-toolkit
//实际上已经安装cuda了,这里我是新开的一个终端窗口测试nvcc是否管用,另一个终端窗口在make cuda的Samples

尝试编译cuda提供的例子
切换到例子存放的路径,默认路径是 ~/NVIDIA_CUDA-8.0_Samples

终端输入:$ make

注意:这里的make操作是将Samples文件夹下所有的demo都编译了一遍,所以比较耗时,如果仅仅想测试某个例子,可以进入相应的文件夹去编译即可。
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。
注意:如果运行的时候就报错了,错误是缺少一些依赖库,一般情况下也就是这个问题
不过我的电脑没碰到make失败的问题,这时其他博主中描述的。

$ 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 ibgl1-mesa-glx
$ sudo apt-get install llibglu1-mesa
$ sudo apt-get install libglu1-mesa-dev

make成功:

"/usr/local/cuda-8.0"/bin/nvcc -ccbin g++ -I../../common/inc  -m64    -gencode arch=compute_20,code=compute_20 -o main.o -c main.cpp
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
"/usr/local/cuda-8.0"/bin/nvcc -ccbin g++   -m64      -gencode arch=compute_20,code=compute_20 -o conjugateGradientPrecond main.o  -lcublas -lcusparse
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
mkdir -p ../../bin/x86_64/linux/release
cp conjugateGradientPrecond ../../bin/x86_64/linux/release
make[1]: Leaving directory `/home/relaybot/NVIDIA_CUDA-8.0_Samples/7_CUDALibraries/conjugateGradientPrecond'
Finished building CUDA samples
relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples$ 

在刚才执行make的终端执行nvcc -V

relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61

cuda安装成功,这里猜测之前的nvcc失败可能是source目前只对当前终端环境有效,总之安装成功了yeyeye
成功后,NVIDIA_CUDA-8.0_Samples文件夹下会出现一个bin文件夹。运行编译生成的二进制文件。
编译后的二进制文件 默认存放在~/NVIDIA_CUDA-8.0_Samples/bin中。

//切换路径 : 
relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release$ ls
alignedTypes   cdpSimplePrint  cuSolverSp_LowlevelQR   interval   nbody                       
shfl_scan      simpleMultiCopy    SobolQRNG
...
//终端输入 :
relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release$ ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 970"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    5.2
  Total amount of global memory:                 4036 MBytes (4232118272 bytes)
  (13) Multiprocessors, (128) CUDA Cores/MP:     1664 CUDA Cores
  GPU Max Clock rate:                            1317 MHz (1.32 GHz)
.......//配置成功

检查系统和cuda的连接测试

$ ./bandwidthTest 
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GeForce GTX 970
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			12060.7
   //...

Result = PASS  //..........

[1]https://blog.csdn.net/u010480194/article/details/54287335
[2]https://blog.csdn.net/masa_fish/article/details/51882183
[3]https://blog.csdn.net/jialian_wu/article/details/76507013
[4]https://blog.csdn.net/u010480194/article/details/54287335

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值