graphite simulator是由mit的carbon研究組開發的一款並行分布式全系統模擬器,該小組隸屬於原raw chip設計團隊,並與tilera公司關係緊密。graphite通過對一系列計算機體系結構領域常用模擬器的整合,為研究者提供了乙個全系統模擬環境。graphite可模擬的部分包括:memory hierarchy、cache、directory、noc等,並使用orion計算動態功耗。graphite目前不支援core詳細模擬,而是採用pin來執行測試程式,並用截獲的指令流來驅動整個模擬器。這種方式雖然限制了模擬器的exploration space,但是可以使得更多的真實負載可以被用於整個系統的測試。(在今年5月的ipdps2012上,我遇到了mit的george kurian,他說目前carbon正在考慮用乙個詳細的core模擬模組替換pin,以使得graphite可以滿足未來tilera的設計需要。
graphite simulator的出現為研究更大規模的眾核處理器提供了支援,使得研究人員有機會通過實驗了解乙個大型處理器晶元內各部分的變化對於整體效能的影響。自2023年該模擬器推出以來,已經有越來越多的研究人員開始關注這個工具,並將該工具引入到自己的研究工作中。graphite simulator的主頁位址是:
我的下一步研究工作也將使用graphite,因此我用了一段時間來配置這個工具。按照最初的想法,我希望能在centos 5.3 64位版上來執行這個工具,但是由於centos 5.3將部分futex由使用者態改為了核心態,使得graphite不能正常執行,所以這個移植工作暫時擱置了,以後有時間再做吧。本文介紹一下最基本的graphite配置方法。 1.
執行環境:
作業系統:
debian 5.0
(lenny)64
位版編譯器:
gcc 4.3.3 / gcc 4.4.7
其他庫:
boost 1.38
說明:目前
graphite
只能在debian 5或6
上執行。在
centos 5.3
執行時,由於
centos
將中的部分系統呼叫由使用者態改為核心態,導致
graphite
在編譯和執行時會出現異常。另外,由於
gcc 4.5
以上版本將部分
c++的語言特性做了修改,導致
graphite
在編譯時會出現異常。 2.
手動編譯
gcc
(1)gmp
、mpfr
和mpc
(2)依次編譯安裝這三個庫,注意,由於這三個庫有前後依賴關係,所以順序不能亂
a)將這三個庫分別解壓到
gmp、
mpfr
、mpc
目錄b)
在上述目錄相同的目錄內建立編譯用的臨時目錄
build-gmp
、build-mpfr
、build-mpc c)
在build-gmp
目錄中執行如下命令
i.../gmp/configure --prefix=/usr/local/gmp
ii.make
iii.
make check
iv.make installd)在
build-mpfr
目錄中執行如下命令
i.../mpfr/configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
ii.make
iii.
make check
iv.make installe)在
build-mpc
目錄中執行如下命令
i.../mpc/configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/mpfr
ii.make
iii.
make check
iv.make install
f)為系統加入環境變數
export ld_library_path=$ld_library_path:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib
g)gcc4.4.7
解壓到目錄
gcc,並在相同目錄建立編譯用的臨時資料夾
build-gcc h)
在build-gcc
中執行執行如下命令
i.../gcc/configure --prefix=/usr/local/gcc-4.4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
ii.make
iii.
make installi)將
/usr/bin
下的gcc
和g++
軟連線指向
/usr/local/gcc/bin
下的gcc-4.4
和g++-4.4 3.
安裝boost 1.38 a)
boost1.38
壓縮包至目錄
boost_1_38_0
,並在同一位置建立目錄
boost b)
執行boost_1_38_0/tools/jam/src
中的build.sh
,會在boost_1_38_0/tools/jam/src/bin.linux-x86_64/
中得到可執行檔案
bjam
,將這個檔案複製到
boost_1_38_0中c)
在boost_1_38_0
中執行如下命令
./bjam --prefix=$build_dir/boost --build-type=complete --with-filesystem --with-system installd)將
boost
資料夾中
include
中最內層的目錄複製到
/usr/local/include
中,將boost/lib
中所有檔案複製到
/usr/local/lib中4.
編譯graphite a)
graphite包b)
pin,目前
graphite
只支援27887
版的pin c)
修改graphite
中的make.common
,將其中的
boost_vision=1_35
改為1_38
,並將pin_home
的值改為
pin的路徑
d)修改
graphite/common/make.common
,將其中的
boost_root
的值改為
boost
原始碼的路徑(這裡是
boost_1_38_0
),將boost_suffix
的值改為
gcc44-mt-1_38 e)
修改graphite/tool
中的spawn.py
,將其中
boost_path
的值改為剛才編譯
boost
的路徑f)
按如下說明修改
graphite
原始碼i.
修改common/mcpat/mcpat_cache.cc
,將其中
system((cmd.str()).c_str());
一句注釋掉,改為
__attribute(__unused__)int tmp = system((cmd.str()).c_str());
ii.修改common/tile/core/main_core.h
,將其中
class maincore : protected core
一行改為
class maincore : public core
iii.
修改contrib/orion/buffer/bitlineunit.cc
,在檔案頭部新增
#include
iv.修改contrib/orion/buffer/outdrvunit.cc
,在檔案頭部新增
#include v.
修改contrib/orion/buffer/prechargeunit.cc
,在檔案頭部新增
#include
vi.修改contrib/orion/buffer/wordlineunit.cc
,在檔案頭部新增
#include
vii.
將contrib/orion/buffer
中的sram.h
和sram.cc
檔名分別改為
sram.h
和sram.cc g)
在graphite
目錄中make h)
編譯完成後,用自帶的程式進行測試,執行
的安裝配置 Manjaro Linux安裝配置
安裝wmtools 1.解除安裝舊版本 sudo pacman r open vm tools git clone 3.執行指令碼進行安裝 cd vmware tools patches sudo patched open vm tools.sh 安裝vim sudo pacman s vim 更新...
python配置安裝 配置安裝
scrapy框架安裝 安裝請參考 scrapy安裝 windows安裝方式 1.先確定windows是否安裝了python c users administrator python python 2.7.13 v2.7.13 a06454b1afa1,dec 17 2016,20 53 40 msc...
Fedora 安裝配置
1,sudo 的配置 chmod w etc sudoers echo mirandam all all nopasswd all etc sudoers chmod w etc sudoers sudo 2,安裝源 產生新增第三方源 安裝驅動 sudo yum install kmod nvidi...