近期需要到Linux下进行CUDA相关的编程,历经装崩系统、各种版本不兼容等等重重困难后,终于写下了这篇博客,防止以后再次入坑。
1. 显卡
用的是台式机,显卡版本较老,是一块GT240,用独显的话,第一次安装Ubuntu系统会出现这样一个问题,当使用U盘启动之后,会出现屏幕花屏的现象,无法弹出安装界面,一开始我以为是Ubuntu版本的问题,发现试了各种版本都是这样,后面网上查了一下才知道,Ubuntu系统在安装显卡驱动之前,在普通模式下是不支持独显显示的,那只有换回集显,拔下独显了呗,果然顺利安装了Ubuntu 12.04。
重启之前,把独显重新插上,此时要注意在启动选项中选recover恢复模式,之后一路默认进入系统,否则普通模式还是花屏。进入系统后发现能正常显示了,只不过没有安装驱动界面丑了点。
如果接下来需要安装CUDA的话,建议不要急着装显卡驱动!!因为CUDA的.run安装程序会装显卡驱动的,如果这个时候装,到时候容易引起驱动版本的冲突,虽然可以在CUDA安装选项中选择无需安装,因为软件应该向下兼容才对,但是亲身经验告诉我,Ubuntu不会意识到本机已有驱动版本比CUDA提供的最低版本要高!
2. 网卡
这个比较容易,我用的无线网卡是TP-Link WDN6200,网上查了下芯片用的是rtl8812au,顺便查到了该芯片的开源驱动程序,github大法好,链接如下:https://github.com/gnab/rtl8812au 下载.zip文件后,解压到自己想要的文件夹下面,进入目录依次执行下面命令,等一会儿就可以看到无线网络图标点亮了
sudo make
sudo make install
sudo modprobe 8812au
3. CUDA下载
Ctrl+Alt+F1进入单用户模式,再运行如下命令关闭图形界面服务
sudo service lightdm stop
进入CUDA.run文件所在的目录就可以安装了
然而之前的一个问题是,CUDA现在已经更新到7.5了,是不是越新的版本越好呢?从易安装程度上来说,并不是这样的(各个CUDA版本下载)(高手可以无视这一段)。首先都进到每个版本下面看看Linux的Getting Started文件,这个文件里,一定要看系统版本最低要求的一个表格!!先从下面几个在日志文件中的错误说起
1) ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
错误原因:操作系统内核版本过高,而CUDA安装文件可能是针对老的内核版本而言的,所以会出现autoconf.h或者auto.conf缺失,因为在新的Linux内核版本中,这两个文件目录都已经被移除或者更改了,因此会出现找不到的情况,我试了make oldconfig && make prepare有错,故放弃。去网上找到了CUDA 5.5的Getting Started文件发现,其内核版本建议是generic 2.6,而在我的Ubuntu下面输入
uname -r
查看内核版本是generic 3.13,故放弃CUDA 5.5,转向CUAD 6.0,这次建议的Ubuntu 12.04内核版本是generic 3.2,更近了一步,抱着不确定的形态试着再次安装,没有报错,成功了!
2)Warning: 显卡驱动可能不会检测到你的GPU
错误的原因:CUDA安装的驱动比原版本的要高,可能是显卡版本太低的,因此考虑卸载原来的N卡驱动,下一个版本较低的CUDA
成功安装之后,我的显示信息如下:
===========
==Summary==
===========
Driver: Installed
Tookit: Installed in /usr/local/cuda-6.0
Samples: Installed in /home/myname/NVIDIA_CUDA-6.0_Samples, but missing recommended libraries
之后输入命令:
sudo lightdm service start
回到图形界面,你会发现安装了驱动之后,界面变得很酷炫了。
接着配置CUDA相关环境变量,如果是x86_64的系统,在/etc/environment输入
export PATH=$PATH:/usr/local/cuda-6.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-6.0/lib64:/lib
如果是32位的系统,则输入
export PATH=$PATH:/usr/local/cuda-6.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-6.0/lib:/lib
然后进入/home/myname/NVIDIA_CUDA-6.0_Samples,输入
sudo make
编译成功完成后,到/home/myname/NVIDIA_CUDA-6.0_Samples/bin目录下
./deviceQuery
看到了CUDA和GPU信息,说明安装成功了
4. Nsight配置
Nsight Eclipse Edition,Nvidia公司的Eclipse cuda集成开发环境,终端直接输入
nsight
然后参考一篇国外的Nsight配置教程即可,Nsight配置教程,包括C++和后面要写的Java(JCuda)