1CUDA安装
CUDA软件的安装参照Nvidia网站的“NVIDIACUDAInstallationGuideforLinux”文档进行。
1.1安装前的检查
1.1.1确认具备支持cuda的NVIDIA显卡
输入lspci|grep-invidia,确认计算机搭载Nvidia的独立显卡,并且该型号支持CUDA./cuda-gpus站点上列举了支持的GPU型号及其性能。
如上图,本机安装的是GT635M显卡,下图是该显卡支持的特性。
1.1.2查看操作系统版本
使用命令uname-m&&cat/etc/*release检查linux发行版本,本机安装的是64bit-Ubuntu16.04.2.
1.1.3检查gcc版本
输入命令gcc–version,系统自带的GCC编译器版本是5.4.0.
1.2从.run文件安装
本人使用runfile文件安装,首先从/cuda-downloads下载.run格式的安装文件,注意需要与操作系统版本相符。[CUDA_Quick_Start_Guide.pdf]
根据多次尝试和失败的教训,CUDA安装需要注意3点:1.停用Nouveau服务,否则不能安装NVIDIA驱动;2.不要安装opencl,否则无法登录用户;3.不更新x-start配置文件,否则具有双显卡的笔记本会黑屏,默认不从自带屏幕输出图像。
1.2.1关闭Nouveau服务
Nouveau是Ubuntu自带的第三方开源N卡驱动,安装NVIDIA官方驱动之前需要禁用Nouveau.
安装指南中给出的方法如下:
1.创建文件/etc/modprobe.d/blacklist-nouveau.conf并加入以下内容:
blacklistnouveau
optionsnouveaumodeset=0
2.重建内核initramfs:
$sudoupdate-initramfs-u
但该方法并不一定能成功禁用Nouveau,如果失败,可以尝试增加以下步骤:
1.removeallnvidiapackages,skipthisifyoursystemisfreshinstalled
sudoapt-getremovenvidia*&&sudoaptautoremove
2.installsomepackagesforbuildkernel:
sudoapt-getinstalldkmsbuild-essentiallinux-headers-generic
3.nowblockanddisablenouveaukerneldriver:
sudovim/etc/modprobe.d/blacklist.conf
Insertfollowlinestotheblacklist.conf:
blacklistnouveau
blacklistlbm-nouveau
optionsnouveaumodeset=0
aliasnouveauoff
aliaslbm-nouveauoff
saveandexit.
4.DisabletheKernelnouveaubytypingthefollowingcommands(nouveau-kms.confmaynotexist,itisok):
echooptionsnouveaumodeset=0|sudotee-a/etc/modprobe.d/nouveau-kms.conf
5.buildthenewkernelby:
sudoupdate-initramfs-u
6.reboot
确认下Nouveau已经被禁用,使用命令:lsmod|grepnouveau,如果没有任何相关的返回结果,则说明已经禁用成功。
1.2.2安装CUDA
CUDA的安装程序中包含了NVIDIA驱动,因此无需提前安装驱动(单独安装显卡驱动也可以)。因为涉及到显卡驱动程序,安装时首先要关闭图形界面即x-windows服务。
输入sudoservicelightdmstop,然后Ctrl+Alt+F1进入命令行终端,定位到安装文件所在目录,如果只有一个cuda开头的文件,可以用正则表达式表示,键入:
sudoshcuda*.run
前文已经提到过,如果是intel+NVIDIA的笔记本,安装时注意不要安装OpenCL库,也不要更新x-start配置文件。
安装完成后如上图所示,启动图形界面程序,重启。
sudoservicelightdmstart
Reboot
上图中,安装完成后显示缺少libGLU、libx11等库,进入图形界面之后用apt安装即可:
sudoapt-getinstallfreeglut3-devbuild-essentiallibx11-devlibxmu-devlibxi-devlibgl1-mesa-glxlibglu1-mesalibglu1-mesa-dev
【/10km/article/details/61915535】
1.2.3添加环境变量
设置系统变量和编译时库的路径变量:
$exportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
注意在shell窗口中运行这两条命令,只在该窗口中生效。一劳永逸的方法是在/etc/profile中添加这两行。这样,重启后应该就可以使用cuda的编译器nvcc命令了。
1.3Apt方式安装cuda,单独安装驱动
如果十分不幸(比如我)的话,从.run文件安装完cuda后,在终端中输入nvcc是提示找不到该程序的,问题可能出在环境变量上,添加之后只在当前终端中生效,关闭后又恢复原样了。并且NVIDIA的驱动也会出现莫名其妙的问题,nvidia-setting打开后说没有使用该驱动。这个时候可以试试apt方式安装cuda。
1.3.1先装驱动
在安装cuda前,先装好显卡驱动为佳。下载驱动安装程序NVIDIA-Linux-x86_64-384.90.run.安装前同意需要先禁用nouveau,关闭图形界面(参见1.2.2),然后运行
sudoNVIDIA*-no-x-check-no-nouveau-check-no-opengl-files
后面的参数是关闭x服务,禁用nouveau,不安装opengl.安装完成后会询问是否要更新xorn,选no.如果安装步骤出错了,可以用nvidia-uninstall卸载后重新安装。
驱动安装正确之后,用nvidia-setting就可以打开Xserversetting了。这里还有一个坑,就是要尽量关闭bios的保护,例如secureboot、memoryprotect等。
1.3.2使用apt安装cuda-toolkit
很简单,sudoapt-getinstallnvidia-cuda-toolkit
但版本是7.5,并且没有sample例程,如果需要的话要去别的地方找(/cuda-code-samples这里可以下载到)。好处是可以一键安装所需的依赖包,并配置好变量,直接就能运行。
1.4运行例程
如果在安装时已经选择了安装samples,输入以下命令可以运行一个nbody的例程,用于检验安装是否正确。
$cuda-install-samples-8.0.sh~
$cd~/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
$make
$./nbody
1.5小结
CUDA自带了NVIDIA的驱动,如果不能用,使用nvidia-uninstall命令卸载之后,单独安装驱动。驱动安装时要先禁用Nouveau,笔记本双显卡不能安装Opengl,不要更新xorg.conf配置,不需要安装Bumblebee软件,否则独立显卡不能启动。这短短几十个字是笔者花费30个小时尝试安装配置的总结。
/*-------------------
2.Rebootintorunlevel3bytemporarilyaddingthenumber"3"andtheword
"nomodeset"totheendofthesystem'skernelbootparameters.
3.Runtheinstallersilentlytoinstallwiththedefaultselections(impliesacceptanceof
theEULA):
sudoshcuda_<version>_linux.run--silent
4.Createanxorg.conffiletousetheNVIDIAGPUfordisplay:
$sudonvidia-xconfig
5.Rebootthesystemtoloadthegraphicalinterface.
6.SetupthedevelopmentenvironmentbymodifyingthePATHand
LD_LIBRARY_PATHvariables:
$exportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
7.Installawritablecopyofthesamplesthenbuildandrunthenbodysample:
$cuda-install-samples-8.0.sh~
$cd~/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
$make
$./nbody
-----------------------------*/
同样要关闭x-windows服务,在命令行下安装
sudoservicelightdmstop
sudo./cuda_8.0.61_375.26_linux.run
安装时选择不装opencl.
最新版本的cuda中包含了NVIDIA的驱动,所以只装这一个就行了。
2开发环境
codeblocks+nvcc
3环境配置
codeblock配置nvcc编译器,参见:
/cparent/article/details/50607456