红联Linux门户
Linux帮助

Ubuntu 11.10安装CUDA 4.0

发布时间:2014-12-08 09:27:47来源:linux网站作者:linux人

终于在Ubuntu 11.04下把cuda4.0安装上了,Nvidia官网上给的CUDA工具包只支持到Ubuntu 11.10,正常情况下在Ubuntu 11.04下是无法安装的,后来经过上网查阅一些资料加上实践后,已经将cuda4.0安装完毕并可以正常运行了,下面记录下我的安装流程:


先声明一下我的电脑配置:
CPU:Intel core P8600
内存:2*2G
显卡:Nvidia Quadro NVS 160M
硬盘:250G 7200转
系统:windows7-32bit;RedHat CentOS5.6-64bit;Ubuntu 11.04-32bit


由于安装之前已经知道Ubuntu 11.04下无法正常安装cuda4.0,里面的内容比较详细,本文部分内容也引自此篇文章。

1:下载与安装CUDA 4.0

首先从NVIDIA网站下载CUDA Toolkit for Ubuntu Linux 10.10、CUDA Tools SDK与GPU Computing SDK code samples。

下载完成后先安装CUDA Toolkit for Ubuntu Linux 10.10,由于在Ubuntu 11.04下无法正常的用sh命令进行安装,所以需要用一下命令进行安装:

chmod +x cudatoolkit_4.0.17_linux_32_ubuntu10.10.run
sudo ./cudatoolkit_4.0.17_linux_32_ubuntu10.10.run

注意上面工具包的名称要跟你下载的工具包名称一致,不同系统版本的文件名略有差别。

预设是安装在/usr/local/cuda 目录下,建议就依照他的预设路径安装,安装完成后要设定Library 的Path,有两个方式,一种是更改LD_LIBRARY_PATH 环境变数:
在用户名的目录下打开.bashrc文件,可以通过vi命令或者gedit命令进行编辑,我更喜欢后者,在末尾处加入两行命令:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
如果是64位系统的话需要将上一行的lib改为lib64,然后保存


另一种方法是直接加在/etc/ld.so.conf.d/ 里面:
sudo echo "/usr/local/cuda/lib" >> /etc/ld.so.conf.d/cuda-40.conf
sudo ldconfig
如果是64位系统同样将lib改为lib64
再设定PATH:
echo 'export PATH=$PATH:/usr/local/cuda/bin' >> ~/.bashrc
安装CUDA Tools SDK:
chmod +x cudatools_4.0.17_linux_32.run
sudo ./cudatools_4.0.17_linux_32.run
预设是安装在/usr/local/cuda/CUDAToolsSDK 目录下。
安装GPU Computing SDK code samples:
chmod +x gpucomputingsdk_4.0.17_linux.run
./gpucomputingsdk_4.0.17_linux.run
预设是安装在自己帐号的~/NVIDIA_GPU_Computing_SDK 目录下,安装时要设置CUDA 安装的路径: Enter CUDA install path (default /usr/local/cuda):
若CUDA 都是依照预设路径安装,则这里就不需要更动。


设定GCC编译器
CUDA 4.0 目前只支援到gcc 4.4,若是只有装gcc 4.5 的话,还要再装一下gcc 4.4 才能编译: sudo apt-get install gcc-4.4
接着要让编译时能够使用gcc 4.4,一种方式是将系统的/usr/bin/gcc 改连到/usr/bin/gcc-4.4,/usr/bin/g++ 也一样改连到/usr/bin/ g++-4.4,或是使用update-alternative:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 150
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 150
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100


接着使用update-alternatives 选择4.4 版的gcc:
sudo update-alternatives --config gcc
执行后选择gcc-4.4,再接着选择4.4 版的g++:
sudo update-alternatives --config g++
执行后选择g++-4.4
若不想修改整个系统的设定,有另一个办法可以处理,自己建一个~/bin 目录,然后建立gcc-4.4 与g++-4.4 的连结,再将这个路径加入自己的PATH 中,这样就不会影响其他的程式:
mkdir ~/bin
ln -s /usr/bin/gcc-4.4 ~/bin/gcc
ln -s /usr/bin/g++-4.4 ~/bin/g++
然后在每次要编译CUDA 程式前执行:
export PATH=~/bin:$PATH


这样就不需要更动到系统其他程式的设定了。
编译GPU Computing SDK code samples
接下来要编译GPU Computing SDK code samples:
cd ~/NVIDIA_GPU_Computing_SDK
make

若是幸运的话,这样就大公告成了,但通常都会有些问题,像编译时若是出现类似这样的问题:
/usr/bin/ld: cannot find -lXi
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lglut
collect2: ld returned 1 exit status
是表示有一些必要的Library 没装,用apt-cache 找一下再用apt-get 装起来就可以了:
apt-get install libxi-dev libxmu-dev libglut3-dev


若出现
/usr/bin/ld: cannot find -lcuda
collect2: ld returned 1 exit status

/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
是表示找不到NVIDIA GL 或CUDA Library,若是您是使用Ubuntu 内建的驱动程式管理介面安装的NVIDIA Driver,则将/usr/lib/nvidia-current 下面的so 档件一个连结到/usr/ lib 下面即可:
sudo ln -s /usr/lib/nvidia-current/libcuda.so /usr/lib/libcuda.so
sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so

sudo apt-get install libglui-dev*


总之出了错都会有些错误讯息,仔细看看错误讯息大概都可以解决的。

我安装的时候就出现了/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
在使用sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so命令时又提示说/usr/lib/libGL.so已经存在,这时,可以在lib目录下随便建立一个目录将libGL.so剪切至你新建那个目录里备份起来,然后再运行 sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so命令就可以了。
安装完成之后就要检验一下安装是否成功
进入~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release目录下看看是不是有很多可执行文件


注意deviceQuery这个可执行文件,我们就是要执行它来判断自己的CUDA是否安装成功,输入./deviceQuery命令来执行它,如果出现你的显卡信息则说明CUDA已经安装成功。