Hello,
(1) What are the steps for integrating DRAMSim3 as the memory simulator to
Gem5?
We added dramsim3 repository in ext/dramsim3 and built (scons -j4
build/VEGA_X86/gem5.opt)
(2) After the integration, how do we invoke DRAMSim3 instead of the Gem5
memory model?
It executes fine when I use gem5's memory model:
build/VEGA_X86/gem5.opt configs/deprecated/example/se.py
--cmd=tests/test-progs/hello/bin/x86/linux/hello
But fails when I add the dramsim3 options:
build/VEGA_X86/gem5.opt configs/deprecated/example/se.py
--cmd=tests/test-progs/hello/bin/x86/linux/hello --mem-type=DRAMsim3
--dramsim3-ini=ext/dramsim3/DRAMsim3/configs/DDR4_8Gb_x8_3200.ini
gem5 Simulator System. https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 version DEVELOP-FOR-25.1
gem5 compiled Jul 7 2025 19:20:40
gem5 started Jul 7 2025 19:43:24
gem5 executing on milan2.ftpn.ornl.gov, pid 1965880
command line: build/VEGA_X86/gem5.opt configs/deprecated/example/se.py
--cmd=tests/test-progs/hello/bin/x86/linux/hello --mem-type=DRAMsim3
warn: The se.py script is deprecated. It will be removed in future releases
of gem5.
AttributeError: object 'DRAMsim3' has no attribute 'controller'
(C++ object is not yet constructed, so wrapped C++ methods are
unavailable.)
At:
src/python/m5/SimObject.py(868): getattr
/home/kpa/kpa/pim-resources/gem5/configs/common/MemConfig.py(243):
config_mem
configs/deprecated/example/se.py(289): <module>
src/python/m5/main.py(682): main
Has anything changed, or am I missing any steps?
Thanks,
Kazi
Hi Kazi,
I don't know exactly how to integrate DRAMSim3, but I recommend you open an Issue on GitHub (https://github.com/gem5/gem5/issues) or just a new Pull Request about this as that is the "standard" process now for integrating in cool features like this. Let me know if you need help doing so.
Thanks,
Matt
From: Kazi Asifuzzaman via gem5-users gem5-users@gem5.org
Sent: Monday, July 7, 2025 6:44 PM
To: gem5-users@gem5.org gem5-users@gem5.org
Cc: Kazi Asifuzzaman kazi.asifuzzaman@gmail.com
Subject: [gem5-users] Gem5 DRAMSim3 integration
Hello,
(1) What are the steps for integrating DRAMSim3 as the memory simulator to Gem5?
We added dramsim3 repository in ext/dramsim3 and built (scons -j4 build/VEGA_X86/gem5.opt)
(2) After the integration, how do we invoke DRAMSim3 instead of the Gem5 memory model?
It executes fine when I use gem5's memory model:
build/VEGA_X86/gem5.opt configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello
But fails when I add the dramsim3 options:
build/VEGA_X86/gem5.opt configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --mem-type=DRAMsim3 --dramsim3-ini=ext/dramsim3/DRAMsim3/configs/DDR4_8Gb_x8_3200.ini
gem5 Simulator System. https://www.gem5.orghttps://urldefense.com/v3/__https://www.gem5.org__;!!Mak6IKo!NaxUC46axme5XnV0jaAFXB09J8EpMu5uYGe2aafIaqOSAt9F63DxANJN6tziI7w6tENN-WQH9_Y31hyEp89dNw$
gem5 is copyrighted software; use the --copyright option for details.
gem5 version DEVELOP-FOR-25.1
gem5 compiled Jul 7 2025 19:20:40
gem5 started Jul 7 2025 19:43:24
gem5 executing on milan2.ftpn.ornl.govhttps://urldefense.com/v3/__http://milan2.ftpn.ornl.gov__;!!Mak6IKo!NaxUC46axme5XnV0jaAFXB09J8EpMu5uYGe2aafIaqOSAt9F63DxANJN6tziI7w6tENN-WQH9_Y31hxjCRpNcQ$, pid 1965880
command line: build/VEGA_X86/gem5.opt configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --mem-type=DRAMsim3
warn: The se.py script is deprecated. It will be removed in future releases of gem5.
AttributeError: object 'DRAMsim3' has no attribute 'controller'
(C++ object is not yet constructed, so wrapped C++ methods are unavailable.)
At:
src/python/m5/SimObject.py(868): getattr
/home/kpa/kpa/pim-resources/gem5/configs/common/MemConfig.py(243): config_mem
configs/deprecated/example/se.py(289): <module>
src/python/m5/main.py(682): main
Has anything changed, or am I missing any steps?
Thanks,
Kazi