参考文献:
http://blog.csdn.net/autocyz/article/details/52299889
http://blog.csdn.net/lixintong1992/article/details/51156368
http://blog.csdn.net/baiyu9821179/article/details/57412131
http://blog.sina.com.cn/s/blog_9db078090102vdvx.html
最近开始学习 CUDA 在安装中遇到的一些问题,最终成功安装,也得益于网络上的前辈写的文章,现在将全部安装步骤以及遇到的一些问题总结如下:
本文的前提条件是你已经安装好 NVIDIA 显卡, 此部分操作参见本博客上一篇内容。
安装其它必要软件
- 下面都是一些可能需要用到的库,否则在安装CUDA时,可能会提示缺少需要的库文件。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
- 值得注意的是,我在我的Ubuntu系统
/usr/lib/x86_64-linux-gnu/
目录下找到了名为libGLU.so.1.3.1
,所以在尝试建立链接到/usr/lib/
目录下后,安装Samples时就正常了。
sudo ln -s /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1 /usr/lib/libGLU.so
安装CUDA
cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。
从这里下载cuda的安装文件
从这里下载cuda的安装文件
https://developer.nvidia.com/cuda-downloads
注意这里下载的是cuda8.0的runfile(local)文件。
这里是nvidia给出的官方安装指南(遇到问题时可以查阅):
这里是nvidia给出的官方安装指南(遇到问题时可以查阅):
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt
下载完cuda8.0后,执行如下语句,运行runfile文件:
sudo sh cuda_8.0.61_375.26_linux.run
执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia375驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia381,所以这里不要选择安装。其余的都直接默认或者选择是即可。
安装成功后会出现如下界面
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log
安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH
重启电脑
验证
查看NVCC版本
nvcc -V
,输出结果如下:
编译并运行例子
-
进入到Samples安装目录,然后在该目录下
make
,等待十来分钟。 -
编译完成后,可以在
Samples
里面找到bin/x86_64/linux/release/
目录,并切换到该目录 -
运行
deviceQuery
程序,查看输出结果如下(重点关注最后一行,Pass表示通过测试):
建议要做的事
之后我们可以安装一些官方的CUDA例子,来检验我们是否安装成功了。
进入CUDA目录/usr/local/cuda-8.0/bin,会发现在这个目录下,有一个名为cuda-install-samples-8.0.sh的文件,在控制台使用命令:
sudo sh cuda-install-samples-8.0.sh "例子被创建的目录"
我使用的是/home目录。在我的/home目录下,有一个NVIDIA_CUDA-8.0_Samples 文件夹,里面就是官方的例子,进入这个目录,输入make进行编译。
sudo make
需要相当长一段时间才能编译完成。我在编译第三个sample的时候,遇到了一个错误
/usr/bin/ld: cannot find -lnvcuvid
刚开始以为是安装出错了,因为之前安装失败过一次,又手动把CUDA给卸载了。结果发现,是英伟达显卡驱动版本不同导致的.在 NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL/findgllib.mk 文件中,
UBUNTU_PKG_NAME = "nvidia-375"
而我的英伟达驱动是381,于是只要把这行代码改成
UBUNTU_PKG_NAME = "nvidia-381"
就可以了,然后所有的例子都顺利的编译通过了。在编译完所有例子以后,会提示:
Finished building CUDA samples
之后运行一些例子,编译好的二进制文件,保存在~/NVIDIA_CUDA-8.0_Samples/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release 中,进入这个目录,输入ls,看到很多编译好的二进制文件。先运行deviceQuery。输入
sudo ./deviceQuery
可以看到如下运行结果:
在运行bandwidthTest
sudo ./bandwidthTest
到此,CUDA算是已经安装完毕了。