欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu16.04 cuda8.0安装配置

程序员文章站 2022-07-13 13:23:17
...

  确保cuda能安装成功,查阅NVIDIA CUDA Installation Guide for Linux确认安装前的环境是否符合要求


环境:
操作系统: Ubuntu 16.04
GCC/G++:5.3.0
OpenCV: 2.4.11和3.1.0
Matlab :R2014b(a)
Python: 2.7


一、更换ubuntut16.04的源

1.使用过几个源,相对较快且稳定推荐清华大学源

终端输入

cd /etc/apt/ 
sudo cp sources.list sources.list.backup  #做备份 
sudo gedit sources.list

2.替换文件:

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse

3.更新源和更新已安装的包:

sudo apt-get update 
sudo apt-get upgrade

如果使用apt-get update出现
E: 无法获得锁 /var/lib/apt/lists/lock - open (11:
资源暂时不可用)

E: 无法对目录 /var/lib/apt/lists/ 加锁
这是因为包的依赖关系形成了死锁

使用以下命令解决

sudo rm /var/lib/apt/lists/lock

二、gcc 版本

  Ubuntu16.04 集成了GCC 5.4.0, cuda8(8.0.61版本)最新版支持5.4的gcc。
  但是很多软件不支持这么高版本的GCC,根据自己的需求降级进行安装
  
1.下载gcc源码

wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz

网络问题上面的命令可能不能成功下载gcc,则可以手动下载该版本的 gcc-5.3.0

2.进行解压

tar -zxvf gcc-5.3.0.tar.gz 

3.下载编译所需依赖项:

cd gcc-5.3.0                    //进入解包后的gcc文件夹
./contrib/download_prerequisites                  //下载依赖项
cd ..                          //返回上层目录

4.建立编译输出目录:

mkdir gcc-build-5.3.0 

5.进入输出目录,执行以下命令,并生成makefile文件:

cd gcc-build-5.3.0
../gcc-5.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

6.编译:

sudo make -j2  

-j2 中的2是使用的cpu核心数, 能加快编译速度,根据自己的电脑配置。

7.编译结束以后,执行安装:

sudo make install 

8.检查gcc和g++版本

gcc --version
g++ --version 

三、 nvidia 驱动安装

根据本机显卡类型在Nvidia显卡驱动下载官网查看适合自己显卡的驱动并下载
ubuntu16.04 cuda8.0安装配置
ubuntu16.04 cuda8.0安装配置
1、在你的用户登录界面按ctrl+alt+F1进入文本模式

2、输入你的账户名和密码

3、依次运行如下语句:

sudo apt-get purge nvidia-*  //删除现有驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375   //nvidia-后面的数字是版本号
sudo reboot //重启

4.重启后,终端输入命令查看驱动版本详细信息:

nvidia-smi    //或者
nvidia-settings 

四、cuda 8.0 安装

请先查看Nvidia驱动版本nvidia-smi,寻找适合的cuda版本安装
ubuntu16.04 cuda8.0安装配置

CUDA的安装包中包含有 nvidia 显卡驱动,所以CUDA 的安装包括了 nvidia 显卡驱动的安装

1.为了方便开始安装过程的路径查找,建议把下载的 CUDA 安装文件移动到 HOME 路径下

2.通过 Ctrl + Alt + F1 进入文本模式,输入帐号密码登录

3.在文本模式登录后首先关闭桌面服务:

sudo service lightdm stop

4.通过 Ctrl + Alt + F7 发现已无法成功返回图形化模式,说明桌面服务已成功关闭。注意:必须确保桌面服务已关闭,这对接下来的 nvidia 驱动安装非常重要

5.Ctrl + Alt + F1 进入tty模式 ,然后运行 CUDA 安装文件进行安装,之前把 CUDA 安装文件移动至 HOME,直接通过 sh 命令运行安装文件即可:

sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs

6.启动安装程序。先输入 accept同意协议

7.选择是否安装 nvidia 驱动,CUDA中集成的Nvidia驱动的版本较低,不建议安装。
建议单独安装Nvidia显卡驱动

8.确认安装或确认默认路径安装,安装完成后输入重启命令重启:

reboot

9.重启后,配置 CUDA 环境变量。使用 gedit 命令打开配置文件:

sudo gedit ~/.bashrc

10.在该文件最后加入以下两行并保存:

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH

11.使配置生效:

source ~/.bashrc

五. 验证cuda 8.0 安装测试

1.执行以下命令:

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

2.如下deviceQuery启动,说明 cuda 已安装成功:
.

/deviceQuery Starting...

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

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 750"
  CUDA Driver Version / Runtime Version          9.0 / 8.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 977 MBytes (1024131072 bytes)
  ( 4) Multiprocessors, (128) CUDA Cores/MP:     512 CUDA Cores
  GPU Max Clock rate:                            1110 MHz (1.11 GHz)
  Memory Clock rate:                             2505 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 750
Result = PASS

六、安装 cudnn

CUDA 8.0 +对应 cuDNN 7.0 +,所以一定要选择适合的版本

1.登录英伟达开发者官网,下载对应 cuda 版本且 linux 系统的 cudnn 压缩包

下载完成后解压

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz 

2.cudn 文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下

cd cuda/include/ 

3.命令行进入 cudn/lib64 路径下,运行以下命令:

sudo cp cudnn.h /usr/local/cuda/include/  #复制头文件 
cd ../lib64    #打开lib64目录 
sudo cp lib* /usr/local/cuda/lib64/    #复制库文件 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*    #给所有用户增加这些文件的读权限

4.建立软连接,在终端输入

cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.5 
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5 
sudo ln -s libcudnn.so.5 libcudnn.so 

5.设置环境变量,终端输入

sudo gedit /etc/profile 

在代码末尾加入

PATH=/usr/local/cuda/bin:$PATH export PATH

6.保存后,创建链接文件

  6.1 安装vim

sudo apt-get install vim-gtk

  6.2 使用vim配置环境变量

sudo vim /etc/ld.so.conf.d/cuda.conf 

  6.3 按a进入插入模式,增加下面一行

/usr/local/cuda/lib64

  6.4 按esc退出插入模式,按:wq保存退出
  6.5 对vim更多个性配置参考

https://blog.csdn.net/zht741322694/article/details/78959338

7.不过鉴于vim操作对新手不是很友好也可以使用gedit修改

sudo gedit /etc/ld.so.conf.d/cuda.conf 

8.终端输入命令是链接生效

sudo ldconfig      #使链接生效

9.c切换到CUDA 8.0 Samples默认安装路径

cd NVIDIA_CUDA-8.0_Samples/
sudo make all -j2    #根据核心改变

ubuntu16.04 cuda8.0安装配置
10.向终端输入

cd bin/x86_64/linux/release 
./deviceQuery

11.进行deviceQuery如下
ubuntu16.04 cuda8.0安装配置