序言
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 內存
- 在Ubuntu下,新建一個文件夾-Sim
- 在Sim下新建lib_default文件夾,先在虛擬機中編譯Sim,將Sim生成的
libcudart.so
和libOpenCL.so
相關的lib文件全都拷到Sim文件夾下。 - 將虛擬機中cuda安裝目錄下的bin文件夾拷到sim文件下。其實bin中的東西我們只需要一部分,省事一塊考進來。
- 新建一個
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跑就可以了。
打個廣告,歡迎光臨我的淘寶蘋果店-加菲貓和光叔的蘋果店,裏面有宇宙無敵超級好吃的棲霞大蘋果
轉載請註明出處!