您的位置:首页 > 其它

双显卡(Intel+Nvidia)笔记本配置cuda开发环境

2017-04-04 21:48 881 查看
为了用GPU加速TENSORFLOW,笔者折腾了两天,终于给我的双显卡笔记本安装上了CUDA,期间电脑几次进不了桌面,说实话,我的内心是崩溃的。

尝试了.run文件和直接apt-get安装,最后使用的方法是apt。在此将过程写下来,免得小白入坑。

笔者的环境:

操作系统:

Ubuntu 16.04 LTS desktop amd64

显卡和CPU:

Intel i7-7500 Nvidia-Geforce-940MX

安装过程:

一:检查你的显卡是否支持CUDA,参考网址

http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#verify-you-have-cuda-enabled-system

二:这个教程采用apt网络安装方式

升级系统

apt-get update && apt-get upgrade


下载并安装VitualGL (https://sourceforge.net/projects/virtualgl/files/

dpkg -i virtualgl*.deb


下载并安装CUDA8.0 ( https://developer.nvidia.com/cuda-downloads

建议通过如下方式



安装依赖.

apt-get install linux-headers-$(uname -r)
apt-get install freeglut3-dev libxmu-dev libpcap-dev


编辑 .bashrc 加入PATH。下面变量的设置可能要根据你的环境而定

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


安装bumblebee-nvidia 和 primus.它支持在Intel和Nvidia显卡间自动分配功率

apt-get install bumblebee-nvidia primus


修改bumblebee config文件。 让bumblebee我们使用了 NVIDIA 驱动. 下面变量的设置可能要根据你的系统做修改.

sudo nano +22 /etc/bumblebee/bumblebee.conf

添加:

[bumblebeed]
ServerGroup=bumblebee
TurnCardOffAtExit=false
NoEcoModeOverride=false
Driver=nvidia
XorgConfDir=/etc/bumblebee/xorg.conf.d
Bridge=auto
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
AllowFallbackToIGC=false
Driver=nvidia
[driver-nvidia]
KernelDriver=nvidia
PMMethod=auto
LibraryPath=/usr/lib/nvidia-367:/usr/lib32/nvidia-367
XorgModulePath=/usr/lib/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau


运行下面的命令并记录你的显卡的 PCI 地址.

$ lspci | egrep 'VGA|3D'
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
01:00.0 3D controller: NVIDIA Corporation Device 179c (rev a2)


编辑xorg.conf.nvidia 文件,加入你的显卡的 PCI 地址(我的是01:00.0) . 在 “ServerLayout”部分下更新显卡PCI信息

sudo nano /etc/bumblebee/xorg.conf.nvidia


加入:

Section "ServerLayout"
Identifier  "Layout0"
Option      "AutoAddDevices" "false"
Option      "AutoAddGPU" "false"
BusID "PCI:01:00.0"


重启系统.

sudo shutdown -r now


三:后期工作

设置环境变量

编辑bashrc加入

#set cuda environment
export PATH=$PATH:/opt/VirtualGL/bin export PATH=$PATH:/usr/local/cuda/bin

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


验证CUDA的安装

$ nvcc --version
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

$ nvidia-smi
Tue Apr  4 21:26:01 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39                 Driver Version: 375.39                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce 940MX       Off  | 0000:01:00.0     Off |                  N/A |
| N/A   41C    P0    N/A /  N/A |    325MiB /  2002MiB |     24%      Default |
+-------------------------------+----------------------+----------------------+

+----------------------------------------------------------------
a955
-------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1258    G   /usr/lib/xorg/Xorg                             191MiB |
|    0      1977    G   compiz                                         125MiB |
|    0      2295    G   fcitx-qimpanel                                   8MiB |
+-----------------------------------------------------------------------------+


编译范例代码:

参考官网:

http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions

$ cuda-install-samples-8.0.61.sh   <你要将范例代码放置的文件夹>


进入代码目录后执行make,编译完成后

之后在bin目录下执行deviceQuery 和 bandwidthTest。结果为Pass则OK。

四: 问题解决方案

编译报错找不到-lnvcuvid解决办法:

查看你的驱动版本号:

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  375.39  Tue Jan 31 20:47:00 PST 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)


进入报错的那个目录,找findglib.mk这个文件。

打开它可以发现有一项

UBUNTU_PKG_NAME = "nvidia-367"


它将库目录硬编码了。将其改成安装的nvidia驱动对应版本号即可,这里是375。

因驱动问题进不了桌面解决办法:

按ctrl+alt+F1,在文字界面登录后,卸载nvidia驱动

sudo apt-get remove --purge nvidia-*


参考网址:

http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#environment-setup

http://askubuntu.com/questions/799184/how-can-i-install-cuda-on-ubuntu-16-04

https://devtalk.nvidia.com/default/topic/769578/cuda-6-5-cannot-find-lnvcuvid/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cuda ubuntu 笔记本 显卡