Ubuntu12.04 CUDA4.2开发环境搭建

Ubuntu12.04 LTS前一段时间发布了.台式机加了内存,所以也就果断升级64位Ubuntu12.04.

笔记本也跟着装上了Ubuntu12.04,装显卡驱动的时候也是遇到一大堆的问题. 会在下一篇博客中介绍显卡分屏的解决方法.


下面就讲一下Ubuntu12.04配置CUDA开发环境的过程和一些问题的解决办法.

下面是我们需要的安装文件:


这里需要说明的一点是为什么我会选择把这些安装文件都放在一个单独的目录下面,而且是选择使用英文.

因为在接下来的安装显卡驱动的过程在,需要关闭Xwindows,切换到终端下去工作,所以无法识别中文,当然,

如果使用的是英文界面的话,则不需要注意这个小细节,其实没什么,只是个小细节.


下载的资源链接是:http://developer.nvidia.com/cuda-downloads (这是最新版本的资源链接)


这个是我在官网的截图,按照步骤做很简单。1-2-3一次下载


1.安装驱动:

在安装驱动之前需要卸载原来的驱动,如果没有安装的话则不需要.

[plain] view plain copy
  1. sudo apt-get -purge remove nvidia-*  

然后关闭Xwindows:

[plain] view plain copy
  1. sudo /etc/init.d/lightdm stop  

自从Ubuntu11.04之后就使用lightdm替代gdm,请区别.

切换到终端登录,然后安装驱动:

[plain] view plain copy
  1. Ctrl+Alt+F1   
  2.   
  3. sudo chmod a+x CUDA_insall (这里的英文单词好像写错了.)  
  4.   
  5. sudo sh CUDA_insall/devdriver_4.2_linux_32_295.41.run  

安装的过程一路很简单,该接受的接受,该YES的时候就别犹豫.

安装完后重启Xwindows.

[plain] view plain copy
  1. sudo /etc/init.d/lightdm start  

我的笔记本在重启之后就出现问题,出现六分屏的现象,需要做简单的修改.

[plain] view plain copy
  1. sudo vim /etc/X11/xorg.conf  

添加如下字段:
[plain] view plain copy
  1. Section "Screen"  
  2.     Identifier     "Screen0"  
  3.     Device         "Device0"  
  4.     Monitor        "Monitor0"  
  5.     DefaultDepth    24  
  6.     #Option         "NoLogo" "True"  
  7.     Option         "ModeValidation" "NoTotalSizeCheck"  
  8.     SubSection     "Display"  
  9.         Depth       24  
  10.     EndSubSection  
  11. EndSection  

其中的logo选项被我注释掉了,是可以选择的,如果不想在启动的时候看到nvidia的logo的话就可以把注释去掉,我是比较喜欢nvidia logo的,所以没有注释掉.


Notes:

如果修改后分屏的问题解决了,但是分辨率却无法改变。像我的笔记本就变成640×800,本来应该是1366×768的。而且在显示中无法调节,则解决的办法是重新安装上面的

步骤安装一遍驱动,我的问题就是这样子解决的。如果在安装的过程中提示显卡驱动冲突,或者是正在使用中的warnning,则reboot之后再重新安装显卡驱动即可.


不出意外,按照上述方法reboot之后就应该会成功了,没注释掉logo的同学就可以看到nvidia的logo了.


2.安装CUDA Toolkit很简单:

[plain] view plain copy
  1. sudo sh CUDA_insall/cudatoolkit_4.2.9_linux_32_ubuntu11.04.run  

安装过程可以直接全部Enter带过,要是想自己DIY安装位置的话,则自行决定.

安装完之后需要做一些环境变量的配置:直接编辑 .bashrc文件添加环境变量

[plain] view plain copy
  1. vim .bashrc  


系统启动的时候就会自动添加环境变量.


3.编译CUDA样例DEMO(其中有我们需要的template程序):

[plain] view plain copy
  1. sudo sh CUDA_insall/gpucomputingsdk_4.2.9_linux.run  

然后可以指定安装位置,默认是在~/NVIDIA_GPU_Computing_SDK

在编译SDK样例之前需要配置一下编译环境,安装一些库.

[plain] view plain copy
  1. sudo apt-get install g++ build-essential  
  2.   
  3. sudo apt-get install freeglut3-dev libx1-dev libxmu-dev  
  4.   
  5. libxi-dev libgl1-mesa-glx libgl1-mesa-dev   

其中我的libgl1-*系列的库是安装好的.

然后进入源码目录编译:

[plain] view plain copy
  1. cd NVIDIA_GPU_Computing_SDK/C && make  

这是会出现问题:

[plain] view plain copy
  1. CUDA undefined reference to `gluErrorString'  

问题处GCC/G++的版本太高,Ubuntu12.04使用的是4.6的版本,而CUDA 4.2需要使用4.4编译.

解决的办法是安装4.4版本的编译器:

[plain] view plain copy
  1. sudo apt-get install aptitude  
  2. sudo aptitude install gcc-4.4 g++-4.4  
  3. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 10  
  4. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 10  

然后再编译,稍稍等待,就成功了!


另外一个问题就是现在使用的是低版本的编译器,如果需要使用高版本的编译器怎么办呢?

解决的办法如下:

我们只需要改变软链接即可.

做法如下:

[plain] view plain copy
  1. sudo uptate-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 30  

在需要切换GCC的时候就可以:

[plain] view plain copy
  1. sudo update-alternatives --config gcc  


所以只需要手动选择即可.G++同理.


最后给一张SDK样例的快照:


It's beautiful,isn't it?

你可能感兴趣的:(Linux)