zsim使用的不是原始zsim而是ramulator-pim里的zsim(项目地址)
dramsim3我有做一些简单的结构修改,不然集成时会报错(dramsim3项目地址,代码修改可以看我的git记录)
步骤
1、编译zsim(先确保不集成draimsim3的时候能编译成功)
2、编译dramsim3(注意使用命令cmake -DCMAKE_CXX_FLAGS='-D_GLIBCXX_USE_CXX11_ABI=0' ..
而不是简单的cmake ..
)
3、修改zsim的SConstruct,加上Dramsim3
4、添加动态库路径
5、再次编译zsim
6、测试
详细步骤
1、编译zsim(略,因为以前写过笔记)
2、编译dramsim3,基本按照官方文档,但是需要添加一个flag,不然会因为c++的abi版本不匹配报错(E: Unable to load /zsim-ramulator/build/opt/libzsim.so: /ramulator-pim/ramulator-pim/zsim-ramulator/build/opt/libzsim.so: undefined symbol: _ZN8dramsim315GetMemorySystemERKSsS1_St8functionIFvmEES4_
)
# cmake out of source build
mkdir build
cd build
cmake .. -DCMAKE_CXX_FLAGS='-D_GLIBCXX_USE_CXX11_ABI=0'
# Build dramsim3 library and executables
make -j4
# Alternatively, build with thermal module enabled
cmake .. -DTHERMAL=1 -DCMAKE_CXX_FLAGS='-D_GLIBCXX_USE_CXX11_ABI=0 # 我没测试这个
3、SConstruct文件
if "DRAMSIM3PATH" in os.environ:
DRAMSIM3PATH = "/home/dramsim3/DRAMsim3" # 这里我写死了。。因为我电脑上有好几个DRAMSIM3,正常情况下应该是使用DRAMSIM3PATH的值
env["CPPFLAGS"] += " -Wl,-R" + DRAMSIM3PATH
env["PINLIBPATH"] += [DRAMSIM3PATH]
env["CPPPATH"] += [DRAMSIM3PATH + "/src"]
env["PINLIBS"] += ["dramsim3"]
env["CPPFLAGS"] += " -D_WITH_DRAMSIM3_=1 "
env["LIBPATH"] += [joinpath(DRAMSIM3PATH)]
4、添加库路径
$ sudo vim /etc/ld.so.conf
添加路径`/home/dramsim3/DRAMsim3`(直接追加一行就好了)
$ ldconfig # 更新一下
$ ldd build/opt/zsim # 检查一下库路径是否正确
5、重新编译zsim
6、运行测试