本文主要是介绍Ubuntu16.04 + CUDA8.0 + OpenCL + Nvidia 安装配置和问题总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 安装Nvidia的Driver(推荐配置时在其它移动设备参考本文章,部分步骤会关闭图形处理器,进入纯命令行界面,如果没有在别的地方打开或是记住下面的步骤则无法进行下去)
The input tool was broken, so just use English.
I try to use runfile to install, but failed. There are some X file problem I could not solve. So I find other writing and use PPA.ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装 - CSDN博客
曾经尝试使用.run文件按照以下步骤安装。提示安装成功,nvidia-smi也有输出,但是没有正在运行中的线程,并且nvidia-settings语句提示错误。错误提示有关X文件的错误,尝试解决这个问题但是失败,导致整个图形界面无法进入。因此改用PPA的方式进行安装。
.run文件安装
到官网选择适合的版本,下载.run文件。网上提供了三种方法安装,参考链接提供在下文。由于CUDA驱动中包括了Nvidia的驱动,但是这种打包的下载有可能引发问题。因此在先安装单独Nvidia的驱动。
- 首先在官网中下载合适自己系统和GPU的驱动:官网驱动地址
如果不知道自己GPU的信息可通过以下语句查询
$ lspci | grep -i nvidia
- 禁用nouveau
打开配置文件
在最后一行添加$ sudo gedit /etc/modprobe.d/blacklist.conf
更新内核blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv blacklist nvidiafb
sudo update-initramfs -u
关机后重启进入boot,在boot中将security设置为enable,开机之后输入
$ lsmod | grep nouveau
没有输出则关闭成功。
- 安装驱动,这里开始会关闭图形界面。
禁用X服务
按Ctrl+Alt+F1进入命令行界面(按Ctrl+Alt+F7可退出)$ sudo service lightdm stop
给run文件赋予执行权限
安装,这里选择了不安装OpenGL,否则会发生冲突。$ sudo chmod a+x NVIDIA-Linux-x86_64-384.98.run
重启,验证是否安装成功:$ sudo ./NVIDIA-Linux-x86_64-384.98.run –no-opengl-files
$ nvidia-smi
PPA安装:
首先也是要禁用nouveau,步骤同上。
添加Graphic Drivers PPA
查找合适的版本$ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt-get update
其中一个driver后面加上了recommend字样,记住该版本,如下图,推荐版本是390。$ ubuntu-drivers devices
按ctrl+alt+F1进入终端模式,此时会关闭图形界面。
安装driver,后面的数字修改为相应的版本号。$ sudo service lightdm stop
重启。$ sudo apt-get install nvidia-390
验证是否安装成功$ sudo reboot
$ nvidia-smi
出现以上则安装成功。
查看setting的情况:
$ nvidia-settings
2. 安装CUDA8.0
目前CUDA的最新版本是9.1,但是安装之后编译失败,有说法是Ubuntu16.04不能够支持到这么高的版本。因此卸载了之后安装了8.0
在官网中选择需要的版本的对应的系统等下载run文件:CDUA下载
运行run文件
安装的时候,会出现比较长的介绍,可以不停的按空格键到100%,或者直接按Ctrl+C跳过;$ sudo sh cuda_8.0.61_375.26_linux.run
下面的选项中遇到提示是否安装nvidia ,选择no,否则前面安装的驱动会被覆盖。其他的可以全部同意。
安装完成后运行sample验证
进入sample所在路径,make,在这里会编译所有的样例,时间较长,也可以进入单独的样例去make。
../NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
里面存放了运行文件,./filename运行即可。
这里运行的是deviceQuery,出现以上结果即可。
3. 配置OpenCL
至此OpenCL配置完毕。利用gcc运行OpenCL代码。需要提前确认gcc可行。
在命令行输入以上语句可查看gcc版本,若没有安装则提示未安装。安装网上gcc的安装配置安装即可。$ gcc -v
输入上面的语句运行测试代码test.cpp,定义输出文件为test,调用OpenCL库。$ gcc test.cpp -o test -lOpenCL
看了很多网络的教程,有一些只简单说明OpenCL已经被包含在CUDA里面。但是在本台电脑上仅安装成功CUDA之后是无法直接运行OpenCL的,它的库文件没有被链接出现以下两种错误。
- 找不到-lOpenCL
OpenCL库(libOpenCL.so)并不存在于/ usr / lib,即系统库中,并且OpenCL的库所在地址没有被链接。因此我们需要查找libOpenCL.so文件所在位置,添加到系统查找库的配置文件中去。
经查找,libOpenCL.so文件被下载到了/usr/local/cuda-8.0/lib64中。
此处将库文件所在路径添加进去。此时普通用户可能会引发权限不够的问题,可以通过进入root获得权限。若是初次进入root需要先设定密码。$ sudo echo '/usr/local/cuda-8.0/lib64/' >> /etc/ld.so.conf
完成之后利用以下语句可登录进root,然后再写ld.so.conf文件。$ sudo passwd root
然后执行以下语句更新路径,使修改生效。sudo -s -H
下一步是修改环境变量。$ sudo ldconfig
$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64/' >> ~/.bashrc $ source ~/.bashrc第一句是写入配置文件,第二句是使之永久生效。
若修改变量LD_LIBRARY_PATH不奏效,则用同样的方法修改LIBRARY_PATH。
以上完成之后应该就不会再出现找不到-lOpenCL的问题了。
- 找不到CL/cl.h
错误提示:fatal error: CL/cl.h: 没有那个文件或目录
将OpenCL的include文件拷贝到/usr/local/include文件夹下即可。
因为语句是在CL文件夹下的cl.h,因此连带CL文件夹需要拷贝进去。
不配置到系统,利用动态链接的方法也可以链接。//$ sudo cp -r /home/karin/CL/* /usr/local/include $ sudo cp -r /home/karin/CL /usr/local/include
g++ -l /home/karin/opencl ....
参考链接:
Ubuntu 16.04安装NVIDIA驱动 - CSDN博客
【解决】Ubuntu安装NVIDIA驱动(咨询NVIDIA工程师的解决方案) - CSDN博客
Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案) - CSDN博客
ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程 - 陈海峰的博客 - CSDN博客
ubuntu16.04 安装NVIDIA和CUDA8.0 - 奔跑_少年 - 博客园
Ubuntu14.04下Nvidia opencl例子的编译运行 - CSDN博客
在ubuntu上编译opencl需要什么? (和扩展,opencl期间) - IT屋-程序员软件开发技术分享社区
ubuntu14.04下配置cuda8.0以及测试OpenCL(测试通过) - hust_sheng的专栏 - CSDN博客
/usr/bin/ld: cannot find -lxxx 的解决办法 - zhming - 博客园
cuDNN Installation Guide :: Deep Learning SDK Documentation
ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装 - CSDN博客
这篇关于Ubuntu16.04 + CUDA8.0 + OpenCL + Nvidia 安装配置和问题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!