-
Notifications
You must be signed in to change notification settings - Fork 151
MARSSx86 with DRAMSim2
NOTE: For the time being the DRAMSim2 bindings require that you use the flag -corefreq 2000000000
(2GHz) in the configuration for MARSS. Essentially DRAMSim2 simulates a 667MHz part and the memory clock is hardcoded to divide the CPU clock by 3 to obtain this rate. If your core frequency varies, the memory results will be off.
Running MARSSx86 with DRAMSim2 is rather simple. You’ll need to checkout the ‘dramsim’ branch of MARSSx86 available from our github account:
git clone git://github.com/dramninjasUMD/marss.dramsim.git
You could also checkout the master branch of MARSSx86 from Github and add our branch via the git remote add
command (see here for details).
After you have a checkout of the dramsim branch of marss, you will need to checkout a copy of DRAMSim2 into a separate folder:
cd ~ && git clone git://github.com/dramninjasUMD/DRAMSim2.git
Go into the DRAMSim2 directory and type make libdramsim.so
. Then, go into the marss folder and type scons dramsim=/full/path/to/DRAMSim2
. (Note that for now, scons doesn’t cache the value of the dramsim= parameter so you’ll have to enter it every time you use scons to build marss. Alternatively you can modify the SConstruct file so that the default value for dramsim matches your paths).
If you want to double check that DRAMSim2 was added, you can type ldd qemu/qemu-system-x86_64 | grep dramsim
and make sure that libdramsim.so is listed.
If it is, you’re done! When you start a simulation with MARSSx86, DRAMSim2 will create a .vis file in the DRAMSim2/results/MARSS/device_name/devicedescription.vis file, along with a dramsim.log file in the marss directory.