最近發現在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安裝完畢