Zsim+nvmain安装

来源:互联网 发布:命运 定数 知乎 编辑:程序博客网 时间:2024/06/08 18:40

       最近在装zsim+nvmain模拟器,做混合存储器实验,一翻从开始到放弃的折腾后,今天又google了下最后的一个问题。终于安装成功,下面是这些天的折腾。。。。。

zsim集成nvmain安装步骤:

1.下载软件

 zsim和nvmain下载地址

2. 安装依赖软件(依赖软件安装好,你就成功了一大半)

这里一定注意安装软件的版本问题,zsim有很强的系统内核依赖问题,对软件版本的要求特别高。在此介绍下我的各种软件的版本:

ubuntu 系统(14.04):4.10.0-38-generic 64位

gcc ,g++ : gcc version 4.8.5

pin: pin-2.13-61206-gcc.4.4.7-linux    软件项目里已经集成,这里无需安装

boost :version 1.59   boost下载地址

libconfig: version 1.5   libconfig下载地址   安装参考

hdf5 : version 1.8 hdf5下载地址

这里的软件安装可以google,必须保证安装正确,下面在编译zsim的时候才不会有那么多的问题。在安装gcc的时候,尝试了各种版本(5   4.8   3.3   3.4 ),一直提示版本问题,最终换成了4.8.5,可以使用。一直在报错以下问题

The version of the compiler you use to build a tool must be compatible     with the pin kit. On Linux*, you can use gcc 3.4 or any later version.     Note, however, that you cannot use gcc versions 4.5 or newer to compile     Probe mode tools, since these versions create files with a new OS ABI version     which is not compatible with the pin kit. You can also use Intel(R) C++      compiler.

3 编译zsim

配置env.sh里的路径,下面是我的本地的配置信息

#!/bin/shPINPATH=/home/***/SHMA-master/zsim-nvmain/pin_kit/NVMAINPATH=/home/***/SHMA-master/zsim-nvmain/nvmain/ZSIMPATH=/home/***/SHMA-master/zsim-nvmain/BOOST=/usr/localHDF5=/home/jyf/SHMA-master/hdf5-1.8.9-linux-x86_64-sharedLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PINPATH/intel64/lib:$PINPATH/intel64/runtime:$PINPATH/intel64/lib:$PINPATH/intel64/lib-ext:$BOOST/lib:$HDF5/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/libINCLUDE=$INCLUDE:$HDF5/includeLIBRARY_PATH=$LIBRARY_PATH:$HDF5/libCPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$HDF5/includeexport ZSIMPATH PINPATH NVMAINPATH LD_LIBRARY_PATH BOOST CPLUS_INCLUDE_PATH LIBRARY_PATH

执行命令:

source env.sh
scons -j4
这里在编译的时候会报错,version.h有问题,由于生成时多了个-e ,去掉Sconstruct文件中的-e即可

 if os.path.exists(".git"):        env.Command(versionFile, allSrcs + [".git/index", "SConstruct"],            'echo -e "#define ZSIM_BUILDDATE \\""`date`\\""\\\\n#define ZSIM_BUILDVERSION \\""`python misc/gitver.py`\\""" >>' + versionFile)    else:        env.Command(versionFile, allSrcs + ["SConstruct"],            'echo  -e "#define ZSIM_BUILDDATE \\""`date`\\""\\\\n#define ZSIM_BUILDVERSION \\""no git repo\\""" >>' + versionFile)
编译成功后会生成可执行文件zsim,如下图

 

4.测试

执行测试命令:注意文件中的地址路径修改

./bin/zsim config/shma-static.cfg

新的错误又来了,

E: 4.4 is not a supported linux release


经过一翻查找,网上说的是pin2.13不支持内核为4.×的linux系统,pin3.4才能支持内核为4.*的系统,然后尝试下载pin3.4,安装zsim的时候一直报错,有一些动态链接库一直找不到,改到了内核级别,还是一堆错误参照这个博客的介绍参考地址,三种方法都尝试了,还是不行,至此,陷入了无法解决的地步。


今天过来又接着查找问题,这次的关键字变成:zsim pin problem  . 终于,柳暗花明又一村,看到了新的分析和解决思路。

https://github.com/s5z/zsim/issues/109

根据这里的介绍,一开始我在pin里面查找pin_bin.cpp或者pin_cmd.cpp  发现没有这些文件,我开始在pycharm中,全局搜索zsim_nvmain,终于在pin外面的src下找到了pin_cmd.cpp,然后根据博客中的介绍,在52行添加

    args.push_back("-injection");    args.push_back("child");
这时候编译不再报错内核不支持了。

实验平台终于可以接着搭建了,接着执行测试,真是一波三折,新的错误又来了

unexpected AUX VEC type 26
经过查找,需要加-ifeellucky到pin的配置里面。我尝试着再次修改pin_cmd.cpp文件,这里还是pin2.13版本不支持4.*内核的问题。

args.push_back("-ifeellucky");

重新编译zsim,这次所有问题解决,成功跑起来了测试文件。

下面是参考的相关博客

https://github.com/s5z/zsim/issues/109

https://github.com/s5z/zsim

https://software.intel.com/en-us/forums/intel-vtune-amplifier-xe/topic/735694

https://stackoverflow.com/questions/43589174/pin-tool-segmentation-fault-for-ubuntu-17-04