ubuntu14.04+cuda8.0配置

来源:互联网 发布:淘宝2015年销售额多少 编辑:程序博客网 时间:2024/05/30 18:29
一:安装cuda
1:参考:http://blog.csdn.net/ymshan92/article/details/53529389
    http://blog.csdn.NET/tornadozou/article/details/51322576
http://blog.csdn.net/masa_fish/article/details/51882183

2:判断安装环境:根据官方提供的cuda配置pdf检测GPU,系统等信息。
3:下载安装包: 这里的CUDA安装实际是适用于MXnet等多种深度学习软件包的。通过NVIDIA官方链接下载安装CUDA驱动和工具包,在 https://developer.nvidia.com/cuda-downloads 选择对应的安装方式。
4:安装cuda前安装些必要的库:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev  
5: 删除已有nvidia,拉黑名单
sudo apt-get remove --purge nvidia*    
sudo nano /etc/modprobe.d/blacklist.conf
6:  blacklist.conf加入


    blacklist amd76x_edac    
    blacklist vga16fb    
    blacklist nouveau    
    blacklist rivafb    
    blacklist nvidiafb    
    blacklist rivatv    


注:这种方式也可能不能彻底禁用nouveau,在此基础上可以移除以下文件,以防万一,其中xxxxxx为你的版本文件,自己根据路径查看一下就可以了/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau/nouveau.ko

/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org第二位文件一般是隐藏的具体操作

cd/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau

sudo rm -rf nouveau.ko

sudo rm -rf nouveau.ko.org

再更新
 sudo update-initramfs –u

更新完毕

此时终端输入命令检查:

  lsmod | grep nouveau  

 如果没有输出则禁用成功 ,如果还有输出,不要怕 终端输入命令:  sudo reboot 重启电脑。重启电脑后再次在终端输入命令:lsmod | grep nouveau ; 如果没有输出则禁用成功。如果还有,则禁用失败。

7:重启下,按Ctrl+Alt+F1, 登陆后安装
sudo service lightdm stop
sudo sh cuda_8.0.61_375.26_linux.run
按照提示一步一步来当提示到是否需要安装openGL时选择n。其他选择默认y。

最后能看到

  cuda的驱动、sample、tookit已经安装成功。
8:重新启动图形化界面:

sudo service lightdm start

这时会发现屏幕分辨率变为4:3(等配置完path在处理)
9:Path 配置:
终端输入命令:
 sudo gedit etc/profile
在文本中添加
 export PATH=$PATH:/usr/local/cuda-8.0/bin

  export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/lib
保存。使之生效命令:
source /etc/profile   %(此处显示无法执行该命令,无解决办法,暂时跳过)
10:解决屏幕分辨率4:3的问题
退出图形界面,按ctrl+alt+f1进入命令行终端
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo touch /etc/X11/xorg.conf

(稍后安装完prime再重启)
9:处理Nvidia和Intel双显卡下ubuntu登录循环问题:
在双显卡下,cuda7.5安装完成后,重启时很可能会遇到登录循环的问题,即正确输入帐号密码的情况下无法登录到图形窗口,始终卡这里采用nvidia-prime手动切换工作显卡,Ctrl+Alt+F1, 登陆后安装
  sudo apt-get install nvidia-prime
为了方便切换,再安装一个名为prime-indicator的软件,可以不用输入命令而在GPU间切换的功能,并且可以显示当前显卡

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install prime-indicator
重启后登录选择NVIDIA显卡即可(屏幕右上角)(此时发现NVIDIA setting报错,没有显卡切换项You do not appear to be using the NVIDIA X driver.  Please edit your X configuration file (just run `nvidia-xconfig` as root), and restart the X server.)
暂时跳过


10:验证是否安装完成:
1)检查 NVIDIA Driver是否安装成功
 cat /proc/driver/nvidia/version
会输出NVIDIADriver的版本号

2)检查 CUDA Toolkit是否安装成功
终端输入 : $nvcc -V 会输出CUDA的版本信息
 
c) 尝试编译cuda提供的例子

切换到例子存放的路径,默认路径是~/NVIDIA_CUDA-8.0_Samples(即 /home/seujss/NVIDIA_CUDA-8.0_Samples, seujss是你自己的用户名)
然后终端输入:
$make
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。我的第一次运行时出现了报错,提示的错误信息是系统中没有gcc,然后在终端运行
 $sudo apt-get install gcc
安装完gcc后再make就正常了整个编译的时间持续比较长,耐心等待,大概十几分钟是需要的。
d)运行编译生成的二进制文件。
编译后的二进制文件
默认存放在~/NVIDIA_CUDA-8.0_Samples/bin中。

(NOTE一下:很多装caffe的用户都是再根目录下的cuda文件夹中build sample ,根目录的为/usr/local/cuda/sample,再该文件夹用命令 sudo make all -j4,此时
生成的可执行文件夹为/usr/local/cuda/sample/bin/x86_64/Linux/release)
切换路径 : cd
~/NVIDIA_CUDA-8.0_Samples/bin 终端输入:$./deviceQuery


看到类似如下图片中的显示,则代表CUDA安装且配置成功(congratulation!!)
./deviceQuery Starting...

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

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GT 630M"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    2.1
  Total amount of global memory:                 964 MBytes (1010696192 bytes)
  ( 2) Multiprocessors, ( 48) CUDA Cores/MP:     96 CUDA Cores
  GPU Max Clock rate:                            950 MHz (0.95 GHz)
  Memory Clock rate:                             900 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 131072 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048)
  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: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1536
  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): (65535, 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:                     No
  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 = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GT 630M
Result = PASS
0 0