GPGPU-Sim(番外)-如何加快GPGPU-Sim的運行速度

序言

GPGPU-Simer都應該體驗過Sim在虛擬機中奇慢無比的速度,一個在真實環境下幾ms就跑完的benchmark,在Sim下通常需要幾十分鐘到幾小時。跑一次實驗benchmark多了基本就得一天,比較浪費時間。
等待總是無聊的,本篇博客將給出我自己總結的幾種加快Sim運行速度的解決方案。

方案一:堆硬件

ssd,加內存,上好CPU,使勁堆,有錢任性

方案二:減少Sim輸出

輸出信息打印出來是很耗時間的,Sim本身的很多輸出是並沒有太大的作用,可以將無用的輸出註釋掉

方案三:在真實機子上裝Sim

Sim是一個比較小衆的仿真器,編譯用的還是gcc 4.5.1, cuda 4.2,Ubuntu 10.04. 所以才選用虛擬機作爲運行平臺。官方給的虛擬機鏡像是Ubuntu 12.04,所以在真實電腦較新的Ubuntu系統上裝Sim是理論上可行的(雖然我沒試過)。但是缺點很明顯,需要折騰,手動編譯gcc就夠受的,還要解決各種依賴和軟件版本問題。最大的缺點就是,一旦崩潰,有時只能重裝。我覺得除非是linux大神,否則不建議這麼弄。

方案四:虛擬機編譯,正常電腦運行

這是實驗室博士發現的一個方法。也是本博客重點說明的一個方案。

首先要明白Sim的模擬機制,我在這篇博客裏進行了簡單介紹。總結爲一句話:GPGPU-Sim編譯生成的庫文件是模擬cuda程序運行的關鍵。

基於這個原理,我來介紹一下該方案的細節。
環境 : GPGPU-Sim3.2.2,Ubuntu 14.04,CPU i7,12G 內存

  1. 在Ubuntu下,新建一個文件夾-Sim
  2. 在Sim下新建lib_default文件夾,先在虛擬機中編譯Sim,將Sim生成的libcudart.solibOpenCL.so相關的lib文件全都拷到Sim文件夾下。
  3. 將虛擬機中cuda安裝目錄下的bin文件夾拷到sim文件下。其實bin中的東西我們只需要一部分,省事一塊考進來。
  4. 新建一個setvar.sh文件,內容如下
export CUDA_INSTALL_PATH=~/sim
export LD_LIBRARY_PATH=./lib_default

然後執行 source setvar.sh,這裏請區分source setvar.sh./setvar.sh的效果。

將benchmark拷貝到sim文件夾下,就可以用sim模擬執行了。

此方案實現了在真實機子上用Sim模擬benchmark運行而不用裝gcc4.5.1和cuda4.x。並且非常靈活,我們可以將修改的GPGPU-Sim生成的libs放在不同的文件夾下,然後寫sh跑就可以了。

打個廣告,歡迎光臨我的淘寶蘋果店-加菲貓和光叔的蘋果店,裏面有宇宙無敵超級好吃的棲霞大蘋果

轉載請註明出處!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章