GPGPU-Sim研究(二)-认识GPGPU实验工具(ubuntuServer 10.04 安装GPGPU-Sim)
最近发现在sim的官网那个已经给出了安装好gpgpu-sim的虚拟机,也是大家的福音。请戳链接http://gpgpu-sim.org/
GPGPU-Sim,简单的说是一个模仿GPU运行的一个软件,一个仿真器,通过它能够更好的观察CUDA程序在“仿真GPU“中的运行情况。
本阶段的主要任务就是安装GPGPU-Sim,安装步骤是从带我那个学长写的一篇日志里,加上我自己的安装过程中的一些体会。学长日志链接:http://blog.renren.com/blog/197495812/896874009,红色部分为外加部分。
强烈建议各种软件的版本、包括系统的版本完全按照本博客来(前后安装了20多次的血泪史。。)
这个应该算是一个很很小众的软件了,在网上也不太容易找到资料,因此,逐渐的摸索,终于安装成功了。下面把步骤分享如下:(每一步骤之间最好重启一下,或者退出重新登陆一下,因为涉及到修改.bashrc文件的必须在下次启动时生效)。
第一步,安装Linux。
我比较喜欢使用Ubuntu,所以下面的讲解都是基于Ubuntu的,版本是Ubuntu 10.04 Server(ubuntu在10年不知发生了什么,10.04下有四个版本,而10.10只有一个测试版,然后在11.04就换内核了,在这里建议用ubuntuServer10.04.4,因为其他版本有可能导致安装失败)。安装过程没啥太大的讲究,这里就是建议各位使用虚拟机,使用虚拟机的好处就是可以做快照,然后步步为营,省得一旦出错就乱了手脚。
在这里注意的是,ubuntu安装成功后千万不要做更改软件源一类能够影响版本的举动!
第二步,安装CUDA。
我用的Server版本的Ubuntu直接带有开发工具链,如果使用桌面版,还需要把开发工具链装上,此外顺便安装一些CUDA所必须的库。
$ sudo apt-get install build-essential libxi-dev libxmu-dev libglut3-dev
然后到CUDA网站上下载CUDA 4.0,是的,我在强调4.0,GPGPU-Sim目前最高只支持到CUDA 4.0。如果在NVIDIA网站上找不到4.0下载,可以直接通过百度搜索。下载Driver和Tool Kit就行了,注意Tool kit一定要对应Linux的版本,比如,我现在使用的10.04 Server(64位版)就要下载Ubuntu 10.10 x64的Tool kit。(下载链接:cudatoolkit_4.0.17_linux_64_ubuntu10.10.run,对,你没看错,是ubuntu10.10,因为官网上CUDA4.0对应的ubuntu版本就是10.10,能够兼容10.04.4)
sudo sh cudatoolkit_4.0.17_linux_64_ubuntu10.10.run
安装Driver需要在纯文本界面下进行,如果是Desktop版的,需要再启动时进入grub,然后按e修改启动项,只要在内核后面的参数中加入 text 参数,然后Ctrl + X启动进入。
由于虚拟机肯定没有CUDA显卡,因此在安装CUDA Driver的时候需要将检查显卡这步拿掉。安装CUDA Driver的意义就是在于其中包含了编译CUDA程序所必须的 libcuda.so 文件。(devdriver_4.0_linux_64_270.41.19.run)
sudo sh devdriver_4.0_linux_64_270.41.19.run -k $(uname -r)
安装Tool kit没啥特别的,各种默认即可。
别忘了安装完毕,需要在~/.bashrc文件的末尾添加如下内容:
export CUDA_INSTALL_PATH=/usr/local/cuda
export PATH=$PATH:$CUDA_INSTALL_PATH/bin
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/software/gpgpu-sim/v3.x/lib/4000/release
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_INSTALL_PATH/lib64
其中第3行的内容是后面要用到的。另外,我将gpgpu-sim下载到了~/software目录中,当然这个可以根据个人喜好随意存放。
第三步,下载并准备gpgpu-sim
非常讨厌的是gpgpu-sim没有提供http或ftp的下载方式,需要通过git方式获取。首先安装git:
$ sudo apt-get install git
然后按照gpgpu-sim官方网站(http://www.gpgpu-sim.org)上的提示,输入命令,下载gpgpu-sim:
$ git clone git://dev.ece.ubc.ca/gpgpu-sim
注意,教育网使用git可能存在问题,那只能自己想办法解决了。下载完成后目录中多了一个叫gpgpu-sim的子目录。里面包含了三个子目录,其中之一是v3.x,我们主要使用该目录中的文件,其他两个目录可以忽略。
下面安装gpgpu-sim官方手册的指示安装依赖库:
$ sudo apt-get install xutils-dev bison zlib1g-dev flex libglu1-mesa-dev doxygen graphviz python-pmw python-ply python-numpy libpng12-dev
(下载地址:gpu_simulators)
第四步,安装GCC
是的,你也没有听错,是得安装GCC。这里很搞笑,gpgpu-sim的程序在GCC 4.4.x编译器下会报编译器内部错误!无奈Ubuntu 10.04在apt-get中提供的gcc又只有4.4.x,所以我只能硬着头皮装最危险的GCC。gpgpu-sim中提到他们开发时使用的是4.5.1,那么我也是用4.5.1,一定要求稳(我曾冒进的使用了4.7.2,发现GCC4.7跟CUDA存在兼容问题。。。)。
安装步骤可以参照这篇博客:http://www.cnblogs.com/LitLeo/p/3534196.html
由于使用了虚拟机,这个过程比较缓慢,往往会持续7个小时之久。
安装完成后,使用gcc -v命令测试一下版本号。
然后随便找一个CUDA程序用nvcc编译一下,结果发现报错了,这是用nvcc默认只支持GCC 4.4及以下的编译器,因此需要对/usr/local/cuda/include/host_config.h做一些修改,将第80行修改为:
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5)
然后在此编译该程序,就不会在出现错误了。
第五步:编译gpgpu-sim
万事俱备只欠东风了,我们已经做好了所有的准备工作,现在需要编译gpgpu-sim了。
进入gpgpu-sim/v3.x目录,使用如下命令编译:
$ source setup_environment
$ make
$ make docs
整个过程应该在十分钟左右。然后修改~/.bashrc中,把之前注释掉的第三行拿掉注释,把原来第4行注释掉。
第六步:测试gpgpu-sim
我们使用在第四步末生成的CUDA程序,首先去gpgpu-sim/v3.x/comfig中把GTX480目录下的所有文件拷到和那个CUDA程序同一个目录下,然后运行那个CUDA程序(假设编译后文件名为cudatestapp)
./cudatestapp
会出现一大堆的信息,不用管他,只要不报错,我们就成功了。
至此,gpgpu-sim安装完毕